adaptivedemux2: Check stream selected instead of state

When combining stream flows, ignore streams that
are not selected, instead of checking whether
the stream state has changed yet.

Fixes another issue with dashdemux2 where it fails to
change to the next period when playing content with
several video, audio and text streams, as with
Manifest_MultiPeriod_1080p.mpd when seeking to 730
just before the end of the first period.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2838>
This commit is contained in:
Jan Schmidt 2022-07-01 02:05:36 +10:00 committed by Tim-Philipp Müller
parent 27d18f35e5
commit f33fe73bb7

View file

@ -239,9 +239,9 @@ gst_adaptive_demux_period_combine_stream_flows (GstAdaptiveDemuxPeriod * period)
for (iter = period->streams; iter; iter = g_list_next (iter)) {
GstAdaptiveDemux2Stream *stream = iter->data;
/* Streams that are not running do not contribute
* to the flow */
if (stream->state == GST_ADAPTIVE_DEMUX2_STREAM_STATE_STOPPED)
/* Streams that are not running do not contribute to the flow,
* so ignore streams with no selected tracks */
if (!gst_adaptive_demux2_stream_is_selected (stream))
continue;
if (stream->last_ret != GST_FLOW_NOT_LINKED) {