Skip to content

Commit

Permalink
staging: bcm2835_codec: Include timing info in SPS headers
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
6by9 authored and Phil Elwell committed May 28, 2019
1 parent f54bb75 commit 610bb87
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
Expand Up @@ -1785,6 +1785,8 @@ static int bcm2835_codec_create_component(struct bcm2835_codec_ctx *ctx)
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",
Expand All @@ -1793,6 +1795,16 @@ static int bcm2835_codec_create_component(struct bcm2835_codec_ctx *ctx)

/* 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)
Expand Down

0 comments on commit 610bb87

Please sign in to comment.