From eaf4d97815832891bfd84879b4f8f9b802f6c44d Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 30 Apr 2012 11:05:20 +0200 Subject: [PATCH] mpegtsbase: don't push events upstream in pull mode In pull mode, don't push the seek event upstream. --- gst/mpegtsdemux/mpegtsbase.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c index 8a4c7fea22..7fbd84fa5f 100644 --- a/gst/mpegtsdemux/mpegtsbase.c +++ b/gst/mpegtsdemux/mpegtsbase.c @@ -1606,11 +1606,17 @@ mpegts_base_handle_seek_event (MpegTSBase * base, GstPad * pad, if (format != GST_FORMAT_TIME) return FALSE; - /* First try if upstream supports seeking in TIME format */ - if (gst_pad_push_event (base->sinkpad, gst_event_ref (event))) { - GST_DEBUG ("upstream handled SEEK event"); - gst_event_unref (event); - return TRUE; + if (base->mode == BASE_MODE_PUSHING) { + /* First try if upstream supports seeking in TIME format */ + if (gst_pad_push_event (base->sinkpad, gst_event_ref (event))) { + GST_DEBUG ("upstream handled SEEK event"); + gst_event_unref (event); + return TRUE; + } + /* FIXME : Actually ... it is supported, we just need to convert + * the seek event to BYTES */ + GST_ERROR ("seeking in push mode not supported"); + goto push_mode; } GST_DEBUG ("seek event, rate: %f start: %" GST_TIME_FORMAT @@ -1619,13 +1625,6 @@ mpegts_base_handle_seek_event (MpegTSBase * base, GstPad * pad, flush = flags & GST_SEEK_FLAG_FLUSH; - if (base->mode == BASE_MODE_PUSHING) { - /* FIXME : Actually ... it is supported, we just need to convert - * the seek event to BYTES */ - GST_ERROR ("seeking in push mode not supported"); - goto push_mode; - } - /* stop streaming, either by flushing or by pausing the task */ base->mode = BASE_MODE_SEEKING; if (flush) {