hlsdemux: after update playlist, setup streams if current variant changes 87/273387/2 accepted/tizen/6.0/unified/20220406.134212 submit/tizen_6.0/20220405.092157
authorGilbok Lee <gilbok.lee@samsung.com>
Tue, 5 Apr 2022 07:03:05 +0000 (16:03 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Tue, 5 Apr 2022 08:47:14 +0000 (17:47 +0900)
- 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
packaging/gst-plugins-bad.spec

index e41d3fdbe9f65f285bf31631e28326e631001160..12cd6c3922cce47ec103706094a97ae41677a35d 100644 (file)
@@ -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;
 }
 
index 72af08e02fcb7c26766f5ccccbcf95e8831041b7..a61751782e352f3a1b71036297a47a330f299184 100644 (file)
@@ -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\