|
|
|
@ -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); |
|
|
|
|