From f1c3510958021cee7dfe0f2a6feb8218793c4a6d Mon Sep 17 00:00:00 2001 From: Gilbok Lee Date: Tue, 5 Apr 2022 16:03:05 +0900 Subject: [PATCH] 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. Change-Id: I567f3880d047e959d21bfccfea4e1ca4cd9deb71 --- ext/hls/gsthlsdemux.c | 13 +++++++++++++ packaging/gst-plugins-bad.spec | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index e41d3fdbe..12cd6c392 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -147,6 +147,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); @@ -582,9 +585,19 @@ static GstFlowReturn gst_hls_demux_update_manifest (GstAdaptiveDemux * demux) { GstHLSDemux *hlsdemux = GST_HLS_DEMUX_CAST (demux); +#ifdef TIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST + GstHLSVariantStream *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 != variant + && !gst_hls_demux_setup_streams (demux)) + return GST_FLOW_ERROR; +#endif + return GST_FLOW_OK; } diff --git a/packaging/gst-plugins-bad.spec b/packaging/gst-plugins-bad.spec index 72af08e02..a61751782 100644 --- a/packaging/gst-plugins-bad.spec +++ b/packaging/gst-plugins-bad.spec @@ -4,7 +4,7 @@ Name: gst-plugins-bad Version: 1.16.2 -Release: 20 +Release: 21 Summary: GStreamer Streaming-Media Framework Plug-Ins License: LGPL-2.0+ Group: Multimedia/Framework @@ -84,6 +84,7 @@ export CFLAGS+=" -Wall -g -fPIC\ -DTIZEN_FEATURE_HLSDEMUX_EMPTY_VTT\ -DTIZEN_FEATURE_HLSDEMUX_UPDATE_SEGMENT\ -DTIZEN_FEATURE_HLSDEMUX_DISCONT_SEQUENCE\ + -DTIZEN_FEATURE_HLSDEMUX_UPDATE_MANIFEST\ -DTIZEN_FEATURE_TSDEMUX_MODIFICATION\ -DTIZEN_FEATURE_TSDEMUX_INVALID_PCR_PID\ -DTIZEN_FEATURE_TSDEMUX_LANG_TAG\ -- 2.34.1