Browse Source

AAC: escape_sequence is 21 bits max

The maximum length of escape_sequence is 21 bits, so adjust limit in
code to match this.  Also fix the comment.

Originally committed as revision 21151 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.6
Måns Rullgård 16 years ago
parent
commit
7c8af53f87
1 changed files with 3 additions and 3 deletions
  1. +3
    -3
      libavcodec/aac.c

+ 3
- 3
libavcodec/aac.c View File

@@ -942,9 +942,9 @@ static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],
if (vq_ptr[j] == 64.0f) {
int n = 4;
/* The total length of escape_sequence must be < 22 bits according
to the specification (i.e. max is 11111111110xxxxxxxxxx). */
while (get_bits1(gb) && n < 15) n++;
if (n == 15) {
to the specification (i.e. max is 111111110xxxxxxxxxxxx). */
while (get_bits1(gb) && n < 13) n++;
if (n == 13) {
av_log(ac->avccontext, AV_LOG_ERROR, "error in spectral data, ESC overflow\n");
return -1;
}


Loading…
Cancel
Save