Only set duration for streams where it is likely correct.
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 3 Feb 2010 00:35:10 +0000 (00:35 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 3 Feb 2010 00:35:10 +0000 (00:35 +0000)
Fixes issue1120

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

libavformat/avidec.c

index 3d68e47..7a2ee05 100644 (file)
@@ -415,7 +415,6 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
             st->nb_frames = get_le32(pb);
 
             st->start_time = 0;
-            st->duration = st->nb_frames;
             get_le32(pb); /* buffer size */
             get_le32(pb); /* quality */
             ast->sample_size = get_le32(pb); /* sample ssize */
@@ -442,6 +441,8 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
                 av_log(s, AV_LOG_ERROR, "unknown stream type %X\n", tag1);
                 goto fail;
             }
+            if(ast->sample_size == 0)
+                st->duration = st->nb_frames;
             ast->frame_offset= ast->cum_len;
             url_fskip(pb, size - 12 * 4);
             break;