diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0583-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0583-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0583-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch b/target/linux/bcm27xx/patches-5.10/950-0583-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch deleted file mode 100644 index 7ee031fe7f..0000000000 --- a/target/linux/bcm27xx/patches-5.10/950-0583-staging-bcm2835-codec-Set-the-colourspace-appropriat.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 8c0f9780d9a1b7812e01605bcac497503b175f53 Mon Sep 17 00:00:00 2001 -From: Dave Stevenson <dave.stevenson@raspberrypi.com> -Date: Thu, 4 Feb 2021 19:08:23 +0000 -Subject: [PATCH] staging/bcm2835-codec: Set the colourspace - appropriately for RGB formats - -Video decode supports YUV and RGB formats. YUV needs to report SMPTE170M -or REC709 appropriately, whilst RGB should report SRGB. - -Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> ---- - .../bcm2835-codec/bcm2835-v4l2-codec.c | 51 +++++++++++++------ - 1 file changed, 36 insertions(+), 15 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c -@@ -930,23 +930,43 @@ static void send_eos_event(struct bcm283 - v4l2_event_queue_fh(&ctx->fh, &ev); - } - --static void color_mmal2v4l(struct bcm2835_codec_ctx *ctx, u32 mmal_color_space) -+static void color_mmal2v4l(struct bcm2835_codec_ctx *ctx, u32 encoding, -+ u32 color_space) - { -- switch (mmal_color_space) { -- case MMAL_COLOR_SPACE_ITUR_BT601: -- ctx->colorspace = V4L2_COLORSPACE_REC709; -- ctx->xfer_func = V4L2_XFER_FUNC_709; -- ctx->ycbcr_enc = V4L2_YCBCR_ENC_601; -- ctx->quant = V4L2_QUANTIZATION_LIM_RANGE; -- break; -+ int is_rgb; - -- case MMAL_COLOR_SPACE_ITUR_BT709: -- ctx->colorspace = V4L2_COLORSPACE_REC709; -- ctx->xfer_func = V4L2_XFER_FUNC_709; -- ctx->ycbcr_enc = V4L2_YCBCR_ENC_709; -- ctx->quant = V4L2_QUANTIZATION_LIM_RANGE; -+ switch (encoding) { -+ case MMAL_ENCODING_I420: -+ case MMAL_ENCODING_YV12: -+ case MMAL_ENCODING_NV12: -+ case MMAL_ENCODING_NV21: -+ case V4L2_PIX_FMT_YUYV: -+ case V4L2_PIX_FMT_YVYU: -+ case V4L2_PIX_FMT_UYVY: -+ case V4L2_PIX_FMT_VYUY: -+ /* YUV based colourspaces */ -+ switch (color_space) { -+ case MMAL_COLOR_SPACE_ITUR_BT601: -+ ctx->colorspace = V4L2_COLORSPACE_SMPTE170M; -+ break; -+ -+ case MMAL_COLOR_SPACE_ITUR_BT709: -+ ctx->colorspace = V4L2_COLORSPACE_REC709; -+ break; -+ default: -+ break; -+ } -+ break; -+ default: -+ /* RGB based colourspaces */ -+ ctx->colorspace = V4L2_COLORSPACE_SRGB; - break; - } -+ ctx->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(ctx->colorspace); -+ ctx->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(ctx->colorspace); -+ is_rgb = ctx->colorspace == V4L2_COLORSPACE_SRGB; -+ ctx->quant = V4L2_MAP_QUANTIZATION_DEFAULT(is_rgb, ctx->colorspace, -+ ctx->ycbcr_enc); - } - - static void handle_fmt_changed(struct bcm2835_codec_ctx *ctx, -@@ -985,7 +1005,8 @@ static void handle_fmt_changed(struct bc - q_data->height = format->es.video.height; - q_data->sizeimage = format->buffer_size_min; - if (format->es.video.color_space) -- color_mmal2v4l(ctx, format->es.video.color_space); -+ color_mmal2v4l(ctx, format->format.encoding, -+ format->es.video.color_space); - - q_data->aspect_ratio.numerator = format->es.video.par.num; - q_data->aspect_ratio.denominator = format->es.video.par.den; |