From 2efd01a32f0cc7849794f7a866fddf3991b5f5ce Mon Sep 17 00:00:00 2001 From: Marton Balint Date: Fri, 23 Nov 2012 00:23:11 +0100 Subject: [PATCH] ffplay: fix updating external clock after seeking Now it should work for the timestamp based and the byte based case as well. Also only update the external clock if the seeking was successful. Signed-off-by: Marton Balint --- ffplay.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ffplay.c b/ffplay.c index c5ad70fd43..a3bda0eea9 100644 --- a/ffplay.c +++ b/ffplay.c @@ -2669,8 +2669,13 @@ static int read_thread(void *arg) packet_queue_flush(&is->videoq); packet_queue_put(&is->videoq, &flush_pkt); } + if (is->seek_flags & AVSEEK_FLAG_BYTE) { + //FIXME: use a cleaner way to signal obsolete external clock... + update_external_clock_pts(is, (double)AV_NOPTS_VALUE); + } else { + update_external_clock_pts(is, seek_target / (double)AV_TIME_BASE); + } } - update_external_clock_pts(is, (seek_target + ic->start_time) / (double)AV_TIME_BASE); is->seek_req = 0; eof = 0; }