From a27b7b6712df333e62026e8410283526afa6208a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 23 Aug 2011 09:40:16 +0200 Subject: [PATCH] tsdemux: First send SEEKING queries upstream --- gst/mpegtsdemux/tsdemux.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c index 956b8a5..1b96c25 100644 --- a/gst/mpegtsdemux/tsdemux.c +++ b/gst/mpegtsdemux/tsdemux.c @@ -407,9 +407,17 @@ gst_ts_demux_srcpad_query (GstPad * pad, GstQuery * query) GST_DEBUG ("query seeking"); gst_query_parse_seeking (query, &format, NULL, NULL, NULL); if (format == GST_FORMAT_TIME) { - gst_query_set_seeking (query, GST_FORMAT_TIME, - demux->parent.mode != BASE_MODE_PUSHING, 0, - demux->segment.duration); + gboolean seekable = FALSE; + + if (gst_pad_peer_query (pad, query)) + gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL); + + /* If upstream is not seekable in TIME format we use + * our own values here */ + if (!seekable) + gst_query_set_seeking (query, GST_FORMAT_TIME, + demux->parent.mode != BASE_MODE_PUSHING, 0, + demux->segment.duration); } else { GST_DEBUG_OBJECT (demux, "only TIME is supported for query seeking"); res = FALSE; -- 2.7.4