[FFmpeg-cvslog] r9946 - trunk/libavcodec/adpcm.c
bcoudurier
subversion
Sun Aug 5 15:41:44 CEST 2007
Author: bcoudurier
Date: Sun Aug 5 15:41:44 2007
New Revision: 9946
Log:
fix decoding of adpcm swf big frames, fix RamboMJPEGAVP6_1Mbps.swf
Modified:
trunk/libavcodec/adpcm.c
Modified: trunk/libavcodec/adpcm.c
==============================================================================
--- trunk/libavcodec/adpcm.c (original)
+++ trunk/libavcodec/adpcm.c Sun Aug 5 15:41:44 2007
@@ -1274,7 +1274,7 @@ static int adpcm_decode_frame(AVCodecCon
{
GetBitContext gb;
const int *table;
- int k0, signmask, nb_bits;
+ int k0, signmask, nb_bits, count;
int size = buf_size*8;
init_get_bits(&gb, buf, size);
@@ -1286,12 +1286,13 @@ static int adpcm_decode_frame(AVCodecCon
k0 = 1 << (nb_bits-2);
signmask = 1 << (nb_bits-1);
+ while (get_bits_count(&gb) <= size - 22*avctx->channels) {
for (i = 0; i < avctx->channels; i++) {
*samples++ = c->status[i].predictor = get_sbits(&gb, 16);
c->status[i].step_index = get_bits(&gb, 6);
}
- while (get_bits_count(&gb) < size)
+ for (count = 0; get_bits_count(&gb) <= size - nb_bits*avctx->channels && count < 4095; count++)
{
int i;
@@ -1327,6 +1328,7 @@ static int adpcm_decode_frame(AVCodecCon
}
}
}
+ }
src += buf_size;
break;
}
More information about the ffmpeg-cvslog
mailing list