From 8e606cc88caee3398c20a65a7b613d8618758e6d Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Tue, 23 Jan 2007 14:22:25 +0000 Subject: [PATCH] seek based on currently active stream fixes seeking in ffwma2_broken.wma which had some "empty" streams Originally committed as revision 7666 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffplay.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ffplay.c b/ffplay.c index af1de41336..02f81320a8 100644 --- a/ffplay.c +++ b/ffplay.c @@ -1959,7 +1959,18 @@ static int decode_thread(void *arg) } #endif if (is->seek_req) { - ret = av_seek_frame(is->ic, -1, is->seek_pos, is->seek_flags); + int stream_index= -1; + int64_t seek_target= is->seek_pos; + + if (is-> video_stream >= 0) stream_index= is-> video_stream; + else if(is-> audio_stream >= 0) stream_index= is-> audio_stream; + else if(is->subtitle_stream >= 0) stream_index= is->subtitle_stream; + + if(stream_index>=0){ + seek_target= av_rescale_q(seek_target, AV_TIME_BASE_Q, ic->streams[stream_index]->time_base); + } + + ret = av_seek_frame(is->ic, stream_index, seek_target, is->seek_flags); if (ret < 0) { fprintf(stderr, "%s: error while seeking\n", is->ic->filename); }else{