Mercurial > mplayer.hg
annotate mp3lib/tabinit.c @ 28511:db19e31a2c7c
Add a calc_src_dst_rects that calculates from window size, panscan etc.
which part of the video source must be scaled onto which part of the window.
Direct3D and (future) VDPAU need this, for XvMC it makes it easier to add
cropping support and Xv is changed to keep the diff to XvMC small.
author | reimar |
---|---|
date | Thu, 12 Feb 2009 17:40:53 +0000 |
parents | d986b47f1451 |
children | 347d152a5cfa |
rev | line source |
---|---|
15167
07e7a572bd84
Mark modified imported files as such to comply with (L)GPL ¡ø2a.
diego
parents:
12132
diff
changeset
|
1 /* |
18783 | 2 * Modified for use with MPlayer, for details see the changelog at |
3 * http://svn.mplayerhq.hu/mplayer/trunk/ | |
15167
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 | 7 real mp3lib_decwin[(512+32)]; |
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 | 10 |
23434
d986b47f1451
Use int and uint32_t instead of long and unsigned long, when appropriate.
zuxy
parents:
18783
diff
changeset
|
11 static int intwinbase[] = { |
1 | 12 0, -1, -1, -1, -1, -1, -1, -2, -2, -2, |
13 -2, -3, -3, -4, -4, -5, -5, -6, -7, -7, | |
14 -8, -9, -10, -11, -13, -14, -16, -17, -19, -21, | |
15 -24, -26, -29, -31, -35, -38, -41, -45, -49, -53, | |
16 -58, -63, -68, -73, -79, -85, -91, -97, -104, -111, | |
17 -117, -125, -132, -139, -147, -154, -161, -169, -176, -183, | |
18 -190, -196, -202, -208, -213, -218, -222, -225, -227, -228, | |
19 -228, -227, -224, -221, -215, -208, -200, -189, -177, -163, | |
20 -146, -127, -106, -83, -57, -29, 2, 36, 72, 111, | |
21 153, 197, 244, 294, 347, 401, 459, 519, 581, 645, | |
22 711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356, | |
23 1428, 1498, 1567, 1634, 1698, 1759, 1817, 1870, 1919, 1962, | |
24 2001, 2032, 2057, 2075, 2085, 2087, 2080, 2063, 2037, 2000, | |
25 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970, | |
26 794, 605, 402, 185, -45, -288, -545, -814, -1095, -1388, | |
27 -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, | |
28 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209, | |
29 -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959, | |
30 -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092, | |
31 -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082, | |
32 -70, 998, 2122, 3300, 4533, 5818, 7154, 8540, 9975, 11455, | |
33 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289, | |
34 30112, 31947, 33791, 35640, 37489, 39336, 41176, 43006, 44821, 46617, | |
35 48390, 50137, 51853, 53534, 55178, 56778, 58333, 59838, 61289, 62684, | |
36 64019, 65290, 66494, 67629, 68692, 69679, 70590, 71420, 72169, 72835, | |
37 73415, 73908, 74313, 74630, 74856, 74992, 75038 }; | |
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 | 40 { |
41 int i,j,k,kr,divv; | |
42 real *table,*costab; | |
43 | |
44 | |
45 for(i=0;i<5;i++) | |
46 { | |
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 | 49 for(k=0;k<kr;k++) costab[k] = 1.0 / (2.0 * cos(M_PI * ((double) k * 2.0 + 1.0) / (double) divv)); |
50 } | |
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 | 53 scaleval = -scaleval; |
54 for(i=0,j=0;i<256;i++,j++,table+=32) | |
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 | 57 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval; |
58 if(i % 32 == 31) | |
59 table -= 1023; | |
60 if(i % 64 == 63) | |
61 scaleval = - scaleval; | |
62 } | |
63 | |
64 for( /* i=256 */ ;i<512;i++,j--,table+=32) | |
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 | 67 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval; |
68 if(i % 32 == 31) | |
69 table -= 1023; | |
70 if(i % 64 == 63) | |
71 scaleval = - scaleval; | |
72 } | |
73 } | |
74 | |
75 |