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 { |