From: Gilbok Lee Date: Tue, 11 May 2021 04:40:01 +0000 (+0900) Subject: hlsdemux: Enable support for external subtitles X-Git-Tag: submit/tizen/20210531.015432~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a12bbac8f2f4566178d79a8b91ef9fd4b81a18b2;p=platform%2Fupstream%2Fgst-plugins-bad.git hlsdemux: Enable support for external subtitles - auto-indented using gst-indent Change-Id: I71f521a191bbca086e8cd01883bed600e3e50b5d --- diff --git a/ext/hls/gsthlsdemux.c b/ext/hls/gsthlsdemux.c index 99d5fff1b..d22dbcced 100644 --- a/ext/hls/gsthlsdemux.c +++ b/ext/hls/gsthlsdemux.c @@ -491,7 +491,8 @@ gst_hls_demux_update_manifest (GstAdaptiveDemux * demux) #ifdef TIZEN_FEATURE_AVOID_PAD_SWITCHING static GstAdaptiveDemuxStream * -gst_adaptive_demux_find_stream (GstAdaptiveDemux * demux, gboolean is_primary_playlist, GstHLSMediaType type) +gst_adaptive_demux_find_stream (GstAdaptiveDemux * demux, + gboolean is_primary_playlist, GstHLSMediaType type) { GstAdaptiveDemuxStream *stream; GstHLSDemuxStream *hls_stream; @@ -503,29 +504,32 @@ gst_adaptive_demux_find_stream (GstAdaptiveDemux * demux, gboolean is_primary_pl for (iter = demux->streams; iter; iter = g_list_next (iter)) { stream = iter->data; if (!stream) { - GST_ERROR_OBJECT(demux, "no stream data"); + GST_ERROR_OBJECT (demux, "no stream data"); continue; } - hls_stream = GST_HLS_DEMUX_STREAM_CAST(stream); + hls_stream = GST_HLS_DEMUX_STREAM_CAST (stream); if (is_primary_playlist && hls_stream->is_primary_playlist) return stream; - caps = gst_pad_get_current_caps(stream->pad); - caps_str = gst_caps_to_string(caps); - GST_DEBUG_OBJECT(demux, "pad %s:%s, caps %s", GST_DEBUG_PAD_NAME(stream->pad), caps_str); + caps = gst_pad_get_current_caps (stream->pad); + caps_str = gst_caps_to_string (caps); + GST_DEBUG_OBJECT (demux, "pad %s:%s, caps %s", + GST_DEBUG_PAD_NAME (stream->pad), caps_str); - if (((type == GST_HLS_MEDIA_TYPE_AUDIO) && (g_strrstr(caps_str, "audio"))) || - ((type == GST_HLS_MEDIA_TYPE_VIDEO) && (g_strrstr(caps_str, "video")))) + if (((type == GST_HLS_MEDIA_TYPE_AUDIO) && (g_strrstr (caps_str, "audio"))) + || ((type == GST_HLS_MEDIA_TYPE_VIDEO) + && (g_strrstr (caps_str, "video")))) find_stream = TRUE; g_free (caps_str); - gst_caps_unref(caps); + gst_caps_unref (caps); if (find_stream) return stream; } - GST_WARNING_OBJECT(demux, "failed to find stream %d %d", is_primary_playlist, type); + GST_WARNING_OBJECT (demux, "failed to find stream %d %d", is_primary_playlist, + type); return NULL; } @@ -544,13 +548,13 @@ create_stream_for_playlist (GstAdaptiveDemux * demux, GstM3U8 * playlist, return; } - GST_DEBUG_OBJECT(demux, "streams list %d", g_list_length(demux->streams)); + GST_DEBUG_OBJECT (demux, "streams list %d", g_list_length (demux->streams)); if (demux->streams) - stream = gst_adaptive_demux_find_stream(demux, is_primary_playlist, type); + stream = gst_adaptive_demux_find_stream (demux, is_primary_playlist, type); if (!stream) { - GST_LOG_OBJECT(demux, "new pad will be created"); + GST_LOG_OBJECT (demux, "new pad will be created"); stream = gst_adaptive_demux_stream_new (demux, gst_hls_demux_create_pad (hlsdemux)); } @@ -610,7 +614,8 @@ gst_hls_demux_setup_streams (GstAdaptiveDemux * demux) /* 1 output for the main playlist */ #ifdef TIZEN_FEATURE_AVOID_PAD_SWITCHING - create_stream_for_playlist (demux, playlist->m3u8, TRUE, GST_HLS_MEDIA_TYPE_INVALID); + create_stream_for_playlist (demux, playlist->m3u8, TRUE, + GST_HLS_MEDIA_TYPE_INVALID); #else create_stream_for_playlist (demux, playlist->m3u8, TRUE, TRUE); #endif @@ -634,7 +639,8 @@ gst_hls_demux_setup_streams (GstAdaptiveDemux * demux) #else create_stream_for_playlist (demux, media->playlist, FALSE, (media->mtype == GST_HLS_MEDIA_TYPE_VIDEO || - media->mtype == GST_HLS_MEDIA_TYPE_AUDIO)); + media->mtype == GST_HLS_MEDIA_TYPE_AUDIO || + media->mtype == GST_HLS_MEDIA_TYPE_SUBTITLES)); #endif mlist = mlist->next; @@ -658,7 +664,7 @@ gst_hls_demux_set_current_variant (GstHLSDemux * hlsdemux, return; GST_INFO_OBJECT (hlsdemux, "%s variant %d, %d x %d", variant->name, - variant->bandwidth, variant->width, variant->height); + variant->bandwidth, variant->width, variant->height); if (hlsdemux->current_variant != NULL) { gint i; @@ -732,15 +738,16 @@ gst_hls_demux_process_manifest (GstAdaptiveDemux * demux, GstBuffer * buf) #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION variant = gst_hls_master_playlist_get_variant_for_bandwitdh_limit (hlsdemux->master, - NULL, demux->connection_speed, demux->start_bandwidth, - demux->min_bandwidth, demux->max_bandwidth, demux->max_width, demux->max_height); + NULL, demux->connection_speed, demux->start_bandwidth, + demux->min_bandwidth, demux->max_bandwidth, demux->max_width, + demux->max_height); if (!variant) variant = hlsdemux->master->default_variant; if (variant) { GST_INFO_OBJECT (hlsdemux, "selected %s, %d, %d x %d", - variant->name, variant->bandwidth, variant->width, variant->height); + variant->name, variant->bandwidth, variant->width, variant->height); gst_hls_demux_set_current_variant (hlsdemux, variant); } #else @@ -763,14 +770,14 @@ gst_hls_demux_process_manifest (GstAdaptiveDemux * demux, GstBuffer * buf) gst_element_post_message (GST_ELEMENT_CAST (hlsdemux), gst_message_new_element (GST_OBJECT_CAST (hlsdemux), gst_structure_new ("adaptive-ad-info", - "ad-info", G_TYPE_POINTER, - variant->m3u8->ad_info, NULL))); + "ad-info", G_TYPE_POINTER, variant->m3u8->ad_info, NULL))); - GST_DEBUG_OBJECT (hlsdemux, "post current bandwidth info : %d", variant->bandwidth); + GST_DEBUG_OBJECT (hlsdemux, "post current bandwidth info : %d", + variant->bandwidth); gst_element_post_message (GST_ELEMENT_CAST (hlsdemux), gst_message_new_element (GST_OBJECT_CAST (hlsdemux), gst_structure_new (GST_ADAPTIVE_DEMUX_STATISTICS_MESSAGE_NAME, - "bitrate", G_TYPE_INT, variant->bandwidth, NULL))); + "bitrate", G_TYPE_INT, variant->bandwidth, NULL))); } #endif @@ -1472,8 +1479,8 @@ gst_hls_demux_update_rendition_manifest (GstHLSDemux * demux, #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION download = gst_uri_downloader_fetch_uri (adaptive_demux->downloader, uri, main_uri, - adaptive_demux->user_agent, adaptive_demux->cookies, DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, - TRUE, TRUE, TRUE, err); + adaptive_demux->user_agent, adaptive_demux->cookies, + DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, TRUE, TRUE, TRUE, err); #else download = gst_uri_downloader_fetch_uri (adaptive_demux->downloader, uri, main_uri, @@ -1533,8 +1540,8 @@ retry: #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION download = gst_uri_downloader_fetch_uri (adaptive_demux->downloader, uri, main_uri, - adaptive_demux->user_agent, adaptive_demux->cookies, DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, - TRUE, TRUE, TRUE, err); + adaptive_demux->user_agent, adaptive_demux->cookies, + DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, TRUE, TRUE, TRUE, err); #else download = gst_uri_downloader_fetch_uri (adaptive_demux->downloader, uri, main_uri, @@ -1554,9 +1561,10 @@ retry: uri, main_uri); #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION download = - gst_uri_downloader_fetch_uri (adaptive_demux->downloader, main_uri, NULL, - adaptive_demux->user_agent, adaptive_demux->cookies, DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, - TRUE, TRUE, TRUE, err); + gst_uri_downloader_fetch_uri (adaptive_demux->downloader, main_uri, + NULL, adaptive_demux->user_agent, adaptive_demux->cookies, + DEFAULT_ADAPTIVE_RETRY, DEFAULT_ADAPTIVE_TIMEOUT, TRUE, TRUE, TRUE, + err); #else download = gst_uri_downloader_fetch_uri (adaptive_demux->downloader, @@ -1726,7 +1734,6 @@ retry: m3u8->sequence_position = current_pos; GST_M3U8_CLIENT_UNLOCK (demux->client); } - #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION GST_DEBUG_OBJECT (demux, "post variant info message"); gst_element_post_message (GST_ELEMENT_CAST (demux), @@ -1756,12 +1763,13 @@ gst_hls_demux_change_playlist (GstHLSDemux * demux, guint max_bitrate, previous_variant = demux->current_variant; #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION new_variant = - gst_hls_master_playlist_get_variant_for_bandwitdh_limit (demux->master, + gst_hls_master_playlist_get_variant_for_bandwitdh_limit (demux->master, demux->current_variant, max_bitrate, NULL, adaptive_demux->min_bandwidth, - adaptive_demux->max_bandwidth, adaptive_demux->max_width, adaptive_demux->max_height); + adaptive_demux->max_bandwidth, adaptive_demux->max_width, + adaptive_demux->max_height); GST_INFO_OBJECT (demux, "new_variant : %d, %d x %d", - new_variant->bandwidth, new_variant->width, new_variant->height); + new_variant->bandwidth, new_variant->width, new_variant->height); #else new_variant = gst_hls_master_playlist_get_variant_for_bitrate (demux->master,