staging:vc04_services: bcm2835-camera: Request headers with I-frame
authorDave Stevenson <dave.stevenson@raspberrypi.com>
Fri, 15 May 2020 12:48:59 +0000 (13:48 +0100)
committerDom Cobley <popcornmix@gmail.com>
Mon, 19 Feb 2024 11:33:00 +0000 (11:33 +0000)
V4L2 wishes to have the codec header bytes in the same buffer as the
first encoded frame, so it does become 1-in 1-out for encoding.
The firmware now has an option to do this, so enable it.

Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
drivers/staging/vc04_services/bcm2835-camera/bcm2835-camera.c

index 346d00d..25e2ac4 100644 (file)
@@ -1730,6 +1730,12 @@ static int mmal_init(struct bcm2835_mmal_dev *dev)
                                              MMAL_PARAMETER_MINIMISE_FRAGMENTATION,
                                              &enable,
                                              sizeof(enable));
+
+               /* Enable inserting headers into the first frame */
+               vchiq_mmal_port_parameter_set(dev->instance,
+                                             &dev->component[COMP_VIDEO_ENCODE]->control,
+                                             MMAL_PARAMETER_VIDEO_ENCODE_HEADERS_WITH_FRAME,
+                                             &enable, sizeof(enable));
        }
        ret = bcm2835_mmal_set_all_camera_controls(dev);
        if (ret < 0) {