[FFmpeg-devel] [PATCH] libavformat/hlsenc: set HTTP options before writing WebVTT HLS playlists
Léon Spaans
leons at gridpoint.nl
Sat Oct 7 00:09:54 EEST 2023
Thanks Steven!
>> libavformat/hlsenc.c | 6 +++++-
>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
>> index 08f3746ce7..150320a880 100644
>> --- a/libavformat/hlsenc.c
>> +++ b/libavformat/hlsenc.c
>> @@ -1585,6 +1585,7 @@ static int hls_window(AVFormatContext *s, int
>> last, VariantStream *vs)
>> ret = 0;
>> goto fail;
>> }
>> + av_dict_free(&options);
> this should modify as:
>
> snprintf(temp_filename, sizeof(temp_filename), use_temp_file ?
> "%s.tmp" : "%s", vs->m3u8_name);
> 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;
> }
>
> Because there have one goto fail when hlsenc_io_open failed;
Fixing this as well indeed seems better!
>> for (en = vs->segments; en; en = en->next) {
>> if (target_duration <= en->duration)
>> @@ -1635,8 +1636,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->avf, &options, hls);
> should this set vs->vtt_avf ?
> maybe subtitle of webvtt should use vs->vtt_avf, is it?
Using `vs->vtt_avf` makes more sense here indeed.
>> 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;
>> --
I have changed the patch accordingly and will resend.
Léon
More information about the ffmpeg-devel
mailing list