diff options
author | Philippe Normand <philn@igalia.com> | 2015-09-16 12:50:46 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2015-09-30 16:54:20 +0100 |
commit | bf1246cb1315caa48d7b9c2fd347206512a84a5f (patch) | |
tree | 7a9ee9c4ff08f502b868a6eb92410b3b6df5b5ce /ext | |
parent | ae7d938842da35f1523ea0ec3ab025327adf31c5 (diff) | |
download | gstreamer-plugins-bad-bf1246cb1315caa48d7b9c2fd347206512a84a5f.tar.gz |
mssdemux: activate streams before configuring bitrate
Doing the contrary has no effect and the consequence is that playback
will start with the lowest bitrate even if we can already handle
higher bitrate.
https://bugzilla.gnome.org/show_bug.cgi?id=755108
Diffstat (limited to 'ext')
-rw-r--r-- | ext/smoothstreaming/gstmssdemux.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/ext/smoothstreaming/gstmssdemux.c b/ext/smoothstreaming/gstmssdemux.c index d57c205bd..c6fbd1ab5 100644 --- a/ext/smoothstreaming/gstmssdemux.c +++ b/ext/smoothstreaming/gstmssdemux.c @@ -388,6 +388,7 @@ gst_mss_demux_setup_streams (GstAdaptiveDemux * demux) { GstMssDemux *mssdemux = GST_MSS_DEMUX_CAST (demux); GSList *streams = gst_mss_manifest_get_streams (mssdemux->manifest); + GSList *active_streams = NULL; GSList *iter; const gchar *protection_system_id = gst_mss_manifest_get_protection_system_id (mssdemux->manifest); @@ -419,12 +420,12 @@ gst_mss_demux_setup_streams (GstAdaptiveDemux * demux) demux->connection_speed); gst_mss_manifest_change_bitrate (mssdemux->manifest, demux->connection_speed); + GST_INFO_OBJECT (mssdemux, "Activating streams"); + for (iter = streams; iter; iter = g_slist_next (iter)) { GstPad *srcpad = NULL; GstMssDemuxStream *stream = NULL; GstMssStream *manifeststream = iter->data; - GstCaps *caps; - const gchar *lang; srcpad = _create_pad (mssdemux, manifeststream); @@ -437,6 +438,17 @@ gst_mss_demux_setup_streams (GstAdaptiveDemux * demux) srcpad); stream->manifest_stream = manifeststream; gst_mss_stream_set_active (manifeststream, TRUE); + active_streams = g_slist_prepend (active_streams, stream); + } + + GST_INFO_OBJECT (mssdemux, "Changing max bitrate to %u", + demux->connection_speed); + gst_mss_manifest_change_bitrate (mssdemux->manifest, demux->connection_speed); + + for (iter = active_streams; iter; iter = g_slist_next (iter)) { + GstMssDemuxStream *stream = iter->data; + GstCaps *caps; + const gchar *lang; caps = gst_mss_stream_get_caps (stream->manifest_stream); @@ -474,6 +486,7 @@ gst_mss_demux_setup_streams (GstAdaptiveDemux * demux) } } + g_slist_free (active_streams); return TRUE; } |