mpegtsmux: don't wait for data on sparse inputs like metadata or subtitle streams
authorTim-Philipp Müller <tim@centricular.com>
Fri, 10 Jul 2015 00:00:15 +0000 (01:00 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 13 Jul 2015 22:34:33 +0000 (23:34 +0100)
gst/mpegtsmux/mpegtsmux.c

index 74ea142..4cc4a03 100644 (file)
@@ -882,6 +882,19 @@ mpegtsmux_sink_event (GstCollectPads * pads, GstCollectData * data,
       forward = gst_tag_list_get_scope (list) == GST_TAG_SCOPE_GLOBAL;
       break;
     }
+    case GST_EVENT_STREAM_START:{
+      GstStreamFlags flags;
+
+      gst_event_parse_stream_flags (event, &flags);
+
+      /* Don't wait for data on sparse inputs like metadata streams */
+      if ((flags & GST_STREAM_FLAG_SPARSE)) {
+        GST_COLLECT_PADS_STATE_UNSET (data, GST_COLLECT_PADS_STATE_LOCKED);
+        gst_collect_pads_set_waiting (pads, data, FALSE);
+        GST_COLLECT_PADS_STATE_SET (data, GST_COLLECT_PADS_STATE_LOCKED);
+      }
+      break;
+    }
     default:
       break;
   }