[FFmpeg-devel] [PATCH] ffplay: fix autoexit doesn't work in the case of pb->error

Marton Balint cus at passwd.hu
Thu Aug 27 11:20:36 EEST 2020



On Thu, 27 Aug 2020, Zhao Zhili wrote:

> ---
> Goto fail will make ffplay exit immediately. I'm not sure
> it is the expected behavior. How about just remove the
> check on pb->error so decoders can drain normally?

I think it is fine as is, if we simply ignored the error, then looping 
would start at the place of the error. Also probably it is not good 
practice to keep using an IO context which already had an IO error.

>
> fftools/ffplay.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/fftools/ffplay.c b/fftools/ffplay.c
> index 6c9c041e9a..9ff0425163 100644
> --- a/fftools/ffplay.c
> +++ b/fftools/ffplay.c
> @@ -3028,8 +3028,12 @@ static int read_thread(void *arg)
>                     packet_queue_put_nullpacket(&is->subtitleq, is->subtitle_stream);
>                 is->eof = 1;
>             }
> -            if (ic->pb && ic->pb->error)
> -                break;
> +            if (ic->pb && ic->pb->error) {
> +                if (autoexit)
> +                    goto fail;
> +                else
> +                    break;
> +            }
>             SDL_LockMutex(wait_mutex);
>             SDL_CondWaitTimeout(is->continue_read_thread, wait_mutex, 10);
>             SDL_UnlockMutex(wait_mutex);

LGTM, thanks.

Regards,
Marton


More information about the ffmpeg-devel mailing list