9196 lines · 421.7 KB · C
RawDownload
/* * DCA compatible decoder data * Copyright (C) 2004 Gildas Bazin * Copyright (c) 2006 Benjamin Larsson * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include <stdint.h> #include "libavutil/mem_internal.h" #include "dca.h"#include "dcadata.h" /* Generic tables */ const uint32_t ff_dca_bit_rates[32] = {      32000,   56000,   64000,   96000,  112000, 128000,     192000,  224000,  256000,  320000,  384000,     448000,  512000,  576000,  640000,  768000,     896000, 1024000, 1152000, 1280000, 1344000,    1408000, 1411200, 1472000, 1536000, 1920000,    2048000, 3072000, 3840000, 1 /* open */, 2 /* variable */, 3 /* lossless */}; const uint8_t ff_dca_channels[16] = {    1, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 6, 6, 7, 8, 8}; const uint8_t ff_dca_dmix_primary_nch[8] = {    1, 2, 2, 3, 3, 4, 4, 0}; const uint8_t ff_dca_quant_index_sel_nbits[DCA_CODE_BOOKS] = {    1, 2, 2, 2, 2, 3, 3, 3, 3, 3}; const uint8_t ff_dca_quant_index_group_size[DCA_CODE_BOOKS] = {    1, 3, 3, 3, 3, 7, 7, 7, 7, 7}; /* ADPCM data */ /* 16 bits signed fractional Q13 binary codes */const int16_t ff_dca_adpcm_vb[DCA_ADPCM_VQCODEBOOK_SZ][DCA_ADPCM_COEFFS] = {    {   9928,  -2618,  -1093, -1263 },    {  11077,  -2876,  -1747,  -308 },    {  10503,  -1082,  -1426, -1167 },    {   9337,  -2403,  -1495,   274 },    {  10698,  -2529,   -532, -1122 },    {  10368,  -3974,  -1264,  -750 },    {  10070,  -3667,    346,   863 },    {  10278,  -3093,    311,  -576 },    {   9894,  -1330,  -1428,  -860 },    {  10544,  -1923,  -1058,  -971 },    {  10996,  -1632,   -841, -1404 },    {  11832,  -3465,   1658, -1990 },    {  10852,   -688,  -2658,  -499 },    {  10546,  -1749,   -147, -1733 },    {  10801,  -1004,   -708, -1453 },    {  10588,   -441,  -2113,  -952 },    {  10141,  -3331,   -582, -1432 },    {   9608,  -2590,    383,   258 },    {  11422,  -3265,    229, -1544 },    {  10460,  -1338,   -713, -1568 },    {  10306,  -1721,  -1660,  -603 },    {   9580,  -1812,  -1235, -1061 },    {  11471,  -2285,  -1617,  -607 },    {  10081,  -2225,  -1408,  -868 },    {  10715,  -2624,  -1367,  -704 },    {  10616,  -1871,  -2770,   -35 },    {   9352,  -2340,  -1024, -1566 },    {  11065,  -1458,  -1926,  -735 },    {  11334,  -2056,  -1041, -1144 },    {   9825,  -2048,   -794, -1536 },    {  11850,  -2695,  -1123,  -867 },    {  10654,  -2226,  -1891,  -373 },    {  10024,  -1557,   -808, -1069 },    {  11142,  -1266,  -3238,   128 },    {  11729,  -3282,   -514, -1011 },    {  11402,  -2094,  -2335,  -189 },    {  10195,  -3658,    181, -1875 },    {  11431,  -2626,   -404, -1377 },    {  11001,  -3868,   -619, -1077 },    {  10894,  -2559,    274, -1758 },    {   9633,  -1482,  -2253,  -773 },    {  11245,  -3321,    830, -1972 },    {   9768,  -2701,   -199, -1859 },    {  10500,  -2042,    525, -2043 },    {  11669,  -4069,    293, -1468 },    {   9192,  -1991,   -583,   -61 },    {  10057,  -3220,  -2015,  -473 },    {   9497,  -2315,  -2490,  -467 },    {  10455,  -3069,  -1194, -1007 },    {   9994,  -1936,    -60, -1225 },    {   9295,  -2156,  -1761, -1134 },    {  10085,  -3748,  -1026,   197 },    {   9334,  -2360,    804,  -351 },    {  11561,  -2553,   1352, -2313 },    {  12837,  -3998,   1195, -1958 },    {  10114,  -1100,  -2414,  -394 },    {   9341,  -2530,    315,   755 },    {  10131,  -3164,   1411,  -674 },    {   9535,   -905,  -1551,   579 },    {  11717,  -1519,  -3051,    91 },    {   9824,  -2911,  -2775,   192 },    {   9662,  -2934,   -561,  1450 },    {  11085,  -3392,  -1298,  -659 },    {   8955,  -2102,  -1899,   703 },    {   8607,  -1742,  -4348,   814 },    {   7640,  -2063,  -3617,    52 },    {   7074,   -826,  -4325,  4375 },    {   7714,    584,  -4238,  1927 },    {   6355,   -952,  -4912,  3127 },    {   7069,   -660,  -6413,  4087 },    {   8313,   -132,  -2964,  -876 },    {   6952,  -1422,  -3962,   -24 },    {   9299,   -734,  -3088,  -263 },    {   9484,   -574,  -4513,   466 },    {   7246,    -91,  -3735,  -704 },    {   8325,  -1417,  -3090,  -530 },    {   6469,  -1226,  -4757,   829 },    {   6652,   -368,  -5682,  1393 },    {   7971,  -1278,  -2284,  1205 },    {   7229,   -699,  -3556,  1840 },    {   7994,   1284,  -2729,   732 },    {   9005,   -698,  -4522,  2189 },    {   6963,    197,  -2727,   380 },    {   8527,    135,  -3991,  -213 },    {   8840,    934,  -3014,  -567 },    {  10125,    418,  -3284,  -371 },    {   6367,    361,  -2318,  2554 },    {   7892,    172,  -5247,  4673 },    {   6674,    387,  -5424,  4398 },    {   6240,    684,  -4047,  1219 },    {  11170,   -794,  -5081,  1195 },    {  11765,   -648,  -6265,  2052 },    {  10845,   -775,  -3837,   366 },    {  12496,   -689,  -8260,  3562 },    {   7893,  -1166,  -4972,   988 },    {   8592,   1052,  -5986,  3087 },    {   7277,   1874,  -5685,  3579 },    {   6900,   2016,  -4809,  3491 },    {   8530,  -2405,  -3250,  1986 },    {   9426,    494,  -7067,  5038 },    {  10285,    564,  -8210,  5370 },    {   8749,  -2207,  -3980,  2852 },    {   9653,  -2686,  -4300,  1400 },    {   9770,  -2286,  -5663,  4233 },    {   8490,     -4,  -7048,  4496 },    {   7697,  -1209,  -5328,  3183 },    {   6451,    801,  -4324,  -554 },    {   7387,   1806,  -5265,   545 },    {   7450,  -2302,  -4445,  1418 },    {   8817,  -1370,  -5827,  2168 },    {  10324,  -2406,  -5629,  2579 },    {   8863,  -2578,  -3537,   467 },    {   6901,  -1624,  -3169,  3392 },    {   7846,    156,  -6948,  3381 },    {   7928,  -1115,  -5972,  4816 },    {   6089,   -599,  -4368,  -320 },    {   7833,   1246,  -3960,  -621 },    {   8931,   2521,  -6768,  2052 },    {   8900,   1944,  -4126,    40 },    {   7661,    -34,  -2855,  2480 },    {   5873,    474,  -3262,  3712 },    {   7535,   -234,  -4699,   216 },    {   5856,    143,  -5142,    73 },    {   8944,   -106,  -5874,  3663 },    {   7134,    426,  -5879,  2895 },    {  10199,   1011,  -4762,   369 },    {   8454,    264,  -5971,  1291 },    {   7822,  -2449,  -4333,  4540 },    {   6200,  -2758,  -2632,  1497 },    {   6070,  -4315,  -2699,   414 },    {   7047,  -3739,  -3210,  1060 },    {   5675,  -3801,  -2717,  -407 },    {   4789,  -4063,  -2628,  -744 },    {   4023,  -3366,  -3133,  -726 },    {   4296,  -2407,  -3381,  -513 },    {   4388,  -2931,  -2820,  1512 },    {   4559,  -4233,  -1941,  1976 },    {   6702,  -3208,  -1755,  1680 },    {   4416,  -3521,  -1052,  2984 },    {   7154,  -4266,  -1203,  3732 },    {   3625,  -4242,  -3244,  1395 },    {   6518,  -2856,  -1304,  2887 },    {   6170,  -1949,  -3014,  3973 },    {   5189,  -2451,  -4020,  3477 },    {   6218,  -2988,  -1921,  3844 },    {   4827,  -3688,  -1928,  3343 },    {   6668,  -3991,  -2805,  3095 },    {   5297,  -3115,  -3684,  2390 },    {   5354,  -4614,  -2662,  1504 },    {   4196,  -3091,  -4147,  1135 },    {   3540,  -2893,  -4007,   100 },    {   5569,  -1602,  -4007,  1909 },    {   4341,  -2091,  -4272,   252 },    {   5559,  -2878,  -3832,   498 },    {   4548,  -4479,  -2898,   -27 },    {   5176,  -2494,  -4635,  1476 },    {   3294,  -3485,  -3738,   716 },    {   4920,  -1229,  -4195,  -365 },    {   3257,  -3518,  -3349,  2862 },    {   5286,  -1948,  -3485,  -778 },    {   6502,  -3051,   -152,  2854 },    {   5864,  -4192,  -1076,  3451 },    {   4656,  -3122,  -3448,   179 },    {   5907,   -754,  -1596,  3116 },    {   7229,  -3680,  -1590,  2892 },    {   5107,  -3888,  -3364,   806 },    {   6764,  -2635,  -3450,   134 },    {   5258,  -2827,  -2844, -1052 },    {   5798,  -1725,  -4305,   205 },    {   5404,  -1213,  -3362,   449 },    {   6224,  -2738,  -3046,  -581 },    {   4223,  -2438,  -2725,  3745 },    {   4751,  -3411,  -2123,   116 },    {   3868,  -3000,  -3954,  2297 },    {   6819,  -2899,  -4277,  2825 },    {   4207,  -4754,  -2808,   865 },    {   4804,  -1494,  -1997,  4688 },    {   5282,  -2213,   -548,  3559 },    {   5580,  -1912,   -566,  4370 },    {   6168,  -2857,   -672,  4053 },    {   6583,  -4515,  -2850,  1670 },    {   6511,  -3093,  -3988,  1421 },    {   4646,  -1790,  -1443,  3650 },    {   5915,   -924,  -2020,   896 },    {   7814,  -4181,  -3152,  2007 },    {   6190,  -2238,  -4817,  2279 },    {   4737,  -4034,  -3288,  1835 },    {   8161,  -3633,  -3423,  3137 },    {   7415,  -2351,  -2088,  4290 },    {   4106,  -2517,    -62,  2905 },    {   4909,  -3145,   -614,  4112 },    {   4938,  -3281,   -397,  1100 },    {   -173,    919,   1589, -5363 },    {    -13,    796,   -295, -6655 },    {  -1860,   -829,   1141, -4555 },    {   2298,   -838,   -664, -5005 },    {   -884,  -1097,   2074, -4613 },    {   -101,    281,   2846, -4535 },    {   1166,    453,   2429, -5910 },    {    879,   -664,   2370, -5452 },    {   1415,   -370,  -1699, -4727 },    {  -1413,   1277,   -669, -6649 },    {   2133,    304,   -968, -4624 },    {    380,    586,  -2087, -4892 },    {   1336,    275,    -82, -5789 },    {  -2459,   1057,    -34, -5416 },    {   2278,  -1758,    866, -5653 },    {   1945,  -2295,   -149, -5302 },    {   1287,  -3525,    996, -5255 },    {   2297,    803,   1177, -6067 },    {    187,   -180,   -619, -6202 },    {   -793,  -2537,   1554, -5057 },    {  -2703,   -204,   -629, -5853 },    {  -1007,   -146,    313, -5582 },    {    830,    357,    869, -6363 },    {   -228,   -575,  -3177, -4433 },    {  -1001,  -1553,   -142, -5708 },    {  -1644,   1683,   1721, -4533 },    {    893,   1924,    -15, -5791 },    {   2195,   2061,   -262, -5471 },    {   3031,    270,    311, -5096 },    {   1912,   1638,  -1523, -4677 },    {  -3142,    -55,    253, -4914 },    {    356,  -1680,    343, -6123 },    {  -2241,  -1734,   -976, -5939 },    {  -2196,  -2893,    547, -4938 },    {  -1245,    126,  -1916, -5419 },    {   -249,  -3755,  -1422, -5594 },    {    575,  -2683,  -1926, -4566 },    {   -762,   1885,    192, -5880 },    {   -811,  -2562,  -1068, -6013 },    {  -2264,  -3086,   -976, -4775 },    {     70,  -1215,   2880, -4410 },    {    714,  -3760,   2916, -4691 },    {   -244,  -3404,   1740, -4493 },    {    684,  -5137,   -328, -5608 },    {   -529,  -3825,  -1786, -4535 },    {   -713,  -4743,  -1118, -5546 },    {   2718,  -3788,   1798, -5708 },    {  -1639,  -3679,  -1564, -6095 },    {   1693,  -2642,  -1389, -4539 },    {    505,  -1573,  -1651, -4878 },    {   -835,  -2256,  -1941, -5352 },    {   1464,   -411,   1993, -6441 },    {    493,  -3184,   -145, -6148 },    {  -1413,    499,  -1617, -6479 },    {   -294,   1722,  -1419, -5725 },    {  -2937,  -1528,   -175, -4624 },    {   -594,  -5911,    -56, -6146 },    {   -300,  -4275,   1156, -5947 },    {    552,  -2643,   2669, -3959 },    {    905,  -4158,   1789, -5809 },    {   1336,  -2009,   2108, -5903 },    {   1555,  -3600,   1110, -6759 },    {  -1294,  -3464,     77, -6084 },    {  -1139,  -4006,  -1270, -4181 },    {  -5094,  -3296,   1092, -2847 },    {  -5503,  -2883,   1984, -2067 },    {  -4671,  -4218,  -1417, -4132 },    {  -3763,  -3818,   1262, -3082 },    {  -5132,  -3430,   2928,  -728 },    {  -5957,  -2877,   1251, -2446 },    {  -4425,  -2319,   -212, -4276 },    {  -6201,  -1993,   1774, -2182 },    {  -5500,  -3836,   2201, -1396 },    {  -6934,  -2334,   2366, -1293 },    {  -6124,  -4140,   1337, -1977 },    {  -6553,  -4186,   1756, -1325 },    {  -5126,  -1258,    744, -3656 },    {  -5167,  -1390,   1581, -2895 },    {  -4525,  -3398,   2429, -1865 },    {  -4076,  -3183,   2027, -2510 },    {  -6191,  -3274,   1838, -1814 },    {  -4454,  -2753,   2723, -1185 },    {  -6655,  -4797,    251, -2595 },    {  -6332,  -2232,   1832,   217 },    {  -5869,  -1698,    134,   340 },    {  -6614,  -1045,   2126, -1932 },    {  -4859,  -2107,   2010, -2435 },    {  -6274,  -1622,   2808, -1374 },    {  -3119,  -3209,    521, -3988 },    {  -5676,  -2082,   -420, -2711 },    {  -7073,  -3623,    696, -2343 },    {  -5986,  -4224,    572, -2454 },    {  -4340,  -4521,    882, -2771 },    {  -6178,  -1933,    535, -1444 },    {  -4923,  -4163,   1744, -2066 },    {  -6410,  -1519,   1058, -2683 },    {  -5077,  -1185,    856, -2216 },    {  -7091,  -2444,    687, -2597 },    {  -5284,  -2165,   3239,  -993 },    {  -4763,  -1497,    197, -3179 },    {  -4128,  -4958,   -396, -3578 },    {  -5054,  -3878,   -647, -2672 },    {  -7005,  -3348,   1679, -1579 },    {  -5767,  -1017,   2582, -1915 },    {  -7069,  -2787,   1331, -2070 },    {  -5532,  -2296,    706, -2950 },    {  -5059,  -3543,   -821, -3637 },    {  -6639,  -1835,   1016,  -696 },    {  -5611,  -5220,   -694, -3371 },    {  -5994,  -2803,   2933,  -729 },    {  -5948,   -619,   1596, -2676 },    {  -5486,  -4419,    153, -3265 },    {  -4329,  -3440,   1646, -1439 },    {  -4083,  -3978,    177, -3569 },    {  -4289,  -2599,   1224, -3075 },    {  -5707,  -3253,   1912,  -759 },    {  -6606,  -3437,   2562,  -571 },    {  -5254,  -2444,    769,  -352 },    {  -6545,  -3154,    582, -1103 },    {  -5328,  -2241,   2566, -1775 },    {  -7216,  -1936,   1538, -1983 },    {  -3730,  -2451,    426, -3869 },    {  -5110,  -1385,   2031, -1169 },    {  -6470,  -2715,    269, -3123 },    {  -5806,  -2480,    -97, -3832 },    {  -3683,  -4916,   -490, -4330 },    {  -6341,  -2083,   -669,  -115 },    {  -4913,  -4079,   -837, -4673 },    {  -3274,  -2497,   2334, -2652 },    {  -1286,  -1731,   2550, -3756 },    {  -3375,   -877,    926, -3977 },    {  -2525,  -2079,   2879, -2625 },    {  -5308,   -504,   3111, -1607 },    {  -4904,    460,   4093, -1232 },    {  -1993,   1616,   4656, -1913 },    {  -3481,  -1176,   3119, -2236 },    {  -4132,  -1502,   2339, -2545 },    {  -2542,   1151,   3569, -2550 },    {  -4381,    430,   3147, -2082 },    {  -3888,    867,   3899, -1657 },    {  -2861,   1290,   4202, -1979 },    {  -3893,   -253,   2363, -2764 },    {  -1705,    688,   3827, -2923 },    {  -2223,   2312,   3700, -3148 },    {  -1986,   -720,   5021,  -795 },    {  -3177,    242,   1952, -3352 },    {  -1854,   1509,   2528, -3815 },    {  -3173,     97,   5019,  -706 },    {  -2689,   -145,   1375, -3915 },    {  -4838,   -385,   2488, -2427 },    {  -4557,   -355,   1603, -3060 },    {  -3522,   1832,   3292, -2674 },    {  -3769,    780,   2378, -2704 },    {  -4323,  -1932,   3414, -1169 },    {  -2740,   1158,   2729, -3273 },    {  -3647,    210,   1464, -2892 },    {  -2342,  -2097,   1513, -3727 },    {  -4422,  -1242,   3130, -1833 },    {  -1308,  -1039,   4290, -1875 },    {  -1754,  -2535,   3298, -2314 },    {  -4102,   -186,   4037, -1094 },    {  -1008,   1570,   3290,   171 },    {  -3322,  -2621,   2791, -1536 },    {  -2539,  -2597,   3442, -1672 },    {  -3411,  -2015,   3670, -1174 },    {  -2097,    730,   5581, -1399 },    {  -1510,    -74,   4820, -2004 },    {  -4086,   -868,   4425,  -771 },    {   -956,   -986,   3640, -2925 },    {  -2087,  -1250,   3464, -2458 },    {  -3308,  -2411,   1334, -3667 },    {  -2264,   -389,   4004, -1854 },    {   -680,    239,   4058, -3388 },    {  -1357,     30,   2993, -3658 },    {  -3601,   -552,   1177, -1136 },    {  -2641,    442,   4374, -1625 },    {  -2525,    770,   1640, -3895 },    {  -3172,   -891,   3893, -1608 },    {  -2996,     13,   3277, -2414 },    {   -899,   1055,   4470, -2501 },    {   -422,   -584,   3475, -3787 },    {  -1978,   -593,   2566, -3415 },    {  -3150,  -1280,   2362, -3047 },    {  -3592,    224,   1026, -3932 },    {  -4840,  -1189,   3633,  -879 },    {  -3952,  -2255,   2916, -1826 },    {  -1695,     28,   1810,  -349 },    {   -745,  -2484,   3308, -3293 },    {  -1016,   1563,   5365, -1823 },    {  -2172,  -1787,   4266, -1287 },    {  -1241,  -1951,   3982, -2413 },    {  -2009,  -2639,   2330, -3480 },    {   5105,  -1618,  -2588, -2015 },    {   6497,  -1523,  -3218,  -910 },    {   6526,  -2305,  -2029, -1790 },    {   5289,    -99,  -3436,  -400 },    {   5781,  -1623,  -1577, -2617 },    {   5259,   -670,  -3125, -1700 },    {   6343,  -1256,   -331, -3222 },    {   7967,   -678,  -2195, -1462 },    {   6119,   -695,  -2988, -1538 },    {   6108,    494,  -3359, -1548 },    {   5067,    969,  -2328, -2707 },    {   7595,   -435,  -1497, -2056 },    {   6929,   -719,  -2420, -1665 },    {   5190,    584,  -2982, -2103 },    {   6106,   -444,  -1411, -2739 },    {   5584,    289,  -1804, -2803 },    {   5276,    227,  -1180, -3361 },    {   7544,  -1525,  -1834, -1725 },    {   5986,  -1470,  -2606, -1701 },    {   5096,   -765,  -1712, -3006 },    {   5423,   -149,  -3933, -1157 },    {   7651,     26,  -2445, -1507 },    {   4745,   -464,  -1735, -2362 },    {   5352,  -1011,  -1094, -1999 },    {   6300,   -672,   -542, -1950 },    {   6675,  -1020,  -1318, -1059 },    {   7218,  -2036,   -603, -2462 },    {   7755,  -1514,  -2430, -1229 },    {   5041,    449,  -1056, -2405 },    {   6710,  -2277,  -1344, -2284 },    {   6824,  -1347,  -2254,   251 },    {   6068,  -1857,   -983, -1316 },    {   5603,  -2177,  -2730, -1477 },    {   5838,  -1059,  -3604,  -970 },    {   5076,   -789,   -335, -2413 },    {   6191,  -1634,  -2000, -2129 },    {   5092,  -1292,  -2543, -1034 },    {   5305,    435,  -1710, -1850 },    {   6140,    561,  -2176, -2380 },    {   6752,    348,  -2496, -1890 },    {   6405,    273,  -1098, -2778 },    {   6942,  -1340,   -496, -1381 },    {   5238,   -687,  -2454, -2349 },    {   6959,   -882,  -1833, -2061 },    {   6292,   -253,  -2125, -2199 },    {   5838,   -574,   -759, -3215 },    {   6954,  -1484,   -640, -2771 },    {   7498,  -1706,  -1210, -2154 },    {   6772,  -1003,  -1235, -2532 },    {   6014,    228,  -2154, -1108 },    {   6943,  -2178,  -2644, -1122 },    {   7262,   -763,  -3056, -1090 },    {   6273,  -1478,  -1072,   177 },    {   4734,    425,  -2912,   357 },    {   7129,    168,  -1537, -2327 },    {   7204,   -434,   -746, -2660 },

Lines 1–500 of 9196.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t