tsdemux: Forward seek/duration query/event to the sinkpad
authorYouness Alaoui <youness.alaoui@collabora.co.uk>
Tue, 23 Aug 2011 22:40:25 +0000 (22:40 +0000)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 24 Aug 2011 05:48:52 +0000 (07:48 +0200)
gst/mpegtsdemux/mpegtsbase.c
gst/mpegtsdemux/tsdemux.c

index 9b0f702bc861c6c222de91a93f45c320ad3af5f0..1749ba2cccaf42846c19e50c786a95ae545b3e61 100644 (file)
@@ -1417,7 +1417,7 @@ mpegts_base_handle_seek_event (MpegTSBase * base, GstPad * pad,
     return FALSE;
 
   /* First try if upstream supports seeking in TIME format */
-  if (gst_pad_push_event (pad, gst_event_ref (event))) {
+  if (gst_pad_push_event (base->sinkpad, gst_event_ref (event))) {
     GST_DEBUG ("upstream handled SEEK event");
     gst_event_unref (event);
     return TRUE;
index 350aaeb247646c220165bea108b4010c7cb20b74..df618300aa36e3ffee4c0a913844745ba2eae425 100644 (file)
@@ -387,15 +387,17 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstQuery * query)
   gboolean res = TRUE;
   GstFormat format;
   GstTSDemux *demux;
+  MpegTSBase *base;
 
   demux = GST_TS_DEMUX (gst_pad_get_parent (pad));
+  base = GST_MPEGTS_BASE (demux);
 
   switch (GST_QUERY_TYPE (query)) {
     case GST_QUERY_DURATION:
       GST_DEBUG ("query duration");
       gst_query_parse_duration (query, &format, NULL);
       if (format == GST_FORMAT_TIME) {
-        if (!gst_pad_peer_query (pad, query))
+        if (!gst_pad_peer_query (base->sinkpad, query))
           gst_query_set_duration (query, GST_FORMAT_TIME,
               demux->segment.duration);
       } else {
@@ -409,7 +411,7 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstQuery * query)
       if (format == GST_FORMAT_TIME) {
         gboolean seekable = FALSE;
 
-        if (gst_pad_peer_query (pad, query))
+        if (gst_pad_peer_query (base->sinkpad, query))
           gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
 
         /* If upstream is not seekable in TIME format we use