From: Gilbok Lee Date: Wed, 12 May 2021 08:11:16 +0000 (+0900) Subject: hlsdemux: push language code tag X-Git-Tag: submit/tizen/20210531.015432~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F09%2F258209%2F2;p=platform%2Fupstream%2Fgst-plugins-bad.git hlsdemux: push language code tag Change-Id: I0941e39c9384f6c936d8ea736704d2b718902b3c --- diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index d22dbcced..615886c6d 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -43,6 +43,7 @@ #include #include +#include #include "gsthlsdemux.h" static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src_%u", @@ -571,12 +572,20 @@ create_stream_for_playlist (GstAdaptiveDemux * demux, GstM3U8 * playlist, } #else static void +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG +create_stream_for_playlist (GstAdaptiveDemux * demux, GstM3U8 * playlist, + gboolean is_primary_playlist, gboolean selected, GstHLSMedia * media) +#else create_stream_for_playlist (GstAdaptiveDemux * demux, GstM3U8 * playlist, gboolean is_primary_playlist, gboolean selected) +#endif { GstHLSDemux *hlsdemux = GST_HLS_DEMUX_CAST (demux); GstHLSDemuxStream *hlsdemux_stream; GstAdaptiveDemuxStream *stream; +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG + GstTagList *lang_tag = NULL; +#endif if (!selected) { /* FIXME: Later, create the stream but mark not-selected */ @@ -596,6 +605,18 @@ create_stream_for_playlist (GstAdaptiveDemux * demux, GstM3U8 * playlist, hlsdemux_stream->do_typefind = TRUE; hlsdemux_stream->reset_pts = TRUE; + +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG + if (media && media->lang) { + if (gst_tag_check_language_code (media->lang)) + lang_tag = gst_tag_list_new (GST_TAG_LANGUAGE_CODE, media->lang, NULL); + else + lang_tag = gst_tag_list_new (GST_TAG_LANGUAGE_NAME, media->lang, NULL); + + if (lang_tag) + gst_adaptive_demux_stream_set_tags (stream, lang_tag); + } +#endif } #endif static gboolean @@ -616,8 +637,12 @@ gst_hls_demux_setup_streams (GstAdaptiveDemux * demux) #ifdef TIZEN_FEATURE_AVOID_PAD_SWITCHING create_stream_for_playlist (demux, playlist->m3u8, TRUE, GST_HLS_MEDIA_TYPE_INVALID); +#else +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG + create_stream_for_playlist (demux, playlist->m3u8, TRUE, TRUE, NULL); #else create_stream_for_playlist (demux, playlist->m3u8, TRUE, TRUE); +#endif #endif for (i = 0; i < GST_HLS_N_MEDIA_TYPES; ++i) { GList *mlist = playlist->media[i]; @@ -640,7 +665,11 @@ gst_hls_demux_setup_streams (GstAdaptiveDemux * demux) create_stream_for_playlist (demux, media->playlist, FALSE, (media->mtype == GST_HLS_MEDIA_TYPE_VIDEO || media->mtype == GST_HLS_MEDIA_TYPE_AUDIO || +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG + media->mtype == GST_HLS_MEDIA_TYPE_SUBTITLES), media); +#else media->mtype == GST_HLS_MEDIA_TYPE_SUBTITLES)); +#endif #endif mlist = mlist->next; @@ -1026,6 +1055,10 @@ gst_hls_demux_handle_buffer (GstAdaptiveDemux * demux, } if (tags) { +#ifdef TIZEN_FEATURE_HLSDEMUX_LANG_TAG + if (stream->pending_tags) + gst_tag_list_insert (tags, stream->pending_tags, GST_TAG_MERGE_APPEND); +#endif gst_adaptive_demux_stream_set_tags (stream, tags); /* run typefind again on the trimmed buffer */ hls_stream->do_typefind = TRUE; diff --git a/packaging/gst-plugins-bad.spec b/packaging/gst-plugins-bad.spec index 50c242fdc..bfc7c7fc4 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: 11 +Release: 12 Summary: GStreamer Streaming-Media Framework Plug-Ins License: LGPL-2.0+ Group: Multimedia/Framework @@ -85,6 +85,7 @@ export CFLAGS+=" -Wall -g -fPIC\ -DTIZEN_FEATURE_MPEGDEMUX_MODIFICATION\ -DTIZEN_FEATURE_H264PARSE_MODIFICATION\ -DTIZEN_FEATURE_AD\ + -DTIZEN_FEATURE_HLSDEMUX_LANG_TAG\ -D__TIZEN__\ -fstack-protector-strong\ -Wl,-z,relro\