Browse Source

ffplay: check for filter EOF return codes

Fixes ticket #2800.

Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint 11 years ago
parent
commit
18be3fac1d
1 changed files with 4 additions and 0 deletions
  1. 4 0
      ffplay.c

+ 4 - 0
ffplay.c

@@ -1956,6 +1956,8 @@ static int video_thread(void *arg)
 
 
             ret = av_buffersink_get_frame_flags(filt_out, frame, 0);
             ret = av_buffersink_get_frame_flags(filt_out, frame, 0);
             if (ret < 0) {
             if (ret < 0) {
+                if (ret == AVERROR_EOF)
+                    is->video_finished = serial;
                 ret = 0;
                 ret = 0;
                 break;
                 break;
             }
             }
@@ -2236,6 +2238,8 @@ static int audio_decode_frame(VideoState *is)
                     is->audio_buf_frames_pending = 0;
                     is->audio_buf_frames_pending = 0;
                     continue;
                     continue;
                 }
                 }
+                if (ret == AVERROR_EOF)
+                    is->audio_finished = is->audio_pkt_temp_serial;
                 return ret;
                 return ret;
             }
             }
             is->audio_buf_frames_pending = 1;
             is->audio_buf_frames_pending = 1;