[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