avformat/hlsenc: fix incomplete write of subtitle HLS playlist
authorFranklin Phillips <franklinphillips9p8@inbox.lv>
Fri, 2 Sep 2016 19:20:21 +0000 (20:20 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Mon, 5 Sep 2016 06:52:28 +0000 (08:52 +0200)
This patch is a fix for the bug with ticket number 5812
(https://trac.ffmpeg.org/ticket/5812).

Basically, the bug is that the last segment and the "#EXT-X-ENDLIST"
tag are not being written to the subtitle playlist file when
converting a file with subtitles to the HLS format. The reason for
this seem to be that the filename for the subtitle file is being freed
too early. This solution is simply to free that memory after it's last
use in the "hls_window" function.

Signed-off-by: Franklin Phillips <franklinphillips9p8@inbox.lv>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/hlsenc.c

index 81b7efa..c0b5ef2 100644 (file)
@@ -968,15 +968,15 @@ static int hls_write_trailer(struct AVFormatContext *s)
     av_freep(&hls->basename);
     avformat_free_context(oc);
 
+    hls->avf = NULL;
+    hls_window(s, 1);
+
     if (vtt_oc) {
         av_freep(&hls->vtt_basename);
         av_freep(&hls->vtt_m3u8_name);
         avformat_free_context(vtt_oc);
     }
 
-    hls->avf = NULL;
-    hls_window(s, 1);
-
     hls_free_segments(hls->segments);
     hls_free_segments(hls->old_segments);
     return 0;