tsparse: Ensure segment events are forwarded
authorEdward Hervey <edward@collabora.com>
Sat, 30 Mar 2013 12:39:49 +0000 (13:39 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Sun, 14 Apr 2013 12:22:12 +0000 (13:22 +0100)
We skip them for tsdemux though (recreated later)

Fixes #690949

gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/tsdemux.c

index ed032f36413484781dd3a15d7e26596099ec407b..b553ecf682e5bc80e9764f2634c9eb6205e32b81 100644 (file)
@@ -1348,7 +1348,7 @@ mpegts_base_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
         base->packetizer->calculate_offset = TRUE;
         base->packetizer->calculate_skew = FALSE;
       }
-      gst_event_unref (event);
+      res = GST_MPEGTS_BASE_GET_CLASS (base)->push_event (base, event);
       break;
     case GST_EVENT_STREAM_START:
       gst_event_unref (event);
index 6375e99f126f9df2b96f3b008d9e2156365e4680..b696d7640898df1cfa5fb948161be7703421a20f 100644 (file)
@@ -580,6 +580,12 @@ push_event (MpegTSBase * base, GstEvent * event)
   GstTSDemux *demux = (GstTSDemux *) base;
   GList *tmp;
 
+  if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
+    GST_DEBUG_OBJECT (base, "Ignoring segment event (recreated later)");
+    gst_event_unref (event);
+    return TRUE;
+  }
+
   if (G_UNLIKELY (demux->program == NULL)) {
     gst_event_unref (event);
     return FALSE;