comparison dca.c @ 12091:c2a1bb63bd30 libavcodec

DCA: *_bits() -> *_bits_long() where needed, half fix for broken bitstream parsing
author banan
date Mon, 05 Jul 2010 01:43:47 +0000
parents 6db8c8adf407
children de9e45d04063
comparison
equal deleted inserted replaced
12090:82d32c82289d 12091:c2a1bb63bd30
1288 1288
1289 /* record number of core channels incase less than max channels are requested */ 1289 /* record number of core channels incase less than max channels are requested */
1290 num_core_channels = s->prim_channels; 1290 num_core_channels = s->prim_channels;
1291 1291
1292 /* extensions start at 32-bit boundaries into bitstream */ 1292 /* extensions start at 32-bit boundaries into bitstream */
1293 skip_bits(&s->gb, (-get_bits_count(&s->gb)) & 31); 1293 skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
1294 1294
1295 while(get_bits_left(&s->gb) >= 32) { 1295 while(get_bits_left(&s->gb) >= 32) {
1296 uint32_t bits = get_bits(&s->gb, 32); 1296 uint32_t bits = get_bits_long(&s->gb, 32);
1297 1297
1298 switch(bits) { 1298 switch(bits) {
1299 case 0x5a5a5a5a: { 1299 case 0x5a5a5a5a: {
1300 int ext_base_ch = s->prim_channels; 1300 int ext_base_ch = s->prim_channels;
1301 int ext_amode; 1301 int ext_amode;
1326 av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", get_bits(&s->gb, 12)+1); 1326 av_log(avctx, AV_LOG_DEBUG, "FSIZE96 = %d bytes\n", get_bits(&s->gb, 12)+1);
1327 av_log(avctx, AV_LOG_DEBUG, "REVNO = %d\n", get_bits(&s->gb, 4)); 1327 av_log(avctx, AV_LOG_DEBUG, "REVNO = %d\n", get_bits(&s->gb, 4));
1328 break; 1328 break;
1329 } 1329 }
1330 1330
1331 skip_bits(&s->gb, (-get_bits_count(&s->gb)) & 31); 1331 skip_bits_long(&s->gb, (-get_bits_count(&s->gb)) & 31);
1332 } 1332 }
1333 1333
1334 channels = s->prim_channels + !!s->lfe; 1334 channels = s->prim_channels + !!s->lfe;
1335 1335
1336 if (s->amode<16) { 1336 if (s->amode<16) {