mirror of https://git.ffmpeg.org/ffmpeg.git
ffplay: fix frame_delay calculation in new avfilter code
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
e85df18d74
commit
a78bc6f78c
13
ffplay.c
13
ffplay.c
|
@ -1540,9 +1540,6 @@ static int get_video_frame(VideoState *is, AVFrame *frame, int64_t *pts, AVPacke
|
||||||
SDL_UnlockMutex(is->pictq_mutex);
|
SDL_UnlockMutex(is->pictq_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret)
|
|
||||||
is->frame_last_returned_time = av_gettime() / 1000000.0;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1679,10 +1676,6 @@ static int video_thread(void *arg)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
is->frame_last_filter_delay = av_gettime() / 1000000.0 - is->frame_last_returned_time;
|
|
||||||
if (fabs(is->frame_last_filter_delay) > AV_NOSYNC_THRESHOLD / 10.0)
|
|
||||||
is->frame_last_filter_delay = 0;
|
|
||||||
|
|
||||||
#if CONFIG_AVFILTER
|
#if CONFIG_AVFILTER
|
||||||
if ( last_w != is->video_st->codec->width
|
if ( last_w != is->video_st->codec->width
|
||||||
|| last_h != is->video_st->codec->height
|
|| last_h != is->video_st->codec->height
|
||||||
|
@ -1725,12 +1718,18 @@ static int video_thread(void *arg)
|
||||||
av_free_packet(&pkt);
|
av_free_packet(&pkt);
|
||||||
|
|
||||||
while (ret >= 0) {
|
while (ret >= 0) {
|
||||||
|
is->frame_last_returned_time = av_gettime() / 1000000.0;
|
||||||
|
|
||||||
ret = av_buffersink_get_buffer_ref(filt_out, &picref, 0);
|
ret = av_buffersink_get_buffer_ref(filt_out, &picref, 0);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is->frame_last_filter_delay = av_gettime() / 1000000.0 - is->frame_last_returned_time;
|
||||||
|
if (fabs(is->frame_last_filter_delay) > AV_NOSYNC_THRESHOLD / 10.0)
|
||||||
|
is->frame_last_filter_delay = 0;
|
||||||
|
|
||||||
avfilter_fill_frame_from_video_buffer_ref(frame, picref);
|
avfilter_fill_frame_from_video_buffer_ref(frame, picref);
|
||||||
|
|
||||||
pts_int = picref->pts;
|
pts_int = picref->pts;
|
||||||
|
|
Loading…
Reference in New Issue