diff options
| author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-16 19:13:03 +0000 | 
|---|---|---|
| committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-12-16 19:13:03 +0000 | 
| commit | 22f8d6894aea55dc3702f6b88f6e9c601184c75a (patch) | |
| tree | aa4f5238df85f347d39d804866b47b73a14c0358 | |
| parent | d52f0bc461bda17a266586801140cf0362b26bed (diff) | |
| download | xine-lib-22f8d6894aea55dc3702f6b88f6e9c601184c75a.tar.gz xine-lib-22f8d6894aea55dc3702f6b88f6e9c601184c75a.tar.bz2 | |
cleaning up
CVS patchset: 3562
CVS date: 2002/12/16 19:13:03
| -rw-r--r-- | src/libfaad/sbr_dec.c | 60 | ||||
| -rw-r--r-- | src/libfaad/sbr_huff.c | 673 | ||||
| -rw-r--r-- | src/libfaad/sbr_qmf.c | 289 | ||||
| -rw-r--r-- | src/libfaad/sbr_syntax.c | 609 | 
4 files changed, 0 insertions, 1631 deletions
| diff --git a/src/libfaad/sbr_dec.c b/src/libfaad/sbr_dec.c deleted file mode 100644 index b4f51b726..000000000 --- a/src/libfaad/sbr_dec.c +++ /dev/null @@ -1,60 +0,0 @@ -/* -** FAAD - Freeware Advanced Audio Decoder -** Copyright (C) 2002 M. Bakker -**   -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or -** (at your option) any later version. -**  -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -** GNU General Public License for more details. -**  -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software  -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -** -** $Id: sbr_dec.c,v 1.1 2002/07/14 23:43:01 miguelfreitas Exp $ -**/ - -/* -   SBR Decoder overview: - -   To achieve a synchronized output signal, the following steps have to be -   acknowledged in the decoder: -    - The bitstream parser divides the bitstream into two parts; the AAC -      core coder part and the SBR part. -    - The SBR bitstream part is fed to the bitstream de-multiplexer followed -      by de-quantization The raw data is Huffman decoded. -    - The AAC bitstream part is fed to the AAC core decoder, where the -      bitstream data of the current frame is decoded, yielding a time domain -      audio signal block of 1024 samples. The block length could easily be -      adapted to other sizes e.g. 960. -    - The core coder audio block is fed to the analysis QMF bank using a -      delay of 1312 samples. -    - The analysis QMF bank performs the filtering of the delayed core coder -      audio signal. The output from the filtering is stored in the matrix -      Xlow. The output from the analysis QMF bank is delayed tHFGen subband -      samples, before being fed to the synthesis QMF bank. To achieve -      synchronization tHFGen = 32, i.e. the value must equal the number of -      subband samples corresponding to one frame. -    - The HF generator calculates XHigh given the matrix XLow. The process -      is guided by the SBR data contained in the current frame. -    - The envelope adjuster calculates the matrix Y given the matrix XHigh -      and the SBR envelope data, extracted from the SBR bitstream. To -      achieve synchronization, tHFAdj has to be set to tHFAdj = 0, i.e. the -      envelope adjuster operates on data delayed tHFGen subband samples. -    - The synthesis QMF bank operates on the delayed output from the analysis -      QMF bank and the output from the envelope adjuster. - */ - -#include "common.h" - -#ifdef SBR - -#include "sbr_syntax.h" -#include "sbr_qmf.h" - -#endif diff --git a/src/libfaad/sbr_huff.c b/src/libfaad/sbr_huff.c deleted file mode 100644 index 62413d708..000000000 --- a/src/libfaad/sbr_huff.c +++ /dev/null @@ -1,673 +0,0 @@ -/* -** FAAD - Freeware Advanced Audio Decoder -** Copyright (C) 2002 M. Bakker -**   -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or -** (at your option) any later version. -**  -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -** GNU General Public License for more details. -**  -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software  -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -** -** $Id: sbr_huff.c,v 1.1 2002/07/14 23:43:01 miguelfreitas Exp $ -**/ - -#include "common.h" - -#ifdef SBR - -#include "bits.h" -#include "sbr_huff.h" - - -/* huffman tables all have some offset LAV */ -uint16_t sbr_huff_dec(bitfile *ld, sbr_huff_tab *t_huff) -{ -} - - -sbr_huff_tab t_huffman_env_1_5dB[] = { -{ /*   */ 0, 60}, -{ /*   */ 1, 59}, -{ /*   */ 4, 61}, -{ /*   */ 5, 58}, -{ /*   */ 12, 62}, -{ /*   */ 13, 57}, -{ /*   */ 28, 63}, -{ /*   */ 29, 56}, -{ /*   */ 60, 64}, -{ /*   */ 61, 55}, -{ /*   */ 124, 65}, -{ /*   */ 125, 54}, -{ /*   */ 252, 66}, -{ /*   */ 253, 53}, -{ /*   */ 508, 67}, -{ /*   */ 509, 52}, -{ /*   */ 1020, 51}, -{ /*   */ 1021, 68}, -{ /*   */ 2044, 50}, -{ /*   */ 4090, 69}, -{ /*   */ 4091, 49}, -{ /*   */ 8184, 70}, -{ /*   */ 8185, 48}, -{ /*   */ 8186, 47}, -{ /*   */ 16374, 71}, -{ /*   */ 16375, 46}, -{ /*   */ 16376, 72}, -{ /*   */ 16377, 45}, -{ /*   */ 32756, 44}, -{ /*   */ 32757, 73}, -{ /*   */ 65516, 41}, -{ /*   */ 65517, 42}, -{ /*   */ 65518, 43}, -{ /*   */ 65519, 74}, -{ /*   */ 65520, 36}, -{ /*   */ 65521, 40}, -{ /*   */ 65522, 76}, -{ /*   */ 131046, 34}, -{ /*   */ 131047, 39}, -{ /*   */ 131048, 75}, -{ /*   */ 131049, 37}, -{ /*   */ 262100, 35}, -{ /*   */ 262101, 38}, -{ /*   */ 262102, 0}, -{ /*   */ 262103, 1}, -{ /*   */ 262104, 2}, -{ /*   */ 262105, 3}, -{ /*   */ 262106, 4}, -{ /*   */ 262107, 5}, -{ /*   */ 524216, 6}, -{ /*   */ 524217, 7}, -{ /*   */ 524218, 8}, -{ /*   */ 524219, 9}, -{ /*   */ 524220, 10}, -{ /*   */ 524221, 11}, -{ /*   */ 524222, 12}, -{ /*   */ 524223, 13}, -{ /*   */ 524224, 14}, -{ /*   */ 524225, 15}, -{ /*   */ 524226, 16}, -{ /*   */ 524227, 17}, -{ /*   */ 524228, 18}, -{ /*   */ 524229, 19}, -{ /*   */ 524230, 20}, -{ /*   */ 524231, 21}, -{ /*   */ 524232, 22}, -{ /*   */ 524233, 23}, -{ /*   */ 524234, 24}, -{ /*   */ 524235, 25}, -{ /*   */ 524236, 26}, -{ /*   */ 524237, 27}, -{ /*   */ 524238, 28}, -{ /*   */ 524239, 29}, -{ /*   */ 524240, 30}, -{ /*   */ 524241, 31}, -{ /*   */ 524242, 32}, -{ /*   */ 524243, 33}, -{ /*   */ 524244, 77}, -{ /*   */ 524245, 78}, -{ /*   */ 524246, 79}, -{ /*   */ 524247, 80}, -{ /*   */ 524248, 81}, -{ /*   */ 524249, 82}, -{ /*   */ 524250, 83}, -{ /*   */ 524251, 84}, -{ /*   */ 524252, 85}, -{ /*   */ 524253, 86}, -{ /*   */ 524254, 87}, -{ /*   */ 524255, 88}, -{ /*   */ 524256, 89}, -{ /*   */ 524257, 90}, -{ /*   */ 524258, 91}, -{ /*   */ 524259, 92}, -{ /*   */ 524260, 93}, -{ /*   */ 524261, 94}, -{ /*   */ 524262, 95}, -{ /*   */ 524263, 96}, -{ /*   */ 524264, 97}, -{ /*   */ 524265, 98}, -{ /*   */ 524266, 99}, -{ /*   */ 524267, 100}, -{ /*   */ 524268, 101}, -{ /*   */ 524269, 102}, -{ /*   */ 524270, 103}, -{ /*   */ 524271, 104}, -{ /*   */ 524272, 105}, -{ /*   */ 524273, 106}, -{ /*   */ 524274, 107}, -{ /*   */ 524275, 108}, -{ /*   */ 524276, 109}, -{ /*   */ 524277, 110}, -{ /*   */ 524278, 111}, -{ /*   */ 524279, 112}, -{ /*   */ 524280, 113}, -{ /*   */ 524281, 114}, -{ /*   */ 524282, 115}, -{ /*   */ 524283, 116}, -{ /*   */ 524284, 117}, -{ /*   */ 524285, 118}, -{ /*   */ 524286, 119}, -{ /*   */ 524287, 120} -}; - -sbr_huff_tab f_huffman_env_1_5dB[] = { -{ /*   */ 0, 60}, -{ /*   */ 1, 59}, -{ /*   */ 4, 61}, -{ /*   */ 5, 58}, -{ /*   */ 12, 57}, -{ /*   */ 13, 62}, -{ /*   */ 28, 56}, -{ /*   */ 29, 63}, -{ /*   */ 60, 55}, -{ /*   */ 61, 64}, -{ /*   */ 124, 54}, -{ /*   */ 250, 65}, -{ /*   */ 251, 53}, -{ /*   */ 252, 66}, -{ /*   */ 506, 52}, -{ /*   */ 507, 67}, -{ /*   */ 508, 51}, -{ /*   */ 1018, 68}, -{ /*   */ 1019, 50}, -{ /*   */ 2040, 69}, -{ /*   */ 2041, 49}, -{ /*   */ 2042, 70}, -{ /*   */ 2043, 71}, -{ /*   */ 4088, 48}, -{ /*   */ 4089, 72}, -{ /*   */ 4090, 47}, -{ /*   */ 4091, 73}, -{ /*   */ 8184, 74}, -{ /*   */ 8185, 46}, -{ /*   */ 8186, 45}, -{ /*   */ 8187, 75}, -{ /*   */ 16376, 76}, -{ /*   */ 16377, 77}, -{ /*   */ 16378, 44}, -{ /*   */ 32758, 43}, -{ /*   */ 32759, 42}, -{ /*   */ 65520, 41}, -{ /*   */ 65521, 78}, -{ /*   */ 65522, 79}, -{ /*   */ 65523, 40}, -{ /*   */ 65524, 39}, -{ /*   */ 131050, 80}, -{ /*   */ 131051, 81}, -{ /*   */ 131052, 36}, -{ /*   */ 131053, 37}, -{ /*   */ 131054, 38}, -{ /*   */ 131055, 34}, -{ /*   */ 262112, 32}, -{ /*   */ 262113, 82}, -{ /*   */ 262114, 83}, -{ /*   */ 262115, 85}, -{ /*   */ 262116, 19}, -{ /*   */ 262117, 35}, -{ /*   */ 262118, 86}, -{ /*   */ 262119, 87}, -{ /*   */ 262120, 30}, -{ /*   */ 262121, 33}, -{ /*   */ 262122, 84}, -{ /*   */ 262123, 88}, -{ /*   */ 262124, 104}, -{ /*   */ 524250, 9}, -{ /*   */ 524251, 14}, -{ /*   */ 524252, 16}, -{ /*   */ 524253, 17}, -{ /*   */ 524254, 23}, -{ /*   */ 524255, 27}, -{ /*   */ 524256, 29}, -{ /*   */ 524257, 31}, -{ /*   */ 524258, 90}, -{ /*   */ 524259, 97}, -{ /*   */ 524260, 102}, -{ /*   */ 524261, 107}, -{ /*   */ 524262, 108}, -{ /*   */ 524263, 0}, -{ /*   */ 524264, 1}, -{ /*   */ 1048530, 2}, -{ /*   */ 1048531, 3}, -{ /*   */ 1048532, 4}, -{ /*   */ 1048533, 5}, -{ /*   */ 1048534, 6}, -{ /*   */ 1048535, 7}, -{ /*   */ 1048536, 8}, -{ /*   */ 1048537, 10}, -{ /*   */ 1048538, 11}, -{ /*   */ 1048539, 12}, -{ /*   */ 1048540, 13}, -{ /*   */ 1048541, 15}, -{ /*   */ 1048542, 18}, -{ /*   */ 1048543, 20}, -{ /*   */ 1048544, 21}, -{ /*   */ 1048545, 22}, -{ /*   */ 1048546, 24}, -{ /*   */ 1048547, 25}, -{ /*   */ 1048548, 26}, -{ /*   */ 1048549, 28}, -{ /*   */ 1048550, 89}, -{ /*   */ 1048551, 91}, -{ /*   */ 1048552, 92}, -{ /*   */ 1048553, 93}, -{ /*   */ 1048554, 94}, -{ /*   */ 1048555, 95}, -{ /*   */ 1048556, 96}, -{ /*   */ 1048557, 98}, -{ /*   */ 1048558, 99}, -{ /*   */ 1048559, 100}, -{ /*   */ 1048560, 101}, -{ /*   */ 1048561, 103}, -{ /*   */ 1048562, 105}, -{ /*   */ 1048563, 106}, -{ /*   */ 1048564, 109}, -{ /*   */ 1048565, 110}, -{ /*   */ 1048566, 111}, -{ /*   */ 1048567, 112}, -{ /*   */ 1048568, 113}, -{ /*   */ 1048569, 114}, -{ /*   */ 1048570, 115}, -{ /*   */ 1048571, 116}, -{ /*   */ 1048572, 117}, -{ /*   */ 1048573, 118}, -{ /*   */ 1048574, 119}, -{ /*   */ 1048575, 120} -}; - -sbr_huff_tab t_huffman_env_bal_1_5dB[] = { -{ /*   */ 0, 24}, -{ /*   */ 2, 25}, -{ /*   */ 6, 23}, -{ /*   */ 14, 26}, -{ /*   */ 30, 22}, -{ /*   */ 62, 27}, -{ /*   */ 126, 21}, -{ /*   */ 254, 28}, -{ /*   */ 510, 20}, -{ /*   */ 2044, 19}, -{ /*   */ 2045, 29}, -{ /*   */ 4092, 18}, -{ /*   */ 4093, 30}, -{ /*   */ 32752, 31}, -{ /*   */ 65506, 17}, -{ /*   */ 65507, 32}, -{ /*   */ 65508, 0}, -{ /*   */ 65509, 1}, -{ /*   */ 65510, 2}, -{ /*   */ 65511, 3}, -{ /*   */ 65512, 4}, -{ /*   */ 65513, 5}, -{ /*   */ 65514, 6}, -{ /*   */ 65515, 7}, -{ /*   */ 65516, 8}, -{ /*   */ 65517, 9}, -{ /*   */ 65518, 10}, -{ /*   */ 65519, 11}, -{ /*   */ 65520, 12}, -{ /*   */ 65521, 13}, -{ /*   */ 65522, 14}, -{ /*   */ 65523, 15}, -{ /*   */ 65524, 16}, -{ /*   */ 65525, 33}, -{ /*   */ 65526, 34}, -{ /*   */ 65527, 35}, -{ /*   */ 65528, 36}, -{ /*   */ 65529, 37}, -{ /*   */ 65530, 38}, -{ /*   */ 131062, 39}, -{ /*   */ 131063, 40}, -{ /*   */ 131064, 41}, -{ /*   */ 131065, 42}, -{ /*   */ 131066, 43}, -{ /*   */ 131067, 44}, -{ /*   */ 131068, 45}, -{ /*   */ 131069, 46}, -{ /*   */ 131070, 47}, -{ /*   */ 131071, 48} -}; - -sbr_huff_tab f_huffman_env_bal_1_5dB[] = { -{ /*   */ 0, 24}, -{ /*   */ 2, 23}, -{ /*   */ 6, 25}, -{ /*   */ 14, 22}, -{ /*   */ 30, 26}, -{ /*   */ 62, 27}, -{ /*   */ 115, 21}, -{ /*   */ 243, 20}, -{ /*   */ 510, 28}, -{ /*   */ 2044, 19}, -{ /*   */ 2045, 29}, -{ /*   */ 2046, 18}, -{ /*   */ 4094, 30}, -{ /*   */ 16380, 17}, -{ /*   */ 32762, 31}, -{ /*   */ 65526, 32}, -{ /*   */ 65527, 15}, -{ /*   */ 131056, 16}, -{ /*   */ 262114, 0}, -{ /*   */ 262115, 1}, -{ /*   */ 262116, 2}, -{ /*   */ 262117, 3}, -{ /*   */ 262118, 4}, -{ /*   */ 262119, 5}, -{ /*   */ 262120, 6}, -{ /*   */ 262121, 7}, -{ /*   */ 262122, 8}, -{ /*   */ 262123, 9}, -{ /*   */ 262124, 10}, -{ /*   */ 262125, 11}, -{ /*   */ 262126, 12}, -{ /*   */ 262127, 13}, -{ /*   */ 262128, 14}, -{ /*   */ 262129, 33}, -{ /*   */ 262130, 34}, -{ /*   */ 262131, 35}, -{ /*   */ 262132, 36}, -{ /*   */ 262133, 37}, -{ /*   */ 262134, 38}, -{ /*   */ 262135, 39}, -{ /*   */ 262136, 40}, -{ /*   */ 262137, 41}, -{ /*   */ 262138, 42}, -{ /*   */ 262139, 43}, -{ /*   */ 262140, 44}, -{ /*   */ 262141, 45}, -{ /*   */ 262142, 46}, -{ /*   */ 524286, 47}, -{ /*   */ 524287, 48} -}; - -sbr_huff_tab t_huffman_env_3_0dB[] = { -{ /*   */ 0, 31}, -{ /*   */ 2, 30}, -{ /*   */ 6, 32}, -{ /*   */ 14, 29}, -{ /*   */ 30, 33}, -{ /*   */ 62, 28}, -{ /*   */ 126, 34}, -{ /*   */ 254, 27}, -{ /*   */ 510, 35}, -{ /*   */ 2044, 26}, -{ /*   */ 2045, 36}, -{ /*   */ 4092, 25}, -{ /*   */ 8186, 24}, -{ /*   */ 8187, 37}, -{ /*   */ 16376, 23}, -{ /*   */ 16377, 38}, -{ /*   */ 16378, 22}, -{ /*   */ 16379, 21}, -{ /*   */ 16380, 39}, -{ /*   */ 32762, 40}, -{ /*   */ 65526, 41}, -{ /*   */ 65527, 18}, -{ /*   */ 65528, 20}, -{ /*   */ 65529, 19}, -{ /*   */ 131060, 17}, -{ /*   */ 131061, 42}, -{ /*   */ 262124, 43}, -{ /*   */ 262125, 0}, -{ /*   */ 262126, 1}, -{ /*   */ 524254, 2}, -{ /*   */ 524255, 3}, -{ /*   */ 524256, 4}, -{ /*   */ 524257, 5}, -{ /*   */ 524258, 6}, -{ /*   */ 524259, 7}, -{ /*   */ 524260, 8}, -{ /*   */ 524261, 9}, -{ /*   */ 524262, 10}, -{ /*   */ 524263, 11}, -{ /*   */ 524264, 12}, -{ /*   */ 524265, 13}, -{ /*   */ 524266, 14}, -{ /*   */ 524267, 15}, -{ /*   */ 524268, 16}, -{ /*   */ 524269, 44}, -{ /*   */ 524270, 45}, -{ /*   */ 524271, 46}, -{ /*   */ 524272, 47}, -{ /*   */ 524273, 48}, -{ /*   */ 524274, 49}, -{ /*   */ 524275, 50}, -{ /*   */ 524276, 51}, -{ /*   */ 524277, 52}, -{ /*   */ 524278, 53}, -{ /*   */ 524279, 54}, -{ /*   */ 524280, 55}, -{ /*   */ 524281, 56}, -{ /*   */ 524282, 57}, -{ /*   */ 524283, 58}, -{ /*   */ 524284, 59}, -{ /*   */ 524285, 60}, -{ /*   */ 524286, 61}, -{ /*   */ 524287, 62} -}; - -sbr_huff_tab f_huffman_env_3_0dB[] = { -{ /*   */ 0, 31}, -{ /*   */ 2, 30}, -{ /*   */ 6, 32}, -{ /*   */ 14, 29}, -{ /*   */ 30, 33}, -{ /*   */ 62, 28}, -{ /*   */ 252, 34}, -{ /*   */ 253, 27}, -{ /*   */ 508, 35}, -{ /*   */ 509, 26}, -{ /*   */ 1020, 36}, -{ /*   */ 1021, 25}, -{ /*   */ 2044, 37}, -{ /*   */ 2045, 24}, -{ /*   */ 4092, 38}, -{ /*   */ 4093, 23}, -{ /*   */ 8188, 39}, -{ /*   */ 16378, 40}, -{ /*   */ 16379, 22}, -{ /*   */ 32760, 21}, -{ /*   */ 32761, 41}, -{ /*   */ 32762, 42}, -{ /*   */ 65526, 20}, -{ /*   */ 65527, 19}, -{ /*   */ 65528, 43}, -{ /*   */ 65529, 44}, -{ /*   */ 131060, 18}, -{ /*   */ 131061, 16}, -{ /*   */ 131062, 45}, -{ /*   */ 131063, 46}, -{ /*   */ 262128, 17}, -{ /*   */ 262129, 49}, -{ /*   */ 262130, 13}, -{ /*   */ 262131, 7}, -{ /*   */ 262132, 12}, -{ /*   */ 262133, 47}, -{ /*   */ 262134, 48}, -{ /*   */ 524270, 9}, -{ /*   */ 524271, 10}, -{ /*   */ 524272, 15}, -{ /*   */ 524273, 51}, -{ /*   */ 524274, 52}, -{ /*   */ 524275, 53}, -{ /*   */ 524276, 56}, -{ /*   */ 524277, 8}, -{ /*   */ 524278, 11}, -{ /*   */ 524279, 55}, -{ /*   */ 1048560, 0}, -{ /*   */ 1048561, 1}, -{ /*   */ 1048562, 2}, -{ /*   */ 1048563, 3}, -{ /*   */ 1048564, 4}, -{ /*   */ 1048565, 5}, -{ /*   */ 1048566, 6}, -{ /*   */ 1048567, 14}, -{ /*   */ 1048568, 50}, -{ /*   */ 1048569, 54}, -{ /*   */ 1048570, 57}, -{ /*   */ 1048571, 58}, -{ /*   */ 1048572, 59}, -{ /*   */ 1048573, 60}, -{ /*   */ 1048574, 61}, -{ /*   */ 1048575, 62} -}; - -sbr_huff_tab t_huffman_env_bal_3_0dB[] = { -{ /*   */ 0, 12}, -{ /*   */ 2, 13}, -{ /*   */ 6, 11}, -{ /*   */ 14, 10}, -{ /*   */ 30, 14}, -{ /*   */ 62, 15}, -{ /*   */ 126, 9}, -{ /*   */ 254, 8}, -{ /*   */ 510, 16}, -{ /*   */ 4088, 7}, -{ /*   */ 8178, 0}, -{ /*   */ 8179, 1}, -{ /*   */ 8180, 2}, -{ /*   */ 8181, 3}, -{ /*   */ 8182, 4}, -{ /*   */ 8183, 5}, -{ /*   */ 8184, 6}, -{ /*   */ 8185, 17}, -{ /*   */ 8186, 18}, -{ /*   */ 8187, 19}, -{ /*   */ 8188, 20}, -{ /*   */ 8189, 21}, -{ /*   */ 8190, 22}, -{ /*   */ 16382, 23}, -{ /*   */ 16383, 24} -}; - -sbr_huff_tab f_huffman_env_bal_3_0dB[] = { -{ /*   */ 0, 12}, -{ /*   */ 2, 11}, -{ /*   */ 6, 13}, -{ /*   */ 14, 10}, -{ /*   */ 30, 14}, -{ /*   */ 62, 15}, -{ /*   */ 126, 9}, -{ /*   */ 254, 8}, -{ /*   */ 510, 16}, -{ /*   */ 2044, 7}, -{ /*   */ 4090, 17}, -{ /*   */ 8182, 18}, -{ /*   */ 8183, 0}, -{ /*   */ 8184, 1}, -{ /*   */ 8185, 2}, -{ /*   */ 8186, 3}, -{ /*   */ 8187, 4}, -{ /*   */ 16376, 5}, -{ /*   */ 16377, 6}, -{ /*   */ 16378, 19}, -{ /*   */ 16379, 20}, -{ /*   */ 16380, 21}, -{ /*   */ 16381, 22}, -{ /*   */ 16382, 23}, -{ /*   */ 16383, 24} -}; - -sbr_huff_tab t_huffman_noise_3_0dB[] = { -{ /*   */ 0, 31}, -{ /*   */ 2, 32}, -{ /*   */ 6, 30}, -{ /*   */ 14, 29}, -{ /*   */ 30, 33}, -{ /*   */ 62, 28}, -{ /*   */ 252, 34}, -{ /*   */ 253, 27}, -{ /*   */ 1016, 35}, -{ /*   */ 2034, 26}, -{ /*   */ 8140, 36}, -{ /*   */ 8141, 42}, -{ /*   */ 8142, 0}, -{ /*   */ 8143, 1}, -{ /*   */ 8144, 2}, -{ /*   */ 8145, 3}, -{ /*   */ 8146, 4}, -{ /*   */ 8147, 5}, -{ /*   */ 8148, 6}, -{ /*   */ 8149, 7}, -{ /*   */ 8150, 8}, -{ /*   */ 8151, 9}, -{ /*   */ 8152, 10}, -{ /*   */ 8153, 11}, -{ /*   */ 8154, 12}, -{ /*   */ 8155, 13}, -{ /*   */ 8156, 14}, -{ /*   */ 8157, 15}, -{ /*   */ 8158, 16}, -{ /*   */ 8159, 17}, -{ /*   */ 8160, 18}, -{ /*   */ 8161, 19}, -{ /*   */ 8162, 20}, -{ /*   */ 8163, 21}, -{ /*   */ 8164, 22}, -{ /*   */ 8165, 23}, -{ /*   */ 8166, 24}, -{ /*   */ 8167, 25}, -{ /*   */ 8168, 37}, -{ /*   */ 8169, 38}, -{ /*   */ 8170, 39}, -{ /*   */ 8171, 40}, -{ /*   */ 8172, 41}, -{ /*   */ 8173, 43}, -{ /*   */ 8174, 44}, -{ /*   */ 8175, 45}, -{ /*   */ 8176, 46}, -{ /*   */ 8177, 47}, -{ /*   */ 8178, 48}, -{ /*   */ 8179, 49}, -{ /*   */ 8180, 50}, -{ /*   */ 8181, 51}, -{ /*   */ 8182, 52}, -{ /*   */ 8183, 53}, -{ /*   */ 8184, 54}, -{ /*   */ 8185, 55}, -{ /*   */ 8186, 56}, -{ /*   */ 8187, 57}, -{ /*   */ 8188, 58}, -{ /*   */ 8189, 59}, -{ /*   */ 8190, 60}, -{ /*   */ 16382, 61}, -{ /*   */ 16383, 62} -}; - -sbr_huff_tab t_huffman_noise_bal_3_0dB[] = { -{ /*   */ 0, 12}, -{ /*   */ 2, 11}, -{ /*   */ 6, 13}, -{ /*   */ 28, 10}, -{ /*   */ 58, 14}, -{ /*   */ 236, 0}, -{ /*   */ 237, 1}, -{ /*   */ 238, 2}, -{ /*   */ 239, 3}, -{ /*   */ 240, 4}, -{ /*   */ 241, 5}, -{ /*   */ 242, 6}, -{ /*   */ 243, 7}, -{ /*   */ 244, 8}, -{ /*   */ 245, 9}, -{ /*   */ 246, 15}, -{ /*   */ 247, 16}, -{ /*   */ 248, 17}, -{ /*   */ 249, 18}, -{ /*   */ 250, 19}, -{ /*   */ 251, 20}, -{ /*   */ 252, 21}, -{ /*   */ 253, 22}, -{ /*   */ 254, 23}, -{ /*   */ 255, 24} -}; - -sbr_huff_tab *f_huffman_noise_3_0dB = t_huffman_noise_3_0dB; -sbr_huff_tab *f_huffman_noise_bal_3_0dB = t_huffman_noise_bal_3_0dB; - -#endif diff --git a/src/libfaad/sbr_qmf.c b/src/libfaad/sbr_qmf.c deleted file mode 100644 index 826790475..000000000 --- a/src/libfaad/sbr_qmf.c +++ /dev/null @@ -1,289 +0,0 @@ -/* -** FAAD - Freeware Advanced Audio Decoder -** Copyright (C) 2002 M. Bakker -** -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or -** (at your option) any later version. -** -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -** GNU General Public License for more details. -** -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -** -** $Id: sbr_qmf.c,v 1.1 2002/07/14 23:43:01 miguelfreitas Exp $ -**/ - -#include "common.h" - -#ifdef SBR - -#include "sbr_qmf.h" - -void sbr_qmf_analysis(real_t *input, complex_t **Xlow) -{ -    uint8_t l; -    real_t x[320], z[320], u[64]; -    real_t *inptr = input; - -    memset(x, 0, 320*sizeof(real_t)); - -    /* qmf subsample l */ -    for (l = 0; l < 32; l++) -    { -        uint8_t k; -        uint16_t n; - -        /* shift input buffer x */ -        for (n = 320 - 1; n <= 0; n--) -        { -            x[n] = x[n - 32]; -        } - -        /* add new samples to input buffer x */ -        for (n = 32 - 1; n <= 0; n--) -        { -            x[n] = *inptr++; -        } - -        /* window by 320 coefficients to produce array z */ -        for (n = 0; n < 320; n++) -        { -            z[n] = x[n] * qmf_c[2*n]; -        } - -        /* summation to create array u */ -        for (n = 0; n < 64; n++) -        { -            uint8_t j; - -            u[n] = 0.0; -            for (j = 0; j < 4; j++) -            { -                u[n] += z[n + j * 64]; -            } -        } - -        /* calculate 32 subband samples by introducing Xlow */ -        for (k = 0; k < 32; k++) -        { -            Xlow[k][l].re = 0.0; -            Xlow[k][l].im = 0.0; - -            for (n = 0; n < 64; n++) -            { -                /* complex exponential -                Xlow[k][l] += 2.0 * u[n] * exp(i*M_PI/64.0 * (k + 0.5) * (2.0*n - 0.5)); -                */ -                Xlow[k][l].re += 2.0 * u[n] * cos(M_PI/64.0 * (k + 0.5) * (2.0*n - 0.5)); -                Xlow[k][l].im += 2.0 * u[n] * sin(M_PI/64.0 * (k + 0.5) * (2.0*n - 0.5)); -            } -        } -    } -} - -void sbr_qmf_synthesis(complex_t **Xlow, real_t *output) -{ -    uint8_t l, k; -    uint16_t n; -    real_t v[640], w[640]; -    real_t *outptr = output; - -    memset(v, 0, 640 * sizeof(real_t)); - -    /* qmf subsample l */ -    for (l = 0; l < 32; l++) -    { -        /* shift buffer */ -        for (n = 1280-1; n <= 128; n--) -        { -            v[n] = v[n - 128]; -        } - -        /* calculate 128 samples */ -        for (n = 0; n < 128; n++) -        { -            v[n] = 0; - -            for (k = 0; k < 64; k++) -            { -                complex_t vc; - -                /* complex exponential -                vc = 64.0 * sin(i*M_PI/128.0 * (k + 0.5) * (2.0*n - 255.0)); -                */ -                vc.re = 64.0 * cos(M_PI/128.0 * (k + 0.5) * (2.0*n - 255.0)); -                vc.im = 64.0 * sin(M_PI/128.0 * (k + 0.5) * (2.0*n - 255.0)); - -                /* take the real part only */ -                v[n] += Xlow[k][l].re * vc.re - Xlow[k][l].im * vc.im; -            } -        } - -        for (n = 0; n < 4; n++) -        { -            for (k = 0; k < 64; k++) -            { -                w[128 * n +      k] = v[256 * n +       k]; -                w[128 * n + 64 + k] = v[256 * n + 192 + k]; -            } -        } - -        /* window */ -        for (n = 0; n < 640; n++) -        { -            w[n] *= qmf_c[n]; -        } - -        /* calculate 64 output samples */ -        for (k = 0; k < 64; k++) -        { -            real_t sample = 0.0; - -            for (n = 0; n < 9; n++) -            { -                sample += w[64 * n + k]; -            } - -            *outptr++ = sample; -        } -    } -} - -static real_t qmf_c[] = { -    0.0000000000, -0.0005525286, -0.0005617692, -0.0004947518, -0.0004875227, -    -0.0004893791, -0.0005040714, -0.0005226564, -0.0005466565, -0.0005677802, -    -0.0005870930, -0.0006132747, -0.0006312493, -0.0006540333, -0.0006777690, -    -0.0006941614, -0.0007157736, -0.0007255043, -0.0007440941, -0.0007490598, -    -0.0007681371, -0.0007724848, -0.0007834332, -0.0007779869, -0.0007803664, -    -0.0007801449, -0.0007757977, -0.0007630793, -0.0007530001, -0.0007319357, -    -0.0007215391, -0.0006917937, -0.0006650415, -0.0006341594, -0.0005946118, -    -0.0005564576, -0.0005145572, -0.0004606325, -0.0004095121, -0.0003501175, -    -0.0002896981, -0.0002098337, -0.0001446380, -0.0000617334, 0.0000134949, -    0.0001094383, 0.0002043017, 0.0002949531, 0.0004026540, 0.0005107388,  -    0.0006239376, 0.0007458025, 0.0008608443, 0.0009885988, 0.0011250155,  -    0.0012577884, 0.0013902494, 0.0015443219, 0.0016868083, 0.0018348265, -    0.0019841140, 0.0021461583, 0.0023017254, 0.0024625616, 0.0026201758, -    0.0027870464, 0.0029469447, 0.0031125420, 0.0032739613, 0.0034418874, -    0.0036008268, 0.0037603922, 0.0039207432, 0.0040819753, 0.0042264269, -    0.0043730719, 0.0045209852, 0.0046606460, 0.0047932560, 0.0049137603, -    0.0050393022, 0.0051407353, 0.0052461166, 0.0053471681, 0.0054196775, -    0.0054876040, 0.0055475714, 0.0055938023, 0.0056220643, 0.0056455196, -    0.0056389199, 0.0056266114, 0.0055917128, 0.0055404363, 0.0054753783, -    0.0053838975, 0.0052715758, 0.0051382275, 0.0049839687, 0.0048109469, -    0.0046039530, 0.0043801861, 0.0041251642, 0.0038456408, 0.0035401246, -    0.0032091885, 0.0028446757, 0.0024508540, 0.0020274176, 0.0015784682, -    0.0010902329, 0.0005832264, 0.0000276045, -0.0005464280, -0.0011568135, -    -0.0018039472, -0.0024826723, -0.0031933778, -0.0039401124, -0.0047222596, -    -0.0055337211, -0.0063792293, -0.0072615816, -0.0081798233, -0.0091325329, -    -0.0101150215, -0.0111315548, -0.0121849995, 0.0132718220, 0.0143904666, -    0.0155405553, 0.0167324712, 0.0179433381, 0.0191872431, 0.0204531793, -    0.0217467550, 0.0230680169, 0.0244160992, 0.0257875847, 0.0271859429, -    0.0286072173, 0.0300502657, 0.0315017608, 0.0329754081, 0.0344620948, -    0.0359697560, 0.0374812850, 0.0390053679, 0.0405349170, 0.0420649094, -    0.0436097542, 0.0451488405, 0.0466843027, 0.0482165720, 0.0497385755, -    0.0512556155, 0.0527630746, 0.0542452768, 0.0557173648, 0.0571616450, -    0.0585915683, 0.0599837480, 0.0613455171, 0.0626857808, 0.0639715898, -    0.0652247106, 0.0664367512, 0.0676075985, 0.0687043828, 0.0697630244, -    0.0707628710, 0.0717002673, 0.0725682583, 0.0733620255, 0.0741003642, -    0.0747452558, 0.0753137336, 0.0758008358, 0.0761992479, 0.0764992170, -    0.0767093490, 0.0768173975, 0.0768230011, 0.0767204924, 0.0765050718, -    0.0761748321, 0.0757305756, 0.0751576255, 0.0744664394, 0.0736406005, -    0.0726774642, 0.0715826364, 0.0703533073, 0.0689664013, 0.0674525021, -    0.0657690668, 0.0639444805, 0.0619602779, 0.0598166570, 0.0575152691, -    0.0550460034, 0.0524093821, 0.0495978676, 0.0466303305, 0.0434768782, -    0.0401458278, 0.0366418116, 0.0329583930, 0.0290824006, 0.0250307561, -    0.0207997072, 0.0163701258, 0.0117623832, 0.0069636862, 0.0019765601, -    -0.0032086896, -0.0085711749, -0.0141288827, -0.0198834129, -0.0258227288, -    -0.0319531274, -0.0382776572, -0.0447806821, -0.0514804176, -0.0583705326, -    -0.0654409853, -0.0726943300, -0.0801372934, -0.0877547536, -0.0955533352, -    -0.1035329531, -0.1116826931, -0.1200077984, -0.1285002850, -0.1371551761, -    -0.1459766491, -0.1549607071, -0.1640958855, -0.1733808172, -0.1828172548, -    -0.1923966745, -0.2021250176, -0.2119735853, -0.2219652696, -0.2320690870, -    -0.2423016884, -0.2526480309, -0.2631053299, -0.2736634040, -0.2843214189, -    -0.2950716717, -0.3059098575, -0.3168278913, -0.3278113727, -0.3388722693, -    -0.3499914122, 0.3611589903, 0.3723795546, 0.3836350013, 0.3949211761, -    0.4062317676, 0.4175696896, 0.4289119920, 0.4402553754, 0.4515996535, -    0.4629308085, 0.4742453214, 0.4855253091, 0.4967708254, 0.5079817500, -    0.5191234970, 0.5302240895, 0.5412553448, 0.5522051258, 0.5630789140,  -    0.5738524131, 0.5845403235, 0.5951123086, 0.6055783538, 0.6159109932, -    0.6261242695, 0.6361980107, 0.6461269695, 0.6559016302, 0.6655139880, -    0.6749663190, 0.6842353293, 0.6933282376, 0.7022388719, 0.7109410426, -    0.7194462634, 0.7277448900, 0.7358211758, 0.7436827863, 0.7513137456, -    0.7587080760, 0.7658674865, 0.7727780881, 0.7794287519, 0.7858353120, -    0.7919735841, 0.7978466413, 0.8034485751, 0.8087695004, 0.8138191270, -    0.8185776004, 0.8230419890, 0.8272275347, 0.8311038457, 0.8346937361, -    0.8379717337, 0.8409541392, 0.8436238281, 0.8459818469, 0.8480315777, -    0.8497805198, 0.8511971524, 0.8523047035, 0.8531020949, 0.8535720573, -    0.8537385600, 0.8535720573, 0.8531020949, 0.8523047035, 0.8511971524, -    0.8497805198, 0.8480315777, 0.8459818469, 0.8436238281, 0.8409541392, -    0.8379717337, 0.8346937361, 0.8311038457, 0.8272275347, 0.8230419890, -    0.8185776004, 0.8138191270, 0.8087695004, 0.8034485751, 0.7978466413, -    0.7919735841, 0.7858353120, 0.7794287519, 0.7727780881, 0.7658674865, -    0.7587080760, 0.7513137456, 0.7436827863, 0.7358211758, 0.7277448900, -    0.7194462634, 0.7109410426, 0.7022388719, 0.6933282376, 0.6842353293, -    0.6749663190, 0.6655139880, 0.6559016302, 0.6461269695, 0.6361980107, -    0.6261242695, 0.6159109932, 0.6055783538, 0.5951123086, 0.5845403235, -    0.5738524131, 0.5630789140, 0.5522051258, 0.5412553448, 0.5302240895, -    0.5191234970, 0.5079817500, 0.4967708254, 0.4855253091, 0.4742453214, -    0.4629308085, 0.4515996535, 0.4402553754, 0.4289119920, 0.4175696896, -    0.4062317676, 0.3949211761, 0.3836350013, 0.3723795546, -0.3611589903, -    -0.3499914122, -0.3388722693, -0.3278113727, -0.3168278913, -0.3059098575, -    -0.2950716717, -0.2843214189, -0.2736634040, -0.2631053299, -0.2526480309, -    -0.2423016884, -0.2320690870, -0.2219652696, -0.2119735853, -0.2021250176, -    -0.1923966745, -0.1828172548, -0.1733808172, -0.1640958855, -0.1549607071, -    -0.1459766491, -0.1371551761, -0.1285002850, -0.1200077984, -0.1116826931, -    -0.1035329531, -0.0955533352, -0.0877547536, -0.0801372934, -0.0726943300, -    -0.0654409853, -0.0583705326, -0.0514804176, -0.0447806821, -0.0382776572, -    -0.0319531274, -0.0258227288, -0.0198834129, -0.0141288827, -0.0085711749, -    -0.0032086896, 0.0019765601, 0.0069636862, 0.0117623832, 0.0163701258, -    0.0207997072, 0.0250307561, 0.0290824006, 0.0329583930, 0.0366418116, -    0.0401458278, 0.0434768782, 0.0466303305, 0.0495978676, 0.0524093821, -    0.0550460034, 0.0575152691, 0.0598166570, 0.0619602779, 0.0639444805, -    0.0657690668, 0.0674525021, 0.0689664013, 0.0703533073, 0.0715826364, -    0.0726774642, 0.0736406005, 0.0744664394, 0.0751576255, 0.0757305756, -    0.0761748321, 0.0765050718, 0.0767204924, 0.0768230011, 0.0768173975, -    0.0767093490, 0.0764992170, 0.0761992479, 0.0758008358, 0.0753137336, -    0.0747452558, 0.0741003642, 0.0733620255, 0.0725682583, 0.0717002673, -    0.0707628710, 0.0697630244, 0.0687043828, 0.0676075985, 0.0664367512, -    0.0652247106, 0.0639715898, 0.0626857808, 0.0613455171, 0.0599837480, -    0.0585915683, 0.0571616450, 0.0557173648, 0.0542452768, 0.0527630746, -    0.0512556155, 0.0497385755, 0.0482165720, 0.0466843027, 0.0451488405, -    0.0436097542, 0.0420649094, 0.0405349170, 0.0390053679, 0.0374812850, -    0.0359697560, 0.0344620948, 0.0329754081, 0.0315017608, 0.0300502657, -    0.0286072173, 0.0271859429, 0.0257875847, 0.0244160992, 0.0230680169, -    0.0217467550, 0.0204531793, 0.0191872431, 0.0179433381, 0.0167324712, -    0.0155405553, 0.0143904666, -0.0132718220, -0.0121849995, -0.0111315548, -    -0.0101150215, -0.0091325329, -0.0081798233, -0.0072615816, -0.0063792293, -    -0.0055337211, -0.0047222596, -0.0039401124, -0.0031933778, -0.0024826723, -    -0.0018039472, -0.0011568135, -0.0005464280, 0.0000276045, 0.0005832264, -    0.0010902329, 0.0015784682, 0.0020274176, 0.0024508540, 0.0028446757, -    0.0032091885, 0.0035401246, 0.0038456408, 0.0041251642, 0.0043801861, -    0.0046039530, 0.0048109469, 0.0049839687, 0.0051382275, 0.0052715758, -    0.0053838975, 0.0054753783, 0.0055404363, 0.0055917128, 0.0056266114, -    0.0056389199, 0.0056455196, 0.0056220643, 0.0055938023, 0.0055475714, -    0.0054876040, 0.0054196775, 0.0053471681, 0.0052461166, 0.0051407353, -    0.0050393022, 0.0049137603, 0.0047932560, 0.0046606460, 0.0045209852, -    0.0043730719, 0.0042264269, 0.0040819753, 0.0039207432, 0.0037603922, -    0.0036008268, 0.0034418874, 0.0032739613, 0.0031125420, 0.0029469447, -    0.0027870464, 0.0026201758, 0.0024625616, 0.0023017254, 0.0021461583, -    0.0019841140, 0.0018348265, 0.0016868083, 0.0015443219, 0.0013902494, -    0.0012577884, 0.0011250155, 0.0009885988, 0.0008608443, 0.0007458025, -    0.0006239376, 0.0005107388, 0.0004026540, 0.0002949531, 0.0002043017, -    0.0001094383, 0.0000134949, -0.0000617334, -0.0001446380, -0.0002098337, -    -0.0002896981, -0.0003501175, -0.0004095121, -0.0004606325, -0.0005145572, -    -0.0005564576, -0.0005946118, -0.0006341594, -0.0006650415, -0.0006917937, -    -0.0007215391, -0.0007319357, -0.0007530001, -0.0007630793, -0.0007757977, -    -0.0007801449, -0.0007803664, -0.0007779869, -0.0007834332, -0.0007724848, -    -0.0007681371, -0.0007490598, -0.0007440941, -0.0007255043, -0.0007157736, -    -0.0006941614, -0.0006777690, -0.0006540333, -0.0006312493, -0.0006132747, -    -0.0005870930, -0.0005677802, -0.0005466565, -0.0005226564, -0.0005040714, -    -0.0004893791, -0.0004875227, -0.0004947518, -0.0005617692, -0.000552528 -}; - -#endif
\ No newline at end of file diff --git a/src/libfaad/sbr_syntax.c b/src/libfaad/sbr_syntax.c deleted file mode 100644 index 4d8b8f0ff..000000000 --- a/src/libfaad/sbr_syntax.c +++ /dev/null @@ -1,609 +0,0 @@ -/* -** FAAD - Freeware Advanced Audio Decoder -** Copyright (C) 2002 M. Bakker -**   -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License as published by -** the Free Software Foundation; either version 2 of the License, or -** (at your option) any later version. -**  -** This program is distributed in the hope that it will be useful, -** but WITHOUT ANY WARRANTY; without even the implied warranty of -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -** GNU General Public License for more details. -**  -** You should have received a copy of the GNU General Public License -** along with this program; if not, write to the Free Software  -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -** -** $Id: sbr_syntax.c,v 1.1 2002/07/14 23:43:01 miguelfreitas Exp $ -**/ - -/* -   This is the initial support for MPEG-4 AAC+SBR - -   All data is taken from the Working Draft Text for Backward Compatible -   Bandwidth Extension for General Audio Coding (N4611) -*/ - -/* -    Mind the sbr_extension() function, it is not defined in the text -    obviously it just reads some bytes. - */ - - -#include "common.h" - -#ifdef SBR - -#include "sbr_syntax.h" -#include "syntax.h" -#include "sbr_huff.h" -#include "bits.h" -#include "analysis.h" - -/* table 2 */ -uint8_t sbr_bitstream(bitfile *ld, sbr_info *sbr, uint8_t id_aac, -                      uint8_t bs_extension_type) -{ -    sbr->bs_crc_flag = faad_get1bit(ld -        DEBUGVAR(1,200,"sbr_bitstream(): bs_crc_flag")); -    if (sbr->bs_crc_flag) -    { -        sbr->bs_sbr_crc_bits = faad_getbits(ld, 7 -            DEBUGVAR(1,201,"sbr_bitstream(): bs_sbr_crc_bits")); -    } - -    if (bs_extension_type == SBR_HDR) -    { -        sbr_header(ld, sbr, id_aac); -        sbr_data(ld, sbr, id_aac); -    } else if (bs_extension_type == SBR_STD) { -        sbr_data(ld, sbr, id_aac); -    } -} - -/* table 3 */ -static void sbr_header(bitfile *ld, sbr_info *sbr, uint8_t id_aac) -{ -    uint8_t bs_header_extra_1, bs_header_extra_2; - -    sbr->bs_protocol_version = faad_getbits(ld, 2 -        DEBUGVAR(1,202,"sbr_header(): bs_protocol_version")); -    sbr->bs_amp_res = faad_get1bit(ld -        DEBUGVAR(1,203,"sbr_header(): bs_amp_res")); -    sbr->bs_start_freq = faad_getbits(ld, 4 -        DEBUGVAR(1,204,"sbr_header(): bs_start_freq")); -    sbr->bs_stop_freq = faad_getbits(ld, 4 -        DEBUGVAR(1,205,"sbr_header(): bs_stop_freq")); -    sbr->bs_xover_band = faad_getbits(ld, 3 -        DEBUGVAR(1,206,"sbr_header(): bs_xover_band")); -    faad_getbits(ld, 3 -        DEBUGVAR(1,207,"sbr_header(): bs_reserved")); -    bs_header_extra_1 = faad_get1bit(ld -        DEBUGVAR(1,208,"sbr_header(): bs_header_extra_1")); -    bs_header_extra_2 = faad_get1bit(ld -        DEBUGVAR(1,209,"sbr_header(): bs_header_extra_2")); - -    if (id_aac == ID_SCE) -    { -        faad_getbits(ld, 2 -           DEBUGVAR(1,210,"sbr_header(): bs_reserved")); -    } - -    if (bs_header_extra_1) -    { -        sbr->bs_freq_scale = faad_getbits(ld, 2 -            DEBUGVAR(1,211,"sbr_header(): bs_freq_scale")); -        sbr->bs_alter_scale = faad_get1bit(ld -            DEBUGVAR(1,212,"sbr_header(): bs_alter_scale")); -        sbr->bs_noise_bands = faad_getbits(ld, 2 -            DEBUGVAR(1,213,"sbr_header(): bs_noise_bands")); -    } -    if (bs_header_extra_2) -    { -        sbr->bs_limiter_bands = faad_getbits(ld, 2 -            DEBUGVAR(1,214,"sbr_header(): bs_limiter_bands")); -        sbr->bs_limiter_gains = faad_getbits(ld, 2 -            DEBUGVAR(1,215,"sbr_header(): bs_limiter_gains")); -        sbr->bs_interpol_freq = faad_get1bit(ld -            DEBUGVAR(1,216,"sbr_header(): bs_interpol_freq")); -        sbr->bs_smoothing_mode = faad_get1bit(ld -            DEBUGVAR(1,217,"sbr_header(): bs_smoothing_mode")); -        faad_get1bit(ld -            DEBUGVAR(1,218,"sbr_header(): bs_reserved")); -    } -} - -/* table 4 */ -static void sbr_data(bitfile *ld, sbr_info *sbr, uint8_t id_aac) -{ -    sbr->bs_samplerate_mode = faad_get1bit(ld -        DEBUGVAR(1,219,"sbr_data(): bs_samplerate_mode")); - -    switch (id_aac) -    { -    case ID_SCE: -        sbr_single_channel_element(ld, sbr); -        break; -    case ID_CPE: -        sbr_channel_pair_element(ld, sbr); -        break; -    } -} - -/* table 5 */ -static void sbr_single_channel_element(bitfile *ld, sbr_info *sbr) -{ -    faad_get1bit(ld -        DEBUGVAR(1,220,"sbr_single_channel_element(): bs_reserved")); - -    sbr_grid(ld, sbr, 0); -    sbr_dtdf(ld, sbr, 0); -    invf_mode(ld, sbr, 0); - -    faad_getbits(ld, 2 -        DEBUGVAR(1,221,"sbr_single_channel_element(): bs_reserved")); - -    sbr_envelope(ld, sbr, 0); -    sbr_noise(ld, sbr, 0); - -    faad_get1bit(ld -        DEBUGVAR(1,222,"sbr_single_channel_element(): bs_reserved")); - -    faad_get1bit(ld -        DEBUGVAR(1,222,"sbr_single_channel_element(): bs_reserved")); - -    sbr->bs_add_harmonic_flag[0] = faad_get1bit(ld -        DEBUGVAR(1,223,"sbr_single_channel_element(): bs_add_harmonic_flag[0]")); -    if (sbr->bs_add_harmonic_flag[0]) -        sinusoidal_coding(ld, sbr, 0); - -    sbr->bs_extended_data[0] = faad_get1bit(ld -        DEBUGVAR(1,224,"sbr_single_channel_element(): bs_extended_data[0]")); -    if (sbr->bs_extended_data[0]) -    { -        uint16_t nr_bits_left; -        uint16_t cnt = faad_getbits(ld, 4 -            DEBUGVAR(1,225,"sbr_single_channel_element(): bs_extension_size")); -        if (cnt == 15) -        { -            cnt += faad_getbits(ld, 8 -                DEBUGVAR(1,226,"sbr_single_channel_element(): bs_esc_count")); -        } - -        nr_bits_left = 8 * cnt; -        while (nr_bits_left > 7) -        { -            sbr->bs_extension_id = faad_getbits(ld, 2 -                DEBUGVAR(1,227,"sbr_single_channel_element(): bs_extension_id")); -            nr_bits_left -= 2; -            /* sbr_extension(ld, sbr, 0, nr_bits_left); */ -            faad_getbits(ld, 6 -                DEBUGVAR(1,279,"sbr_single_channel_element(): bs_extension_data")); -        } -    } -} - -/* table 6 */ -static void sbr_channel_pair_element(bitfile *ld, sbr_info *sbr) -{ -    sbr->bs_coupling = faad_get1bit(ld -        DEBUGVAR(1,228,"sbr_channel_pair_element(): bs_coupling")); - -    if (sbr->bs_coupling) -    { -        sbr_grid(ld, sbr, 0); -        sbr_dtdf(ld, sbr, 0); -        sbr_dtdf(ld, sbr, 1); -        invf_mode(ld, sbr, 0); - -        faad_getbits(ld, 2 -            DEBUGVAR(1,229,"sbr_channel_pair_element(): bs_reserved")); - -        sbr_envelope(ld, sbr, 0); -        sbr_noise(ld, sbr, 0); -        sbr_envelope(ld, sbr, 1); -        sbr_noise(ld, sbr, 1); - -        faad_getbits(ld, 2 -            DEBUGVAR(1,230,"sbr_channel_pair_element(): bs_reserved")); - -        sbr->bs_add_harmonic_flag[0] = faad_get1bit(ld -            DEBUGVAR(1,231,"sbr_channel_pair_element(): bs_add_harmonic_flag[0]")); -        if (sbr->bs_add_harmonic_flag[0]) -            sinusoidal_coding(ld, sbr, 0); - -        sbr->bs_add_harmonic_flag[1] = faad_get1bit(ld -            DEBUGVAR(1,232,"sbr_channel_pair_element(): bs_add_harmonic_flag[1]")); -        if (sbr->bs_add_harmonic_flag[1]) -            sinusoidal_coding(ld, sbr, 1); - -        sbr->bs_extended_data[0] = faad_get1bit(ld -            DEBUGVAR(1,233,"sbr_channel_pair_element(): bs_extended_data[0]")); -        if (sbr->bs_extended_data[0]) -        { -            uint16_t nr_bits_left; -            uint16_t cnt = faad_getbits(ld, 4 -                DEBUGVAR(1,234,"sbr_channel_pair_element(): bs_extension_size")); -            if (cnt == 15) -            { -                cnt += faad_getbits(ld, 8 -                    DEBUGVAR(1,235,"sbr_channel_pair_element(): bs_esc_count")); -            } - -            nr_bits_left = 8 * cnt; -            while (nr_bits_left > 7) -            { -                sbr->bs_extension_id = faad_getbits(ld, 2 -                    DEBUGVAR(1,236,"sbr_channel_pair_element(): bs_extension_id")); -                nr_bits_left -= 2; -                /* sbr_extension(ld, sbr, 0, nr_bits_left); */ -                faad_getbits(ld, 6 -                    DEBUGVAR(1,280,"sbr_single_channel_element(): bs_extension_data")); -            } -        } -    } else { -        sbr_grid(ld, sbr, 0); -        sbr_grid(ld, sbr, 1); -        sbr_dtdf(ld, sbr, 0); -        sbr_dtdf(ld, sbr, 1); -        invf_mode(ld, sbr, 0); -        invf_mode(ld, sbr, 1); - -        faad_getbits(ld, 4 -            DEBUGVAR(1,237,"sbr_channel_pair_element(): bs_reserved")); - -        sbr_envelope(ld, sbr, 0); -        sbr_envelope(ld, sbr, 1); -        sbr_noise(ld, sbr, 0); -        sbr_noise(ld, sbr, 1); - -        faad_getbits(ld, 2 -            DEBUGVAR(1,238,"sbr_channel_pair_element(): bs_reserved")); - -        sbr->bs_add_harmonic_flag[0] = faad_get1bit(ld -            DEBUGVAR(1,239,"sbr_channel_pair_element(): bs_add_harmonic_flag[0]")); -        if (sbr->bs_add_harmonic_flag[0]) -            sinusoidal_coding(ld, sbr, 0); - -        sbr->bs_add_harmonic_flag[1] = faad_get1bit(ld -            DEBUGVAR(1,240,"sbr_channel_pair_element(): bs_add_harmonic_flag[1]")); -        if (sbr->bs_add_harmonic_flag[1]) -            sinusoidal_coding(ld, sbr, 1); - -        sbr->bs_extended_data[0] = faad_get1bit(ld -            DEBUGVAR(1,241,"sbr_channel_pair_element(): bs_extended_data[0]")); -        if (sbr->bs_extended_data[0]) -        { -            uint16_t nr_bits_left; -            uint16_t cnt = faad_getbits(ld, 4 -                DEBUGVAR(1,242,"sbr_channel_pair_element(): bs_extension_size")); -            if (cnt == 15) -            { -                cnt += faad_getbits(ld, 8 -                    DEBUGVAR(1,243,"sbr_channel_pair_element(): bs_esc_count")); -            } - -            nr_bits_left = 8 * cnt; -            while (nr_bits_left > 7) -            { -                sbr->bs_extension_id = faad_getbits(ld, 2 -                    DEBUGVAR(1,244,"sbr_channel_pair_element(): bs_extension_id")); -                nr_bits_left -= 2; -                /* sbr_extension(ld, sbr, 0, nr_bits_left); */ -                faad_getbits(ld, 6 -                    DEBUGVAR(1,281,"sbr_single_channel_element(): bs_extension_data")); -            } -        } - -        sbr->bs_extended_data[1] = faad_get1bit(ld -            DEBUGVAR(1,245,"sbr_channel_pair_element(): bs_extended_data[1]")); -        if (sbr->bs_extended_data[1]) -        { -            uint16_t nr_bits_left; -            uint16_t cnt = faad_getbits(ld, 4 -                DEBUGVAR(1,246,"sbr_channel_pair_element(): bs_extension_size")); -            if (cnt == 15) -            { -                cnt += faad_getbits(ld, 8 -                    DEBUGVAR(1,247,"sbr_channel_pair_element(): bs_esc_count")); -            } - -            nr_bits_left = 8 * cnt; -            while (nr_bits_left > 7) -            { -                sbr->bs_extension_id = faad_getbits(ld, 2 -                    DEBUGVAR(1,248,"sbr_channel_pair_element(): bs_extension_id")); -                nr_bits_left -= 2; -                /* sbr_extension(ld, sbr, 0, nr_bits_left); */ -                faad_getbits(ld, 6 -                    DEBUGVAR(1,282,"sbr_single_channel_element(): bs_extension_data")); -            } -        } -    } -} - -/* table 7 */ -static void sbr_grid(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t i, env, rel; -    uint8_t bs_abs_bord, bs_abs_bord_1; - -    sbr->bs_frame_class = faad_getbits(ld, 2 -        DEBUGVAR(1,248,"sbr_grid(): bs_frame_class")); - -    switch (sbr->bs_frame_class) -    { -    case FIXFIX: -        i = faad_getbits(ld, 2 -            DEBUGVAR(1,249,"sbr_grid(): bs_num_env_raw")); - -        sbr->bs_num_env[ch] = min(1 << i, 5); -        if (sbr->bs_num_env[ch] == 1) -            sbr->bs_amp_res = 0; - -        i = faad_get1bit(ld -            DEBUGVAR(1,250,"sbr_grid(): bs_freq_res_flag")); -        for (env = 0; env < sbr->bs_num_env[ch]; env++) -            sbr->bs_freq_res[ch][env] = i; - -        sbr->abs_bord_lead[ch] = 0; -        sbr->abs_bord_trail[ch] = NO_TIME_SLOTS; -        break; - -    case FIXVAR: -        bs_abs_bord = faad_getbits(ld, 3 -            DEBUGVAR(1,251,"sbr_grid(): bs_abs_bord")) + NO_TIME_SLOTS; -        sbr->bs_num_env[ch] = faad_getbits(ld, 2 -            DEBUGVAR(1,252,"sbr_grid(): bs_num_env")) + 1; - -        for (rel = 0; rel < sbr->bs_num_env[ch]-1; rel++) -        { -            sbr->bs_rel_bord[ch][rel] = 2 * faad_getbits(ld, 2 -                DEBUGVAR(1,253,"sbr_grid(): bs_rel_bord")) + 2; -        } -        i = int_log2((uint32_t)(sbr->bs_num_env[ch] + 1)); -        sbr->bs_pointer[ch] = faad_getbits(ld, i -            DEBUGVAR(1,254,"sbr_grid(): bs_pointer")); - -        for (env = 0; env < sbr->bs_num_env[ch]; env++) -        { -            sbr->bs_freq_res[ch][sbr->bs_num_env[ch] - env - 1] = faad_get1bit(ld -                DEBUGVAR(1,255,"sbr_grid(): bs_freq_res")); -        } - -        sbr->abs_bord_lead[ch] = 0; -        sbr->abs_bord_trail[ch] = bs_abs_bord; -        break; - -    case VARFIX: -        bs_abs_bord = faad_getbits(ld, 3 -            DEBUGVAR(1,256,"sbr_grid(): bs_abs_bord")); -        sbr->bs_num_env[ch] = faad_getbits(ld, 2 -            DEBUGVAR(1,257,"sbr_grid(): bs_num_env")) + 1; - -        for (rel = 0; rel < sbr->bs_num_env[ch]-1; rel++) -        { -            sbr->bs_rel_bord[ch][rel] = 2 * faad_getbits(ld, 2 -                DEBUGVAR(1,258,"sbr_grid(): bs_rel_bord")) + 2; -        } -        i = int_log2((uint32_t)(sbr->bs_num_env[ch] + 1)); -        sbr->bs_pointer[ch] = faad_getbits(ld, i -            DEBUGVAR(1,259,"sbr_grid(): bs_pointer")); - -        for (env = 0; env < sbr->bs_num_env[ch]; env++) -        { -            sbr->bs_freq_res[ch][env] = faad_get1bit(ld -                DEBUGVAR(1,260,"sbr_grid(): bs_freq_res")); -        } - -        sbr->abs_bord_lead[ch] = bs_abs_bord; -        sbr->abs_bord_trail[ch] = NO_TIME_SLOTS; -        break; - -    case VARVAR: -        bs_abs_bord = faad_getbits(ld, 3 -            DEBUGVAR(1,261,"sbr_grid(): bs_abs_bord_0")); -        bs_abs_bord_1 = faad_getbits(ld, 3 -            DEBUGVAR(1,262,"sbr_grid(): bs_abs_bord_1")) + NO_TIME_SLOTS; -        sbr->bs_num_rel_0[ch] = faad_getbits(ld, 2 -            DEBUGVAR(1,263,"sbr_grid(): bs_num_rel_0")); -        sbr->bs_num_rel_1[ch] = faad_getbits(ld, 2 -            DEBUGVAR(1,264,"sbr_grid(): bs_num_rel_1")); -        sbr->bs_num_env[ch] = sbr->bs_num_rel_0[ch] + sbr->bs_num_rel_1[ch] + 1; - -        for (rel = 0; rel < sbr->bs_num_rel_0[ch]; rel++) -        { -            sbr->bs_rel_bord_0[ch][rel] = 2 * faad_getbits(ld, 2 -                DEBUGVAR(1,265,"sbr_grid(): bs_rel_bord")) + 2; -        } -        for(rel = 0; rel < sbr->bs_num_rel_1[ch]; rel++) -        { -            sbr->bs_rel_bord_1[ch][rel] = 2 * faad_getbits(ld, 2 -                DEBUGVAR(1,266,"sbr_grid(): bs_rel_bord")) + 2; -        } -        i = int_log2((uint32_t)(sbr->bs_num_rel_0[ch] + sbr->bs_num_rel_1[ch] + 2)); -        sbr->bs_pointer[ch] = faad_getbits(ld, i -            DEBUGVAR(1,267,"sbr_grid(): bs_pointer")); - -        for (env = 0; env < sbr->bs_num_env[ch]; env++) -        { -            sbr->bs_freq_res[ch][env] = faad_get1bit(ld -                DEBUGVAR(1,268,"sbr_grid(): bs_freq_res")); -        } - -        sbr->abs_bord_lead[ch] = bs_abs_bord; -        sbr->abs_bord_trail[ch] = bs_abs_bord_1; -        break; -    } - -    if (sbr->bs_num_env[ch] > 1) -        sbr->bs_num_noise[ch] = 2; -    else -        sbr->bs_num_noise[ch] = 1; -} - -/* table 8 */ -static void sbr_dtdf(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t i; - -    for (i = 0; i < sbr->bs_num_env[ch]; i++) -    { -        sbr->bs_df_env[ch][i] = faad_get1bit(ld -            DEBUGVAR(1,269,"sbr_dtdf(): bs_df_env")); -    } - -    for (i = 0; i < sbr->bs_num_noise[ch]; i++) -    { -        sbr->bs_df_noise[ch][i] = faad_get1bit(ld -            DEBUGVAR(1,270,"sbr_dtdf(): bs_df_noise")); -    } -} - -/* table 9 */ -static void invf_mode(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t n; - -    for (n = 0; n < sbr->num_noise_bands[ch]; n++) -    { -        sbr->bs_invf_mode_vec[ch][n] = faad_getbits(ld, 2 -            DEBUGVAR(1,271,"invf_mode(): bs_invf_mode_vec")); -    } -} - -/* table 10 */ -static void sbr_envelope(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t env, band; -    sbr_huff_tab *t_huff, *f_huff; - -    if (sbr->bs_coupling) -    { -        if (ch) -        { -            if (sbr->bs_amp_res) -            { -                t_huff = t_huffman_env_bal_3_0dB; -                f_huff = f_huffman_env_bal_3_0dB; -            } else { -                t_huff = t_huffman_env_bal_1_5dB; -                f_huff = f_huffman_env_bal_1_5dB; -            } -        } else { -            if (sbr->bs_amp_res) -            { -                t_huff = t_huffman_env_3_0dB; -                f_huff = f_huffman_env_3_0dB; -            } else { -                t_huff = t_huffman_env_1_5dB; -                f_huff = f_huffman_env_1_5dB; -            } -        } -    } else { -        if (sbr->bs_amp_res) -        { -            t_huff = t_huffman_env_3_0dB; -            f_huff = f_huffman_env_3_0dB; -        } else { -            t_huff = t_huffman_env_1_5dB; -            f_huff = f_huffman_env_1_5dB; -        } -    } - -    for (env = 0; env < sbr->bs_num_env[ch]; env++) -    { -        if (sbr->bs_df_env[ch][env] == 0) -        { -            if (sbr->bs_coupling && ch) -            { -                if (sbr->bs_amp_res) -                { -                    sbr->bs_data_env[ch][env][0] = faad_getbits(ld, 5 -                        DEBUGVAR(1,272,"sbr_envelope(): bs_data_env")); -                } else { -                    sbr->bs_data_env[ch][env][0] = faad_getbits(ld, 6 -                        DEBUGVAR(1,273,"sbr_envelope(): bs_data_env")); -                } -            } else { -                if (sbr->bs_amp_res) -                { -                    sbr->bs_data_env[ch][env][0] = faad_getbits(ld, 6 -                        DEBUGVAR(1,274,"sbr_envelope(): bs_data_env")); -                } else { -                    sbr->bs_data_env[ch][env][0] = faad_getbits(ld, 7 -                        DEBUGVAR(1,275,"sbr_envelope(): bs_data_env")); -                } -                for (band = 1; band < sbr->num_env_bands[sbr->bs_freq_res[ch][env]]; band++) -                { -                    sbr->bs_data_env[ch][env][band] = sbr_huff_dec(ld, f_huff); -                } -            } -        } else { -            for (band = 0; band < sbr->num_env_bands[sbr->bs_freq_res[ch][env]]; band++) -                sbr->bs_data_env[ch][env][band] = sbr_huff_dec(ld, t_huff); -        } -    } -} - -/* table 11 */ -static void sbr_noise(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t noise, band; -    sbr_huff_tab *t_huff, *f_huff; - -    if (sbr->bs_coupling) -    { -        if (ch) { -            t_huff = t_huffman_noise_bal_3_0dB; -            f_huff = f_huffman_noise_bal_3_0dB; -        } else { -            t_huff = t_huffman_noise_3_0dB; -            f_huff = f_huffman_noise_3_0dB; -        } -    } else { -        t_huff = t_huffman_noise_3_0dB; -        f_huff = f_huffman_noise_3_0dB; -    } - -    for(noise = 0; noise < sbr->bs_num_noise[ch]; noise++) -    { -        if(sbr->bs_df_noise[ch][noise] == 0) -        { -            if (sbr->bs_coupling && ch) -            { -                sbr->bs_data_noise[ch][noise][0] = faad_getbits(ld, 5 -                    DEBUGVAR(1,276,"sbr_noise(): bs_data_noise")); -            } else { -                sbr->bs_data_noise[ch][noise][0] = faad_getbits(ld, 5 -                    DEBUGVAR(1,277,"sbr_noise(): bs_data_noise")); -            } -            for (band = 1; band < sbr->num_noise_bands[ch]; band++) -            { -                sbr->bs_data_noise[ch][noise][band] = sbr_huff_dec(ld, f_huff); -            } -        } else { -            for (band = 0; band < sbr->num_noise_bands[ch]; band++) -            { -                sbr->bs_data_noise[ch][noise][band] = sbr_huff_dec(ld, t_huff); -            } -        } -    } -} - -/* table 12 */ -static void sinusoidal_coding(bitfile *ld, sbr_info *sbr, uint8_t ch) -{ -    uint8_t n; - -    for (n = 0; n < sbr->num_high_res[ch]; n++) -    { -        sbr->bs_add_harmonic[ch][n] = faad_get1bit(ld -            DEBUGVAR(1,278,"sinusoidal_coding(): bs_add_harmonic")); -    } -} - - -#endif /* SBR */
\ No newline at end of file | 
