OSDN Git Service

ensure that the codec_id detection in av_find_stream_info() does not
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 6 Aug 2007 21:14:29 +0000 (21:14 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 6 Aug 2007 21:14:29 +0000 (21:14 +0000)
destroy the first dts values

Originally committed as revision 9965 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index b5693b5..dd2d682 100644 (file)
@@ -1970,11 +1970,20 @@ int av_find_stream_info(AVFormatContext *ic)
 
     for(i=0;i<ic->nb_streams;i++) {
         st = ic->streams[i];
-        if (codec_identified[st->index]) {
-            av_read_frame_flush(ic);
-            av_seek_frame(ic, st->index, 0.0, 0);
-            url_fseek(&ic->pb, ic->data_offset, SEEK_SET);
+        if (codec_identified[st->index])
+            break;
+    }
+    //FIXME this is a mess
+    if(i!=ic->nb_streams){
+        av_read_frame_flush(ic);
+        for(i=0;i<ic->nb_streams;i++) {
+            st = ic->streams[i];
+            if (codec_identified[st->index]) {
+                av_seek_frame(ic, st->index, 0.0, 0);
+            }
+            st->cur_dts= st->first_dts;
         }
+        url_fseek(&ic->pb, ic->data_offset, SEEK_SET);
     }
 
 #if 0