]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Refactor AAC unsigned band type decoding for a modest speedup.
authoralexc <alexc@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 26 Feb 2009 01:51:34 +0000 (01:51 +0000)
committeralexc <alexc@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Thu, 26 Feb 2009 01:51:34 +0000 (01:51 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17599 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/aac.c

index ca21e0209dedb971174c1cb19c091b55fd55b925..324c06eb27e9865c1711a08419131cb31c8528f3 100644 (file)
@@ -805,14 +805,6 @@ static int decode_spectrum_and_dequant(AACContext * ac, float coef[1024], GetBit
                                 if (vq_ptr[2]) coef[coef_tmp_idx + 2] = sign_lookup[get_bits1(gb)];
                                 if (vq_ptr[3]) coef[coef_tmp_idx + 3] = sign_lookup[get_bits1(gb)];
                             }
-                        }else {
-                            coef[coef_tmp_idx    ] = 1.0f;
-                            coef[coef_tmp_idx + 1] = 1.0f;
-                            if (dim == 4) {
-                                coef[coef_tmp_idx + 2] = 1.0f;
-                                coef[coef_tmp_idx + 3] = 1.0f;
-                            }
-                        }
                         if (cur_band_type == ESC_BT) {
                             for (j = 0; j < 2; j++) {
                                 if (vq_ptr[j] == 64.0f) {
@@ -838,6 +830,14 @@ static int decode_spectrum_and_dequant(AACContext * ac, float coef[1024], GetBit
                                 coef[coef_tmp_idx + 3] *= vq_ptr[3];
                             }
                         }
+                        }else {
+                            coef[coef_tmp_idx    ] = vq_ptr[0];
+                            coef[coef_tmp_idx + 1] = vq_ptr[1];
+                            if (dim == 4) {
+                                coef[coef_tmp_idx + 2] = vq_ptr[2];
+                                coef[coef_tmp_idx + 3] = vq_ptr[3];
+                            }
+                        }
                         coef[coef_tmp_idx    ] *= sf[idx];
                         coef[coef_tmp_idx + 1] *= sf[idx];
                         if (dim == 4) {