mpegtsparse: Set delta unit flag on non-random-access buffers
authorVivia Nikolaidou <vivia@ahiru.eu>
Fri, 10 Jan 2020 16:00:07 +0000 (18:00 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 29 Jan 2020 20:39:44 +0000 (20:39 +0000)
If they don't have the random access flag set, they cannot be decoded
independently.

gst/mpegtsdemux/mpegtsparse.c

index a3ac6da..fe75812 100644 (file)
@@ -635,6 +635,9 @@ mpegts_parse_push (MpegTSBase * base, MpegTSPacketizerPacket * packet,
   GST_OBJECT_UNLOCK (parse);
 
   buf = mpegts_packet_to_buffer (packet);
+  if (!(packet->afc_flags & MPEGTS_AFC_RANDOM_ACCESS_FLAG)) {
+    gst_buffer_set_flags (buf, GST_BUFFER_FLAG_DELTA_UNIT);
+  }
   ret = mpegts_parse_have_buffer (base, buf);
 
   while (pad && !done) {