diff utils.c @ 2320:e33a7c4d1bd5 libavformat

ensure that the codec_id detection in av_find_stream_info() does not destroy the first dts values
author michael
date Mon, 06 Aug 2007 21:14:29 +0000
parents 45a6610e6a4f
children 3306dae77205
line wrap: on
line diff
--- a/utils.c	Mon Aug 06 20:37:45 2007 +0000
+++ b/utils.c	Mon Aug 06 21:14:29 2007 +0000
@@ -1970,11 +1970,20 @@
 
     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