[FFmpeg-devel] [PATCH 1/9] ffplay: use framedrop by default when sync is not done to video

Marton Balint cus at passwd.hu
Sun Oct 14 19:11:46 CEST 2012


When using external sync, framedrop is perfectly fine.

Signed-off-by: Marton Balint <cus at passwd.hu>
---
 ffplay.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ffplay.c b/ffplay.c
index 5a2c772..61cfc8a 100644
--- a/ffplay.c
+++ b/ffplay.c
@@ -1217,7 +1217,7 @@ retry:
             if (is->pictq_size > 1) {
                 VideoPicture *nextvp = &is->pictq[(is->pictq_rindex + 1) % VIDEO_PICTURE_QUEUE_SIZE];
                 duration = nextvp->pts - vp->pts;
-                if((framedrop>0 || (framedrop && is->audio_st)) && time > is->frame_timer + duration){
+                if((framedrop>0 || (framedrop && is->av_sync_type != AV_SYNC_VIDEO_MASTER)) && time > is->frame_timer + duration){
                     is->frame_drops_late++;
                     pictq_next_picture(is);
                     goto retry;
@@ -1535,7 +1535,7 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
         }
 
         if (((is->av_sync_type == AV_SYNC_AUDIO_MASTER && is->audio_st) || is->av_sync_type == AV_SYNC_EXTERNAL_CLOCK) &&
-             (framedrop>0 || (framedrop && is->audio_st))) {
+             (framedrop>0 || (framedrop && is->av_sync_type != AV_SYNC_VIDEO_MASTER))) {
             SDL_LockMutex(is->pictq_mutex);
             if (is->frame_last_pts != AV_NOPTS_VALUE && *pts) {
                 double clockdiff = get_video_clock(is) - get_master_clock(is);
-- 
1.7.10.4



More information about the ffmpeg-devel mailing list