[SCM] libav/experimental: AAC: escape_sequence is 21 bits max

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:57:21 UTC 2013


The following commit has been merged in the experimental branch:
commit 7c8af53f871c3e32ee265fd84d7166cbcbcc0a35
Author: Måns Rullgård <mans at mansr.com>
Date:   Mon Jan 11 18:02:00 2010 +0000

    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

diff --git a/libavcodec/aac.c b/libavcodec/aac.c
index 2bb05b8..d23d4da 100644
--- a/libavcodec/aac.c
+++ b/libavcodec/aac.c
@@ -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;
                                         }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list