summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-09-11 17:47:16 +0200
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2012-09-11 17:47:33 +0200
commitb807753453f354bad4b841a747a978f1de6679ca (patch)
tree9bb9809787f6739482fea819bce4a745f559c1e7
parent3f0a844f9db13c785de7cb150ea1165590b3d0a5 (diff)
ext, gst: only activate in pull mode if upstream is seekable
-rw-r--r--ext/modplug/gstmodplug.cc3
-rw-r--r--ext/resindvd/gstmpegdemux.c3
-rw-r--r--gst/asfmux/gstasfparse.c3
-rw-r--r--gst/mpegdemux/gstmpegdemux.c3
-rw-r--r--gst/mpegtsdemux/mpegtsbase.c3
-rw-r--r--gst/rawparse/gstrawparse.c3
6 files changed, 12 insertions, 6 deletions
diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc
index 103812eb1..e2a178649 100644
--- a/ext/modplug/gstmodplug.cc
+++ b/ext/modplug/gstmodplug.cc
@@ -565,7 +565,8 @@ gst_modplug_sinkpad_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/ext/resindvd/gstmpegdemux.c b/ext/resindvd/gstmpegdemux.c
index 34d500504..a687707ae 100644
--- a/ext/resindvd/gstmpegdemux.c
+++ b/ext/resindvd/gstmpegdemux.c
@@ -2040,7 +2040,8 @@ gst_flups_demux_sink_activate (GstPad * sinkpad, GstObject * parent)
GstQuery *query = gst_query_new_scheduling ();
if (gst_pad_peer_query (sinkpad, query)) {
- if (gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL)) {
+ if (gst_query_has_scheduling_mode_with_flags (query,
+ GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE)) {
res = gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, TRUE);
} else {
res = gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PUSH, TRUE);
diff --git a/gst/asfmux/gstasfparse.c b/gst/asfmux/gstasfparse.c
index 0cf2671ee..25dd3e761 100644
--- a/gst/asfmux/gstasfparse.c
+++ b/gst/asfmux/gstasfparse.c
@@ -74,7 +74,8 @@ gst_asf_parse_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/mpegdemux/gstmpegdemux.c b/gst/mpegdemux/gstmpegdemux.c
index 578344c59..66d05eec8 100644
--- a/gst/mpegdemux/gstmpegdemux.c
+++ b/gst/mpegdemux/gstmpegdemux.c
@@ -2862,7 +2862,8 @@ gst_flups_demux_sink_activate (GstPad * sinkpad, GstObject * parent)
GstQuery *query = gst_query_new_scheduling ();
if (gst_pad_peer_query (sinkpad, query)) {
- if (gst_query_has_scheduling_mode (query, GST_PAD_MODE_PULL)) {
+ if (gst_query_has_scheduling_mode_with_flags (query,
+ GST_PAD_MODE_PULL, GST_SCHEDULING_FLAG_SEEKABLE)) {
res = gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PULL, TRUE);
} else {
res = gst_pad_activate_mode (sinkpad, GST_PAD_MODE_PUSH, TRUE);
diff --git a/gst/mpegtsdemux/mpegtsbase.c b/gst/mpegtsdemux/mpegtsbase.c
index 7dee9f145..07db39890 100644
--- a/gst/mpegtsdemux/mpegtsbase.c
+++ b/gst/mpegtsdemux/mpegtsbase.c
@@ -1752,7 +1752,8 @@ mpegts_base_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/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c
index 2e3765cbb..f315d5ed6 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -461,7 +461,8 @@ gst_raw_parse_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);