Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2013-11-25 01:51:13 +0400
committerMarton Balint <cus@passwd.hu>2013-12-06 22:57:44 +0400
commit318bf57c3fb89a96008b114731e59063301ad6d1 (patch)
tree8b1eff4a85efb23a86471d3d57b9eb72d5f0772c
parent90539cea336fd513c47295a03c164cb4a851166f (diff)
ffplay: do not wait for flushing the picture queue on flush packet
It is no longer necessary. Also do frame timer and video current pos reset in the main thread because with the wait removed, the timing would not be optimal in the read thread. Signed-off-by: Marton Balint <cus@passwd.hu>
-rw-r--r--ffplay.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/ffplay.c b/ffplay.c
index bcbc30d545..104598b78c 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1376,10 +1376,14 @@ retry:
if (vp->serial != is->videoq.serial) {
pictq_next_picture(is);
+ is->video_current_pos = -1;
redisplay = 0;
goto retry;
}
+ if (lastvp->serial != vp->serial && !redisplay)
+ is->frame_timer = av_gettime() / 1000000.0;
+
if (is->paused)
goto display;
@@ -1670,15 +1674,6 @@ static int get_video_frame(VideoState *is, AVFrame *frame, AVPacket *pkt, int *s
if (pkt->data == flush_pkt.data) {
avcodec_flush_buffers(is->video_st->codec);
-
- SDL_LockMutex(is->pictq_mutex);
- // Make sure there are no long delay timers (ideally we should just flush the queue but that's harder)
- while (is->pictq_size && !is->videoq.abort_request) {
- SDL_CondWait(is->pictq_cond, is->pictq_mutex);
- }
- is->video_current_pos = -1;
- is->frame_timer = (double)av_gettime() / 1000000.0;
- SDL_UnlockMutex(is->pictq_mutex);
return 0;
}