tsdemux: Forward seek/duration query/event to the sinkpad

This commit is contained in:
Youness Alaoui 2011-08-23 22:40:25 +00:00 committed by Sebastian Dröge
parent 69c65875ea
commit cfd28a6f90
2 changed files with 5 additions and 3 deletions

View 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;

View 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