gst_tag_list_unref (demux->global_tags);
demux->global_tags = NULL;
}
+#ifdef TIZEN_FEATURE_TSDEMUX_LANG_TAG
+ if (demux->pending_language_tag) {
+ gst_tag_list_unref (demux->pending_language_tag);
+ demux->pending_language_tag = NULL;
+ }
+#endif
if (demux->previous_program) {
mpegts_base_deactivate_and_free_program (base, demux->previous_program);
}
if (G_UNLIKELY (demux->program == NULL)) {
+#ifdef TIZEN_FEATURE_TSDEMUX_LANG_TAG
+ if (demux->global_tags) {
+ gchar *tag = NULL;
+ gst_tag_list_get_string (demux->global_tags, "language-code", &tag);
+ if (tag) {
+ demux->pending_language_tag =
+ gst_tag_list_new (GST_TAG_LANGUAGE_CODE, tag, NULL);
+ g_free (tag);
+ }
+ }
+#endif
gst_event_unref (event);
return early_ret;
}
/* Push pending tags */
if (stream->taglist) {
+#ifdef TIZEN_FEATURE_TSDEMUX_LANG_TAG
+ if (demux->pending_language_tag) {
+ gchar *audio_codec = NULL;
+ if (gst_tag_list_get_string (stream->taglist, GST_TAG_AUDIO_CODEC,
+ &audio_codec)) {
+ GST_DEBUG ("Sending pending language tags %" GST_PTR_FORMAT,
+ demux->pending_language_tag);
+ gst_pad_push_event (stream->pad,
+ gst_event_new_tag (gst_tag_list_ref
+ (demux->pending_language_tag)));
+ g_free (audio_codec);
+ gst_tag_list_unref (demux->pending_language_tag);
+ demux->pending_language_tag = NULL;
+ }
+ }
+#endif
GST_DEBUG_OBJECT (stream->pad, "Sending tags %" GST_PTR_FORMAT,
stream->taglist);
gst_pad_push_event (stream->pad, gst_event_new_tag (stream->taglist));
-DTIZEN_FEATURE_ADAPTIVE_MODIFICATION\
-DTIZEN_FEATURE_HLSDEMUX_PROPERTY\
-DTIZEN_FEATURE_TSDEMUX_MODIFICATION\
+ -DTIZEN_FEATURE_TSDEMUX_LANG_TAG\
-DTIZEN_FEATURE_HLS_WEBVTT\
-DTIZEN_FEATURE_OALSINK_MODIFICATION\
-DTIZEN_FEATURE_MPEGDEMUX_MODIFICATION\