adaptivedemux: Clear "cancelled" on uridownloader before processing manifest

Previous commit let demux call gst_uri_downloader_cancel() on _demux_reset().
Note that, _demux_reset() called during PAUSED_TO_READY and READY_TO_PAUSED.
And, it will set "cancelled" on uridownloader which blocks the use of
uridownloader. The issue is that, subclass can use the uridownloader not only
live streaming for manifest update, but also for fetching another manifests
such as variant and rendition m3u8 of hls streaming. So to unblock it,
demux should clear "cancelled" before processing initial manifest.

https://bugzilla.gnome.org/show_bug.cgi?id=783401
This commit is contained in:
Seungha Yang 2017-06-04 20:23:36 +09:00 committed by Thiago Santos
parent 1b8aa7578c
commit 87cb9fa49e

View file

@ -567,6 +567,9 @@ gst_adaptive_demux_change_state (GstElement * element,
case GST_STATE_CHANGE_READY_TO_PAUSED: case GST_STATE_CHANGE_READY_TO_PAUSED:
GST_MANIFEST_LOCK (demux); GST_MANIFEST_LOCK (demux);
gst_adaptive_demux_reset (demux); gst_adaptive_demux_reset (demux);
/* Clear "cancelled" flag in uridownloader since subclass might want to
* use uridownloader to fetch another manifest */
gst_uri_downloader_reset (demux->downloader);
if (demux->priv->have_manifest) if (demux->priv->have_manifest)
gst_adaptive_demux_start_manifest_update_task (demux); gst_adaptive_demux_start_manifest_update_task (demux);
demux->running = TRUE; demux->running = TRUE;