mirror of https://git.ffmpeg.org/ffmpeg.git
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
This commit is contained in:
parent
a8062103dd
commit
8e606cc88c
13
ffplay.c
13
ffplay.c
|
@ -1959,7 +1959,18 @@ static int decode_thread(void *arg)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (is->seek_req) {
|
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) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "%s: error while seeking\n", is->ic->filename);
|
fprintf(stderr, "%s: error while seeking\n", is->ic->filename);
|
||||||
}else{
|
}else{
|
||||||
|
|
Loading…
Reference in New Issue