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);
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;
}
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)