diff --git a/ffplay.c b/ffplay.c index 4b9c6363d3..26a145277e 100644 --- a/ffplay.c +++ b/ffplay.c @@ -1956,6 +1956,8 @@ static int video_thread(void *arg) ret = av_buffersink_get_frame_flags(filt_out, frame, 0); if (ret < 0) { + if (ret == AVERROR_EOF) + is->video_finished = serial; ret = 0; break; } @@ -2236,6 +2238,8 @@ static int audio_decode_frame(VideoState *is) is->audio_buf_frames_pending = 0; continue; } + if (ret == AVERROR_EOF) + is->audio_finished = is->audio_pkt_temp_serial; return ret; } is->audio_buf_frames_pending = 1;