[FFmpeg-devel] [PATCH] avformat/hls: disable persistent HTTP connections by default w/ schannel

Josh de Kock josh at itanimul.li
Wed Apr 29 14:25:22 EEST 2020


On 26/04/2020 20:43, Jan Ekström wrote:
> This TLS implementation has always had issues with the way that
> libavformat implemented persistency, yet nobody seemed to be able to
> figure out why. It currently can lead to completely stuck playback,
> so disable it by default.
> 
> Additionally, update the documentation to match the new behavior.
> ---
>   doc/demuxers.texi | 3 ++-
>   libavformat/hls.c | 2 +-
>   2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/doc/demuxers.texi b/doc/demuxers.texi
> index 3c15ab9eee..35920af32d 100644
> --- a/doc/demuxers.texi
> +++ b/doc/demuxers.texi
> @@ -337,7 +337,8 @@ Default value is 1000.
>   
>   @item http_persistent
>   Use persistent HTTP connections. Applicable only for HTTP streams.
> -Enabled by default.
> +Enabled by default, except when the Windows schannel TLS implementation
> +is utilized.
>   
>   @item http_multiple
>   Use multiple HTTP connections for downloading HTTP segments.
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index fc45719d1c..f709f0c890 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -2343,7 +2343,7 @@ static const AVOption hls_options[] = {
>       {"m3u8_hold_counters", "The maximum number of times to load m3u8 when it refreshes without new segments",
>           OFFSET(m3u8_hold_counters), AV_OPT_TYPE_INT, {.i64 = 1000}, 0, INT_MAX, FLAGS},
>       {"http_persistent", "Use persistent HTTP connections",
> -        OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, FLAGS },
> +        OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = !CONFIG_SCHANNEL}, 0, 1, FLAGS },
>       {"http_multiple", "Use multiple HTTP connections for fetching segments",
>           OFFSET(http_multiple), AV_OPT_TYPE_BOOL, {.i64 = -1}, -1, 1, FLAGS},
>       {"http_seekable", "Use HTTP partial requests, 0 = disable, 1 = enable, -1 = auto",
> 

Whilst I'm not against a stop-gap change for this, did you already open 
a ticket for this? I think it would be good to track it.

-- 
Josh


More information about the ffmpeg-devel mailing list