[FFmpeg-devel] [PATCH] avformat/hls: mark the playlist is broken when the reload times is over

Liu Steven lq at chinaffmpeg.org
Mon Sep 9 09:18:01 EEST 2019



> 在 2019年9月3日,上午10:41,Steven Liu <lq at chinaffmpeg.org> 写道:
> 
> when the playlist is master playlist, there have many playlist.
> the workflow should continue if one of the playlist is broken.
> 
> Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
> ---
> libavformat/hls.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/hls.c b/libavformat/hls.c
> index 3aee7a19ae..d2fafe0302 100644
> --- a/libavformat/hls.c
> +++ b/libavformat/hls.c
> @@ -1408,8 +1408,11 @@ restart:
> 
> reload:
>         reload_count++;
> -        if (reload_count > c->max_reload)
> +        if (reload_count > c->max_reload) {
> +            v->broken = 1;
> +            v->needed = 0;
>             return AVERROR_EOF;
> +        }
>         if (!v->finished &&
>             av_gettime_relative() - v->last_load_time >= reload_interval) {
>             if ((ret = parse_playlist(c, v->url, v, NULL)) < 0) {
> @@ -1459,7 +1462,7 @@ reload:
>         if (ret < 0) {
>             if (ff_check_interrupt(c->interrupt_callback))
>                 return AVERROR_EXIT;
> -            av_log(v->parent, AV_LOG_WARNING, "Failed to open segment %d of playlist %d\n",
> +            av_log(v->parent, AV_LOG_WARNING, "Failed to open segment %d of playlist %d, will reload\n",
>                    v->cur_seq_no,
>                    v->index);
>             v->cur_seq_no += 1;
> @@ -1925,6 +1928,7 @@ static int hls_read_header(AVFormatContext *s)
>             av_log(s, AV_LOG_ERROR, "Error when loading first segment '%s'\n", pls->segments[0]->url);
>             avformat_free_context(pls->ctx);
>             pls->ctx = NULL;
> +            if (c->n_playlists > 1) continue;
>             goto fail;
>         }
>         pls->ctx->pb       = &pls->pb;
> -- 
> 2.17.2 (Apple Git-113)
> 

ping

This is base on the patch: https://patchwork.ffmpeg.org/patch/14879/

Thanks
Steven



More information about the ffmpeg-devel mailing list