annotate mp3lib/tabinit.c @ 15533:ddf15d233d58

Do not switch to audio tracks whose codec private data differs from the main audio track's as this will most likely result in messed up audio output. Patch by Michael Behrisch <list () behrisch ! de>
author mosu
date Sat, 21 May 2005 06:50:08 +0000
parents 07e7a572bd84
children 0783dd397f74
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15167
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
1 /*
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
2 * Modified for use with MPlayer, for details see the CVS changelog at
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
3 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
4 * $Id$
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
5 */
07e7a572bd84 Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents: 12132
diff changeset
6
12132
1975bcc1d015 removing more globals
alex
parents: 12131
diff changeset
7 real mp3lib_decwin[(512+32)];
1975bcc1d015 removing more globals
alex
parents: 12131
diff changeset
8 static real cos64[32], cos32[16], cos16[8], cos8[4], cos4[2];
12131
d155623271e3 fix symbol clashes when linking with libmp3lame including mp3 decoder, man, mp3lib is so much bloated
alex
parents: 8560
diff changeset
9 real *mp3lib_pnts[]={ cos64,cos32,cos16,cos8,cos4 };
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10
1245
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
11 static long intwinbase[] = {
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 0, -1, -1, -1, -1, -1, -1, -2, -2, -2,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 -2, -3, -3, -4, -4, -5, -5, -6, -7, -7,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 -8, -9, -10, -11, -13, -14, -16, -17, -19, -21,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 -24, -26, -29, -31, -35, -38, -41, -45, -49, -53,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 -58, -63, -68, -73, -79, -85, -91, -97, -104, -111,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 -117, -125, -132, -139, -147, -154, -161, -169, -176, -183,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 -190, -196, -202, -208, -213, -218, -222, -225, -227, -228,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 -228, -227, -224, -221, -215, -208, -200, -189, -177, -163,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 -146, -127, -106, -83, -57, -29, 2, 36, 72, 111,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 153, 197, 244, 294, 347, 401, 459, 519, 581, 645,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 1428, 1498, 1567, 1634, 1698, 1759, 1817, 1870, 1919, 1962,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 2001, 2032, 2057, 2075, 2085, 2087, 2080, 2063, 2037, 2000,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 794, 605, 402, 185, -45, -288, -545, -814, -1095, -1388,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31 -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
32 -70, 998, 2122, 3300, 4533, 5818, 7154, 8540, 9975, 11455,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 30112, 31947, 33791, 35640, 37489, 39336, 41176, 43006, 44821, 46617,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 48390, 50137, 51853, 53534, 55178, 56778, 58333, 59838, 61289, 62684,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36 64019, 65290, 66494, 67629, 68692, 69679, 70590, 71420, 72169, 72835,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37 73415, 73908, 74313, 74630, 74856, 74992, 75038 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38
12131
d155623271e3 fix symbol clashes when linking with libmp3lame including mp3 decoder, man, mp3lib is so much bloated
alex
parents: 8560
diff changeset
39 static void make_decode_tables(long scaleval)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
40 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 int i,j,k,kr,divv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 real *table,*costab;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 for(i=0;i<5;i++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 kr=0x10>>i; divv=0x40>>i;
12131
d155623271e3 fix symbol clashes when linking with libmp3lame including mp3 decoder, man, mp3lib is so much bloated
alex
parents: 8560
diff changeset
48 costab = mp3lib_pnts[i];
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
49 for(k=0;k<kr;k++) costab[k] = 1.0 / (2.0 * cos(M_PI * ((double) k * 2.0 + 1.0) / (double) divv));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51
8560
1320f1b3229d fixing that f*cking linker 'bug' e.g. naming config with libmp3lame
alex
parents: 1245
diff changeset
52 table = mp3lib_decwin;
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 scaleval = -scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 for(i=0,j=0;i<256;i++,j++,table+=32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 {
8560
1320f1b3229d fixing that f*cking linker 'bug' e.g. naming config with libmp3lame
alex
parents: 1245
diff changeset
56 if(table < mp3lib_decwin+512+16)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 if(i % 32 == 31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 table -= 1023;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 if(i % 64 == 63)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 scaleval = - scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 for( /* i=256 */ ;i<512;i++,j--,table+=32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 {
8560
1320f1b3229d fixing that f*cking linker 'bug' e.g. naming config with libmp3lame
alex
parents: 1245
diff changeset
66 if(table < mp3lib_decwin+512+16)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68 if(i % 32 == 31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
69 table -= 1023;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
70 if(i % 64 == 63)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
71 scaleval = - scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
72 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
73 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
74
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
75