[SCM] libav/experimental: seek based on currently active stream fixes seeking in ffwma2_broken.wma which had some "empty" streams

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:55:26 UTC 2013


The following commit has been merged in the experimental branch:
commit 8e606cc88caee3398c20a65a7b613d8618758e6d
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Tue Jan 23 14:22:25 2007 +0000

    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

diff --git a/ffplay.c b/ffplay.c
index af1de41..02f8132 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{

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list