diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.10/950-0400-staging-bcm2835-codec-Ensure-OUTPUT-timestamps-are-a.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.10/950-0400-staging-bcm2835-codec-Ensure-OUTPUT-timestamps-are-a.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-5.10/950-0400-staging-bcm2835-codec-Ensure-OUTPUT-timestamps-are-a.patch b/target/linux/bcm27xx/patches-5.10/950-0400-staging-bcm2835-codec-Ensure-OUTPUT-timestamps-are-a.patch new file mode 100644 index 0000000000..e4a5eb832c --- /dev/null +++ b/target/linux/bcm27xx/patches-5.10/950-0400-staging-bcm2835-codec-Ensure-OUTPUT-timestamps-are-a.patch @@ -0,0 +1,53 @@ +From 35e371f270fb14320de11b93cbc0f1e1024ff58c Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.com> +Date: Wed, 4 Nov 2020 18:31:02 +0000 +Subject: [PATCH] staging/bcm2835-codec: Ensure OUTPUT timestamps are + always forwarded + +The firmware by default tries to ensure that decoded frame +timestamps always increment. This is counter to the V4L2 API +which wants exactly the OUTPUT queue timestamps passed to the +CAPTURE queue buffers. + +Disable the firmware option. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> +--- + .../bcm2835-codec/bcm2835-v4l2-codec.c | 13 +++++++++++++ + .../vc04_services/vchiq-mmal/mmal-parameters.h | 3 +++ + 2 files changed, 16 insertions(+) + +--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c ++++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c +@@ -2001,6 +2001,19 @@ static int bcm2835_codec_create_componen + MMAL_PARAMETER_ZERO_COPY, &enable, + sizeof(enable)); + ++ if (dev->role == DECODE) { ++ /* ++ * Disable firmware option that ensures decoded timestamps ++ * always increase. ++ */ ++ enable = 0; ++ vchiq_mmal_port_parameter_set(dev->instance, ++ &ctx->component->output[0], ++ MMAL_PARAMETER_VIDEO_VALIDATE_TIMESTAMPS, ++ &enable, ++ sizeof(enable)); ++ } ++ + setup_mmal_port_format(ctx, &ctx->q_data[V4L2_M2M_SRC], + &ctx->component->input[0]); + +--- a/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h ++++ b/drivers/staging/vc04_services/vchiq-mmal/mmal-parameters.h +@@ -674,6 +674,9 @@ enum mmal_parameter_video_type { + + /**< Take a @ref MMAL_PARAMETER_BOOLEAN_T */ + MMAL_PARAMETER_VIDEO_ENCODE_HEADERS_WITH_FRAME, ++ ++ /**< Take a @ref MMAL_PARAMETER_BOOLEAN_T */ ++ MMAL_PARAMETER_VIDEO_VALIDATE_TIMESTAMPS, + }; + + /** Valid mirror modes */ |