You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/brcm2708/patches-4.19/950-0314-staging-bcm2835_co...

45 lines
1.6 KiB
Diff

From 7f9fd2338e3a9d7b46b6904bbd7f97851e9b3f52 Mon Sep 17 00:00:00 2001
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
Date: Mon, 18 Feb 2019 15:56:42 +0000
Subject: [PATCH] staging: bcm2835_codec: Include timing info in SPS
headers
Inserting timing information into the VUI block of the SPS is
optional with the VPU encoder.
GStreamer appears to require them when using V4L2 M2M, therefore
set the option to enable them from the encoder.
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
---
.../vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
@@ -1785,6 +1785,8 @@ static int bcm2835_codec_create_componen
goto destroy_component;
if (dev->role == ENCODE) {
+ u32 param = 1;
+
if (ctx->q_data[V4L2_M2M_SRC].sizeimage <
ctx->component->output[0].minimum_buffer.size)
v4l2_err(&dev->v4l2_dev, "buffer size mismatch sizeimage %u < min size %u\n",
@@ -1793,6 +1795,16 @@ static int bcm2835_codec_create_componen
/* Now we have a component we can set all the ctrls */
bcm2835_codec_set_ctrls(ctx);
+
+ /* Enable SPS Timing header so framerate information is encoded
+ * in the H264 header.
+ */
+ vchiq_mmal_port_parameter_set(
+ ctx->dev->instance,
+ &ctx->component->output[0],
+ MMAL_PARAMETER_VIDEO_ENCODE_SPS_TIMING,
+ &param, sizeof(param));
+
} else {
if (ctx->q_data[V4L2_M2M_DST].sizeimage <
ctx->component->output[0].minimum_buffer.size)