Move is->frame_timer init from start to flush_pkt handling so it is also
done on seeking. This fixes the bug where after reaching the end and waiting a few seconds seeking back to the begin messes up AV sync and playback speed. Originally committed as revision 21629 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
cedac88250
commit
b25453bdfc
2
ffplay.c
2
ffplay.c
@ -1369,6 +1369,7 @@ static int video_thread(void *arg)
|
|||||||
is->last_pts_for_fault_detection= INT64_MIN;
|
is->last_pts_for_fault_detection= INT64_MIN;
|
||||||
is->frame_last_pts= AV_NOPTS_VALUE;
|
is->frame_last_pts= AV_NOPTS_VALUE;
|
||||||
is->frame_last_delay = 0;
|
is->frame_last_delay = 0;
|
||||||
|
is->frame_timer = (double)av_gettime() / 1000000.0;
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1820,7 +1821,6 @@ static int stream_component_open(VideoState *is, int stream_index)
|
|||||||
is->video_stream = stream_index;
|
is->video_stream = stream_index;
|
||||||
is->video_st = ic->streams[stream_index];
|
is->video_st = ic->streams[stream_index];
|
||||||
|
|
||||||
is->frame_timer = (double)av_gettime() / 1000000.0;
|
|
||||||
// is->video_current_pts_time = av_gettime();
|
// is->video_current_pts_time = av_gettime();
|
||||||
|
|
||||||
packet_queue_init(&is->videoq);
|
packet_queue_init(&is->videoq);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user