[FFmpeg-devel] [PATCH] libavformat/hlsenc: set HTTP options before writing WebVTT HLS playlists
Steven Liu
lingjiujianke at gmail.com
Fri Oct 6 17:50:38 EEST 2023
Steven Liu <lingjiujianke at gmail.com> 于2023年10月5日周四 15:25写道:
>
>
>
> Léon Spaans <leons at gridpoint.nl>于2023年10月5日 周四15:15写道:
>>
>> According to Patchwork the patch results in 2 "Failed to apply" warnings
>> for contexts "yinshiyou/configure_loongarch64" and "andriy/configure_x86".
>>
>> This is not something I saw in the `make fate` output.
>>
>> Is there something I should know allowing me to fix this? Or can this be
>> ignored?
>
>
> Don’t worry, These days are holidays in China mainland, maybe two days later will check it.
>>
>>
>>
>>
>> Thanks && kind regards.
>>
>>
>> On 10/2/23 05:50, Léon Spaans wrote:
>> > Thanks Steven!
>> >
>> > Have a wonderful day!
>> >
>> > Léon
Hi Léon,
I read this patch again, I have some question:
>> >
>> >
>> >> On 2 Oct 2023, at 01:17, Steven Liu <lingjiujianke at gmail.com> wrote:
>> >>
>> >> Léon Spaans <leons at gridpoint.nl>于2023年10月1日 周日22:40写道:
>> >>
>> >>> Fixes: Erroneous HTTP POST instead of HTTP PUT for WebVTT HLS variant
>> >>> playlists.
>> >>>
>> >>> Signed-off-by: Léon Spaans <leons at gridpoint.nl>
>> >>> ---
>> >>> 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;
>> >>> 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?
>> >>> 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 at ffmpeg.org
>> >>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >>>
>> >>> To unsubscribe, visit link above, or email
>> >>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> >>>
>> >> LGTM
>> >>
>> >>
>> >> Thanks
>> >> Steven
>> >> _______________________________________________
>> >> ffmpeg-devel mailing list
>> >> ffmpeg-devel at ffmpeg.org
>> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>> >>
>> >> To unsubscribe, visit link above, or email
>> >> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
Thanks
Steven
More information about the ffmpeg-devel
mailing list