[FFmpeg-cvslog] avformat/hlsenc: set HTTP options before writing WebVTT HLS playlists

Léon Spaans git at videolan.org
Sun Nov 12 05:21:04 EET 2023


ffmpeg | branch: master | Léon Spaans <leons at gridpoint.nl> | Sun Nov 12 11:17:30 2023 +0800| [9bcbe04aa0abb6b09b687f6e63c391b13503ffff] | committer: Steven Liu

avformat/hlsenc: set HTTP options before writing WebVTT HLS playlists

Fixes: Erroneous HTTP POST instead of HTTP PUT for WebVTT HLS variant playlists.

Signed-off-by: Léon Spaans <leons at gridpoint.nl>
Signed-off-by: Steven Liu <lq at chinaffmpeg.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9bcbe04aa0abb6b09b687f6e63c391b13503ffff
---

 libavformat/hlsenc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 4ef84c05c1..fa2f3946e9 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -1581,7 +1581,9 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs)
 
     set_http_options(s, &options, hls);
     snprintf(temp_filename, sizeof(temp_filename), use_temp_file ? "%s.tmp" : "%s", vs->m3u8_name);
-    if ((ret = hlsenc_io_open(s, byterange_mode ? &hls->m3u8_out : &vs->out, temp_filename, &options)) < 0) {
+    ret = hlsenc_io_open(s, byterange_mode ? &hls->m3u8_out : &vs->out, temp_filename, &options);
+    av_dict_free(&options);
+    if (ret < 0) {
         if (hls->ignore_io_errors)
             ret = 0;
         goto fail;
@@ -1636,8 +1638,11 @@ static int hls_window(AVFormatContext *s, int last, VariantStream *vs)
         ff_hls_write_end_list(byterange_mode ? hls->m3u8_out : vs->out);
 
     if (vs->vtt_m3u8_name) {
+        set_http_options(vs->vtt_avf, &options, hls);
         snprintf(temp_vtt_filename, sizeof(temp_vtt_filename), use_temp_file ? "%s.tmp" : "%s", vs->vtt_m3u8_name);
-        if ((ret = hlsenc_io_open(s, &hls->sub_m3u8_out, temp_vtt_filename, &options)) < 0) {
+        ret = hlsenc_io_open(s, &hls->sub_m3u8_out, temp_vtt_filename, &options);
+        av_dict_free(&options);
+        if (ret < 0) {
             if (hls->ignore_io_errors)
                 ret = 0;
             goto fail;



More information about the ffmpeg-cvslog mailing list