comparison wmadec.c @ 10654:2dbb341a14ba libavcodec

Print error messages on errors.
author michael
date Mon, 07 Dec 2009 00:35:38 +0000
parents 50c21a46538f
children a8e640f4f388
comparison
equal deleted inserted replaced
10653:50c21a46538f 10654:2dbb341a14ba
353 }else 353 }else
354 last_exp = 36; 354 last_exp = 36;
355 355
356 while (q < q_end) { 356 while (q < q_end) {
357 code = get_vlc2(&s->gb, s->exp_vlc.table, EXPVLCBITS, EXPMAX); 357 code = get_vlc2(&s->gb, s->exp_vlc.table, EXPVLCBITS, EXPMAX);
358 if (code < 0) 358 if (code < 0){
359 av_log(s->avctx, AV_LOG_ERROR, "Exponent vlc invalid\n");
359 return -1; 360 return -1;
361 }
360 /* NOTE: this offset is the same as MPEG4 AAC ! */ 362 /* NOTE: this offset is the same as MPEG4 AAC ! */
361 last_exp += code - 60; 363 last_exp += code - 60;
362 if ((unsigned)last_exp + 60 > FF_ARRAY_ELEMS(pow_tab)) { 364 if ((unsigned)last_exp + 60 > FF_ARRAY_ELEMS(pow_tab)) {
363 av_log(s->avctx, AV_LOG_ERROR, "Exponent out of range: %d\n", 365 av_log(s->avctx, AV_LOG_ERROR, "Exponent out of range: %d\n",
364 last_exp); 366 last_exp);
455 n = av_log2(s->nb_block_sizes - 1) + 1; 457 n = av_log2(s->nb_block_sizes - 1) + 1;
456 458
457 if (s->reset_block_lengths) { 459 if (s->reset_block_lengths) {
458 s->reset_block_lengths = 0; 460 s->reset_block_lengths = 0;
459 v = get_bits(&s->gb, n); 461 v = get_bits(&s->gb, n);
460 if (v >= s->nb_block_sizes) 462 if (v >= s->nb_block_sizes){
463 av_log(s->avctx, AV_LOG_ERROR, "prev_block_len_bits %d out of range\n", s->frame_len_bits - v);
461 return -1; 464 return -1;
465 }
462 s->prev_block_len_bits = s->frame_len_bits - v; 466 s->prev_block_len_bits = s->frame_len_bits - v;
463 v = get_bits(&s->gb, n); 467 v = get_bits(&s->gb, n);
464 if (v >= s->nb_block_sizes) 468 if (v >= s->nb_block_sizes){
469 av_log(s->avctx, AV_LOG_ERROR, "block_len_bits %d out of range\n", s->frame_len_bits - v);
465 return -1; 470 return -1;
471 }
466 s->block_len_bits = s->frame_len_bits - v; 472 s->block_len_bits = s->frame_len_bits - v;
467 } else { 473 } else {
468 /* update block lengths */ 474 /* update block lengths */
469 s->prev_block_len_bits = s->block_len_bits; 475 s->prev_block_len_bits = s->block_len_bits;
470 s->block_len_bits = s->next_block_len_bits; 476 s->block_len_bits = s->next_block_len_bits;
471 } 477 }
472 v = get_bits(&s->gb, n); 478 v = get_bits(&s->gb, n);
473 if (v >= s->nb_block_sizes) 479 if (v >= s->nb_block_sizes){
480 av_log(s->avctx, AV_LOG_ERROR, "next_block_len_bits %d out of range\n", s->frame_len_bits - v);
474 return -1; 481 return -1;
482 }
475 s->next_block_len_bits = s->frame_len_bits - v; 483 s->next_block_len_bits = s->frame_len_bits - v;
476 } else { 484 } else {
477 /* fixed block len */ 485 /* fixed block len */
478 s->next_block_len_bits = s->frame_len_bits; 486 s->next_block_len_bits = s->frame_len_bits;
479 s->prev_block_len_bits = s->frame_len_bits; 487 s->prev_block_len_bits = s->frame_len_bits;
480 s->block_len_bits = s->frame_len_bits; 488 s->block_len_bits = s->frame_len_bits;
481 } 489 }
482 490
483 /* now check if the block length is coherent with the frame length */ 491 /* now check if the block length is coherent with the frame length */
484 s->block_len = 1 << s->block_len_bits; 492 s->block_len = 1 << s->block_len_bits;
485 if ((s->block_pos + s->block_len) > s->frame_len) 493 if ((s->block_pos + s->block_len) > s->frame_len){
494 av_log(s->avctx, AV_LOG_ERROR, "frame_len overflow\n");
486 return -1; 495 return -1;
496 }
487 497
488 if (s->nb_channels == 2) { 498 if (s->nb_channels == 2) {
489 s->ms_stereo = get_bits1(&s->gb); 499 s->ms_stereo = get_bits1(&s->gb);
490 } 500 }
491 v = 0; 501 v = 0;
545 if (s->high_band_coded[ch][i]) { 555 if (s->high_band_coded[ch][i]) {
546 if (val == (int)0x80000000) { 556 if (val == (int)0x80000000) {
547 val = get_bits(&s->gb, 7) - 19; 557 val = get_bits(&s->gb, 7) - 19;
548 } else { 558 } else {
549 code = get_vlc2(&s->gb, s->hgain_vlc.table, HGAINVLCBITS, HGAINMAX); 559 code = get_vlc2(&s->gb, s->hgain_vlc.table, HGAINVLCBITS, HGAINMAX);
550 if (code < 0) 560 if (code < 0){
561 av_log(s->avctx, AV_LOG_ERROR, "hgain vlc invalid\n");
551 return -1; 562 return -1;
563 }
552 val += code - 18; 564 val += code - 18;
553 } 565 }
554 s->high_band_values[ch][i] = val; 566 s->high_band_values[ch][i] = val;
555 } 567 }
556 } 568 }
880 pos = get_bits_count(&s->gb) + ((bit_offset + 4 + 4 + s->byte_offset_bits + 3) & ~7); 892 pos = get_bits_count(&s->gb) + ((bit_offset + 4 + 4 + s->byte_offset_bits + 3) & ~7);
881 s->last_bitoffset = pos & 7; 893 s->last_bitoffset = pos & 7;
882 pos >>= 3; 894 pos >>= 3;
883 len = buf_size - pos; 895 len = buf_size - pos;
884 if (len > MAX_CODED_SUPERFRAME_SIZE || len < 0) { 896 if (len > MAX_CODED_SUPERFRAME_SIZE || len < 0) {
897 av_log(s->avctx, AV_LOG_ERROR, "len %d invalid\n", len);
885 goto fail; 898 goto fail;
886 } 899 }
887 s->last_superframe_len = len; 900 s->last_superframe_len = len;
888 memcpy(s->last_superframe, buf + pos, len); 901 memcpy(s->last_superframe, buf + pos, len);
889 } else { 902 } else {