diff --git a/ffplay.c b/ffplay.c index ed1bdf434dfa9be787cbc760f69eb1adb40d485b..33724a8e07656774ede95f10f5280e12092b4315 100644 --- a/ffplay.c +++ b/ffplay.c @@ -98,6 +98,7 @@ typedef struct PacketQueue { typedef struct VideoPicture { double pts; ///target_clock >= vp->target_clock); next_target= nextvp->target_clock; }else{ - next_target= vp->target_clock + is->video_clock - vp->pts; //FIXME pass durations cleanly + next_target= vp->target_clock + vp->duration; } if((framedrop>0 || (framedrop && is->audio_st)) && time > next_target){ is->skip_frames *= 1.0 + FRAME_SKIP_FACTOR; @@ -1341,6 +1342,8 @@ static int queue_picture(VideoState *is, AVFrame *src_frame, double pts1, int64_ vp = &is->pictq[is->pictq_windex]; + vp->duration = frame_delay; + /* alloc or resize hardware picture buffer */ if (!vp->bmp || #if CONFIG_AVFILTER