rpicamsrc: mark buffers as header and keyframe/delta-unit
authorTim-Philipp Müller <tim@centricular.com>
Fri, 24 Jul 2020 15:35:43 +0000 (16:35 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 24 Jul 2020 16:09:45 +0000 (17:09 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/682>

sys/rpicamsrc/RaspiCapture.c

index c7d3809..6368ab4 100644 (file)
@@ -989,6 +989,13 @@ raspi_capture_fill_buffer(RASPIVID_STATE *state, GstBuffer **bufp,
     /* FIXME: Can we avoid copies and give MMAL our own buffers to fill? */
     gst_buffer_fill(buf, 0, buffer->data, buffer->length);
 
+    if ((buffer->flags & MMAL_BUFFER_HEADER_FLAG_CONFIG))
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
+    else if ((buffer->flags & MMAL_BUFFER_HEADER_FLAG_KEYFRAME))
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+    else
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+
     /* NAL_END is bogus and can't be trusted */
     if ((buffer->flags & MMAL_BUFFER_HEADER_FLAG_FRAME_END))
       ret = GST_FLOW_OK;