flvdemux: fix setting DELTA_UNIT flag on outgoing buffers
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 17 Feb 2010 10:36:13 +0000 (11:36 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Wed, 10 Mar 2010 10:48:06 +0000 (11:48 +0100)
... which should not depend on having index available or not.
Also refactor resulting collapsed code.

gst/flv/gstflvparse.c

index 86c638f..03302e2 100644 (file)
@@ -1095,29 +1095,17 @@ gst_flv_parse_tag_video (GstFLVDemux * demux, GstBuffer * buffer)
       demux->duration < GST_BUFFER_TIMESTAMP (outbuf))
     demux->duration = GST_BUFFER_TIMESTAMP (outbuf);
 
-  if (!demux->indexed) {
-    if (!keyframe) {
-      GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
-      if (demux->index && !demux->random_access) {
-        GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %"
-            G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
-            demux->cur_tag_offset);
-        gst_index_add_association (demux->index, demux->index_id,
-            GST_ASSOCIATION_FLAG_NONE,
-            GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (outbuf),
-            GST_FORMAT_BYTES, demux->cur_tag_offset, NULL);
-      }
-    } else {
-      if (demux->index && !demux->random_access) {
-        GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %"
-            G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
-            demux->cur_tag_offset);
-        gst_index_add_association (demux->index, demux->index_id,
-            GST_ASSOCIATION_FLAG_KEY_UNIT,
-            GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (outbuf),
-            GST_FORMAT_BYTES, demux->cur_tag_offset, NULL);
-      }
-    }
+  if (!keyframe)
+    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
+  if (!demux->indexed && demux->index && !demux->random_access) {
+    GST_LOG_OBJECT (demux, "adding association %" GST_TIME_FORMAT "-> %"
+        G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
+        demux->cur_tag_offset);
+    gst_index_add_association (demux->index, demux->index_id,
+        keyframe ? GST_ASSOCIATION_FLAG_KEY_UNIT : GST_ASSOCIATION_FLAG_NONE,
+        GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (outbuf),
+        GST_FORMAT_BYTES, demux->cur_tag_offset, NULL);
   }
 
   if (G_UNLIKELY (demux->video_need_discont)) {