hlsdemux: Enable support for external subtitles
authorGilbok Lee <gilbok.lee@samsung.com>
Tue, 11 May 2021 04:40:01 +0000 (13:40 +0900)
committerGilbok Lee <gilbok.lee@samsung.com>
Tue, 11 May 2021 04:40:01 +0000 (13:40 +0900)
- auto-indented using gst-indent

Change-Id: I71f521a191bbca086e8cd01883bed600e3e50b5d

ext/hls/gsthlsdemux.c

index 99d5fff..d22dbcc 100644 (file)
@@ -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,