[FFmpeg-cvslog] r12609 - trunk/libavformat/avidec.c
michael
subversion
Thu Mar 27 21:58:04 CET 2008
Author: michael
Date: Thu Mar 27 21:58:01 2008
New Revision: 12609
Log:
Support wb00+dc00 chunk mix.
fixes issue402
Modified:
trunk/libavformat/avidec.c
Modified: trunk/libavformat/avidec.c
==============================================================================
--- trunk/libavformat/avidec.c (original)
+++ trunk/libavformat/avidec.c Thu Mar 27 21:58:01 2008
@@ -778,10 +778,29 @@ resync:
//parse ##dc/##wb
if(n < s->nb_streams){
AVStream *st;
+ AVStream *st1 = s->streams[1];
+ AVIStream *ast1= st1->priv_data;
AVIStream *ast;
st = s->streams[n];
ast = st->priv_data;
+
+ //workaround for broken small-file-bug402.avi
+ if( d[2] == 'w' && d[3] == 'b'
+ && n==0
+ && s->nb_streams>=2
+ && st ->codec->codec_type == CODEC_TYPE_VIDEO
+ && st1->codec->codec_type == CODEC_TYPE_AUDIO
+ && ast->prefix == 'd'*256+'c'
+ && (d[2]*256+d[3] == ast1->prefix || !ast1->prefix_count)
+ ){
+ n=1;
+ st = st1;
+ ast = ast1;
+ av_log(s, AV_LOG_WARNING, "Invalid stream+prefix combination, assuming audio\n");
+ }
+
+
if( (st->discard >= AVDISCARD_DEFAULT && size==0)
/*|| (st->discard >= AVDISCARD_NONKEY && !(pkt->flags & PKT_FLAG_KEY))*/ //FIXME needs a little reordering
|| st->discard >= AVDISCARD_ALL){
More information about the ffmpeg-cvslog
mailing list