hlsdemux2: Ensure processed webvtt ends with empty new line
authorEdward Hervey <edward@centricular.com>
Tue, 4 Jul 2023 08:57:01 +0000 (10:57 +0200)
committerTim-Philipp Müller <tim@centricular.com>
Wed, 5 Jul 2023 08:17:58 +0000 (09:17 +0100)
Parsers downstream will use empty new lines to detect where an entry
ends. Failure to have a newline would cause the entry to be either
discarded or (wrongly) concatenated with the next entry

Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2752

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4970>

subprojects/gst-plugins-good/ext/adaptivedemux2/hls/gsthlsdemux-util.c

index 704786a039c82bb0e5fde28651cb73806c39ef41..626f2e23166a0375346a6b839d5f7fb93219573d 100644 (file)
@@ -944,6 +944,10 @@ gst_hlsdemux_handle_content_webvtt (GstHLSDemux * demux,
 out:
   if (ret) {
     gchar *newfile;
+
+    /* Ensure file always ends with an empty newline by adding an empty
+     * line. This helps downstream parsers properly detect entries */
+    g_ptr_array_add (builder, g_strdup ("\n"));
     /* Add NULL-terminator to string list */
     g_ptr_array_add (builder, NULL);
     newfile = g_strjoinv ("\n", (gchar **) builder->pdata);