Message ID | c68d2819-a06b-4e12-b227-f76bcbbee038@gridpoint.nl |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] libavformat/hlsenc: set HTTP options before writing WebVTT HLS playlists | expand |
Context | Check | Description |
---|---|---|
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
andriy/configure_x86 | warning | Failed to apply patch |
Léon Spaans <leons@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@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); > 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); > 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
Thanks Steven! Have a wonderful day! Léon > On 2 Oct 2023, at 01:17, Steven Liu <lingjiujianke@gmail.com> wrote: > > Léon Spaans <leons@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@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); >> 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); >> 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 > _______________________________________________ > 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".
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? Thanks && kind regards. On 10/2/23 05:50, Léon Spaans wrote: > Thanks Steven! > > Have a wonderful day! > > Léon > > >> On 2 Oct 2023, at 01:17, Steven Liu <lingjiujianke@gmail.com> wrote: >> >> Léon Spaans <leons@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@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); >>> 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); >>> 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 >> _______________________________________________ >> 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".
Léon Spaans <leons@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 > > > > > >> On 2 Oct 2023, at 01:17, Steven Liu <lingjiujianke@gmail.com> wrote: > >> > >> Léon Spaans <leons@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@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); > >>> 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); > >>> 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 > >> _______________________________________________ > >> 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". > _______________________________________________ > 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". >
Steven Liu <lingjiujianke@gmail.com> 于2023年10月5日周四 15:25写道: > > > > Léon Spaans <leons@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@gmail.com> wrote: >> >> >> >> Léon Spaans <leons@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@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@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 >> >> _______________________________________________ >> >> 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". >> _______________________________________________ >> 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". Thanks Steven
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
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); 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); 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) {
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 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) if (hls->ignore_io_errors) ret = 0; goto fail;