changeset 988:fb8b2bb9f716 libavformat

fixing demuxing of minorityreport.AVI
author michael
date Thu, 02 Mar 2006 14:27:41 +0000
parents 955d23ed733f
children e4eb95d550ca
files avidec.c
diffstat 1 files changed, 4 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/avidec.c	Thu Mar 02 01:37:38 2006 +0000
+++ b/avidec.c	Thu Mar 02 14:27:41 2006 +0000
@@ -403,6 +403,8 @@
                     break;
                 case CODEC_TYPE_AUDIO:
                     get_wav_header(pb, st->codec, size);
+                    if(ast->sample_size && st->codec->block_align && ast->sample_size % st->codec->block_align)
+                        av_log(s, AV_LOG_DEBUG, "invalid sample size or block align detected\n");
                     if (size%2) /* 2-aligned (fix for Stargate SG-1 - 3x18 - Shades of Grey.avi) */
                         url_fskip(pb, 1);
                     /* special case time: To support Xan DPCM, hardcode
@@ -522,7 +524,7 @@
         AVIStream *ast= st->priv_data;
         int size;
 
-        if(ast->sample_size == 0)
+        if(ast->sample_size <= 1) // minorityreport.AVI block_align=1024 sample_size=1 IMA-ADPCM
             size= INT_MAX;
         else if(ast->sample_size < 32)
             size= 64*ast->sample_size;
@@ -850,7 +852,7 @@
         if (st2->nb_index_entries <= 0)
             continue;
 
-//        assert(st2->codec.block_align);
+//        assert(st2->codec->block_align);
         assert(st2->time_base.den == ast2->rate);
         assert(st2->time_base.num == ast2->scale);
         index = av_index_search_timestamp(