summaryrefslogtreecommitdiff
path: root/libavcodec/ac3dec_data.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2008-11-13 03:18:13 +0000
committerJustin Ruggles <justin.ruggles@gmail.com>2008-11-13 03:18:13 +0000
commit0cc51734b20032a5fea3020e40db968c5da91d1f (patch)
tree6052e9507c932776586f35c466a2b032061de8ae /libavcodec/ac3dec_data.c
parent0c5d750df9d0293b2ce27b6821c3209952c4e6b8 (diff)
add support for spectral extension
Originally committed as revision 15812 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/ac3dec_data.c')
-rw-r--r--libavcodec/ac3dec_data.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/libavcodec/ac3dec_data.c b/libavcodec/ac3dec_data.c
index a70c8fca45..fb21888c78 100644
--- a/libavcodec/ac3dec_data.c
+++ b/libavcodec/ac3dec_data.c
@@ -1127,6 +1127,52 @@ const uint8_t ff_eac3_frm_expstr[32][6] = {
const uint8_t ff_eac3_default_cpl_band_struct[18] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1 };
+ /**
+ * Table E2.15 Default Spectral Extension Banding Structure
+ */
+const uint8_t ff_eac3_default_spx_band_struct[17] =
+{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 };
+
+/**
+ * Table E.25: Spectral Extension Attenuation Table
+ * 24-bit fixed-point version of the floating-point table in the specification.
+ * ff_eac3_spx_atten_tab[code][bin]=lrint(pow(1<<(bin+1),(code+1)/-15.0)*(1<<23));
+ */
+const int32_t ff_eac3_spx_atten_tab[32][3] = {
+ { 8009792, 7648083, 7302707 },
+ { 7648083, 6972929, 6357376 },
+ { 7302707, 6357376, 5534417 },
+ { 6972929, 5796163, 4817990 },
+ { 6658043, 5284492, 4194304 },
+ { 6357376, 4817990, 3651354 },
+ { 6070287, 4392670, 3178688 },
+ { 5796163, 4004896, 2767209 },
+ { 5534417, 3651354, 2408995 },
+ { 5284492, 3329021, 2097152 },
+ { 5045853, 3035144, 1825677 },
+ { 4817990, 2767209, 1589344 },
+ { 4600417, 2522926, 1383604 },
+ { 4392670, 2300209, 1204498 },
+ { 4194304, 2097152, 1048576 },
+ { 4004896, 1912021, 912838 },
+ { 3824041, 1743232, 794672 },
+ { 3651354, 1589344, 691802 },
+ { 3486464, 1449041, 602249 },
+ { 3329021, 1321123, 524288 },
+ { 3178688, 1204498, 456419 },
+ { 3035144, 1098167, 397336 },
+ { 2898081, 1001224, 345901 },
+ { 2767209, 912838, 301124 },
+ { 2642246, 832255, 262144 },
+ { 2522926, 758786, 228210 },
+ { 2408995, 691802, 198668 },
+ { 2300209, 630732, 172951 },
+ { 2196335, 575052, 150562 },
+ { 2097152, 524288, 131072 },
+ { 2002448, 478005, 114105 },
+ { 1912021, 435808, 99334 }
+};
+
/**
* Table of bin locations for rematrixing bands
* reference: Section 7.5.2 Rematrixing : Frequency Band Definitions