Message ID | ACE3EAD5-700A-4271-9AB9-2037C04F05B7@gridpoint.nl |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/hlsenc: set HTTP options before writing WebVTT HLS playlists | expand |
Léon Spaans <leons@gridpoint.nl> 于2023年10月7日周六 05:41写道: > > Fixes: Erroneous HTTP POST instead of HTTP PUT for WebVTT HLS variant playlists. > > Signed-off-by: Léon Spaans <leons@gridpoint.nl> > --- > libavformat/hlsenc.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index 08f3746ce7..8f7eee202e 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -1580,7 +1580,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; > @@ -1635,8 +1637,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; > -- > 2.40.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". LGTM Thanks Steven
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 08f3746ce7..8f7eee202e 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1580,7 +1580,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; @@ -1635,8 +1637,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;
Fixes: Erroneous HTTP POST instead of HTTP PUT for WebVTT HLS variant playlists. Signed-off-by: Léon Spaans <leons@gridpoint.nl> --- libavformat/hlsenc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)