From: Gilbok Lee Date: Wed, 6 Apr 2022 00:15:03 +0000 (+0900) Subject: hlsdemux: after update playlist, setup streams if current variant changes X-Git-Tag: submit/tizen/20220406.053411^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b51cbde95115f2c63e8787864c2599a73b9d25f9;p=platform%2Fupstream%2Fgstreamer.git hlsdemux: after update playlist, setup streams if current variant changes - If the playlist update fails, the main playlist is downloaded newly At this time, a new playlist is created and the previous playlist isn't updated. [Version] 1.20.0-12 [Issue Type] Bug fix Change-Id: If7313c529b411d9f6c86019e3e24c6f4f475dda7 --- diff --git a/packaging/gstreamer.spec b/packaging/gstreamer.spec index 8133dd217e..468dfe0f8e 100644 --- a/packaging/gstreamer.spec +++ b/packaging/gstreamer.spec @@ -59,7 +59,7 @@ Name: %{_name} Version: 1.20.0 -Release: 11 +Release: 12 Summary: Streaming-Media Framework Runtime License: LGPL-2.0+ Group: Multimedia/Framework diff --git a/subprojects/gst-plugins-bad/ext/hls/gsthlsdemux.c b/subprojects/gst-plugins-bad/ext/hls/gsthlsdemux.c index ce87f141ff..4c3dbdeb4c 100644 --- a/subprojects/gst-plugins-bad/ext/hls/gsthlsdemux.c +++ b/subprojects/gst-plugins-bad/ext/hls/gsthlsdemux.c @@ -150,6 +150,9 @@ static gboolean gst_hlsdemux_set_stream_event (GstAdaptiveDemuxStream * stream, static gboolean gst_hlsdemux_set_language_tags (GstAdaptiveDemuxStream * stream, const gchar * language); #endif +#ifdef TIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST +static gboolean gst_hls_demux_setup_streams (GstAdaptiveDemux * demux); +#endif #define gst_hls_demux_parent_class parent_class G_DEFINE_TYPE (GstHLSDemux, gst_hls_demux, GST_TYPE_ADAPTIVE_DEMUX); @@ -578,9 +581,19 @@ static GstFlowReturn gst_hls_demux_update_manifest (GstAdaptiveDemux * demux) { GstHLSDemux *hlsdemux = GST_HLS_DEMUX_CAST (demux); +#ifdef TIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST + GstHLSVariantStream *prev_variant = hlsdemux->current_variant; +#endif + if (!gst_hls_demux_update_playlist (hlsdemux, TRUE, NULL)) return GST_FLOW_ERROR; +#ifdef TIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST + if (hlsdemux->current_variant != prev_variant + && !gst_hls_demux_setup_streams (demux)) + return GST_FLOW_ERROR; +#endif + return GST_FLOW_OK; } diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build index 1fb32df847..d9697dfb1b 100644 --- a/subprojects/gst-plugins-bad/meson.build +++ b/subprojects/gst-plugins-bad/meson.build @@ -440,6 +440,7 @@ cdata.set('TIZEN_FEATURE_HLSDEMUX_PROPERTY', true) cdata.set('TIZEN_FEATURE_HLSDEMUX_EMPTY_VTT', true) cdata.set('TIZEN_FEATURE_HLSDEMUX_UPDATE_SEGMENT', true) cdata.set('TIZEN_FEATURE_HLSDEMUX_DISCONT_SEQUENCE', true) +cdata.set('TIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST', true) cdata.set('TIZEN_FEATURE_TSDEMUX_MODIFICATION', true) cdata.set('TIZEN_FEATURE_TSDEMUX_INVALID_PCR_PID', true) cdata.set('TIZEN_FEATURE_TSDEMUX_LANG_TAG', true)