From f12ef67f56e0963dee2092666d50635a31610f5b Mon Sep 17 00:00:00 2001 From: Mark Nauwelaerts Date: Tue, 11 Sep 2012 17:36:51 +0200 Subject: [PATCH] ext, gst: only activate in pull mode if upstream is seekable --- ext/dv/gstdvdemux.c | 3 ++- gst/avi/gstavidemux.c | 3 ++- gst/debugutils/rndbuffersize.c | 3 ++- gst/flv/gstflvdemux.c | 3 ++- gst/isomp4/qtdemux.c | 3 ++- gst/matroska/matroska-demux.c | 3 ++- gst/wavparse/gstwavparse.c | 3 ++- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c index c6e0bf18ed..15ad1d98d1 100644 --- a/ext/dv/gstdvdemux.c +++ b/ext/dv/gstdvdemux.c @@ -1804,7 +1804,8 @@ gst_dvdemux_sink_activate (GstPad * sinkpad, GstObject * parent) goto activate_push; } - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); if (!pull_mode) diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 6786bf8076..7cd1a0e307 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -5415,7 +5415,8 @@ gst_avi_demux_sink_activate (GstPad * sinkpad, GstObject * parent) goto activate_push; } - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); if (!pull_mode) diff --git a/gst/debugutils/rndbuffersize.c b/gst/debugutils/rndbuffersize.c index 243b1c7be5..68a2705103 100644 --- a/gst/debugutils/rndbuffersize.c +++ b/gst/debugutils/rndbuffersize.c @@ -237,7 +237,8 @@ gst_rnd_buffer_size_activate (GstPad * pad, GstObject * parent) query = gst_query_new_scheduling (); if (gst_pad_peer_query (pad, query)) - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); else pull_mode = FALSE; diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c index 74ff1b7b90..30a3254412 100644 --- a/gst/flv/gstflvdemux.c +++ b/gst/flv/gstflvdemux.c @@ -2875,7 +2875,8 @@ gst_flv_demux_sink_activate (GstPad * sinkpad, GstObject * parent) goto activate_push; } - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); if (!pull_mode) diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c index 1b316adc1e..afff96e7ec 100644 --- a/gst/isomp4/qtdemux.c +++ b/gst/isomp4/qtdemux.c @@ -4496,7 +4496,8 @@ qtdemux_sink_activate (GstPad * sinkpad, GstObject * parent) goto activate_push; } - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); if (!pull_mode) diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c index 819c97fbb1..fff354be1b 100644 --- a/gst/matroska/matroska-demux.c +++ b/gst/matroska/matroska-demux.c @@ -4848,7 +4848,8 @@ gst_matroska_demux_sink_activate (GstPad * sinkpad, GstObject * parent) query = gst_query_new_scheduling (); if (gst_pad_peer_query (sinkpad, query)) - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c index 82dbc05531..7304387efb 100644 --- a/gst/wavparse/gstwavparse.c +++ b/gst/wavparse/gstwavparse.c @@ -2923,7 +2923,8 @@ gst_wavparse_sink_activate (GstPad * sinkpad, GstObject * parent) goto activate_push; } - pull_mode = gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL); + pull_mode = gst_query_has_scheduling_mode_with_flags (query, + GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE); gst_query_unref (query); if (!pull_mode)