Mercurial > libavcodec.hg
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 { |
