From: Seungha Yang Date: Sun, 4 Jun 2017 11:23:36 +0000 (+0900) Subject: adaptivedemux: Clear "cancelled" on uridownloader before processing manifest X-Git-Tag: 1.12.2~32 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=14f8808bf2d8b8e7fd2988a9622a6ce059a89b1c;p=platform%2Fupstream%2Fgst-plugins-bad.git 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 --- diff --git a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c index 392e1e114..3c98eac12 100644 --- a/gst-libs/gst/adaptivedemux/gstadaptivedemux.c +++ b/gst-libs/gst/adaptivedemux/gstadaptivedemux.c @@ -567,6 +567,9 @@ gst_adaptive_demux_change_state (GstElement * element, case GST_STATE_CHANGE_READY_TO_PAUSED: GST_MANIFEST_LOCK (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) gst_adaptive_demux_start_manifest_update_task (demux); demux->running = TRUE;