Mercurial > libavcodec.hg
comparison dvdata.h @ 1064:b32afefe7d33 libavcodec
* UINTX -> uintx_t INTX -> intx_t
author | kabi |
---|---|
date | Tue, 11 Feb 2003 16:35:48 +0000 |
parents | c7922c5becf6 |
children | 7f10d38721ed |
comparison
equal
deleted
inserted
replaced
1063:fdeac9642346 | 1064:b32afefe7d33 |
---|---|
18 */ | 18 */ |
19 | 19 |
20 #define NB_DV_VLC 409 | 20 #define NB_DV_VLC 409 |
21 #define AAUX_OFFSET (80*6 + 80*16*3 + 3) | 21 #define AAUX_OFFSET (80*6 + 80*16*3 + 3) |
22 | 22 |
23 static const UINT16 dv_vlc_bits[409] = { | 23 static const uint16_t dv_vlc_bits[409] = { |
24 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016, | 24 0x0000, 0x0002, 0x0007, 0x0008, 0x0009, 0x0014, 0x0015, 0x0016, |
25 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a, | 25 0x0017, 0x0030, 0x0031, 0x0032, 0x0033, 0x0068, 0x0069, 0x006a, |
26 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2, | 26 0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x00e0, 0x00e1, 0x00e2, |
27 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, | 27 0x00e3, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x00e8, 0x00e9, 0x00ea, |
28 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2, | 28 0x00eb, 0x00ec, 0x00ed, 0x00ee, 0x00ef, 0x01e0, 0x01e1, 0x01e2, |
73 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, | 73 0x7ff0, 0x7ff1, 0x7ff2, 0x7ff3, 0x7ff4, 0x7ff5, 0x7ff6, 0x7ff7, |
74 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff, | 74 0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff, |
75 0x0006, | 75 0x0006, |
76 }; | 76 }; |
77 | 77 |
78 static const UINT8 dv_vlc_len[409] = { | 78 static const uint8_t dv_vlc_len[409] = { |
79 2, 3, 4, 4, 4, 5, 5, 5, | 79 2, 3, 4, 4, 4, 5, 5, 5, |
80 5, 6, 6, 6, 6, 7, 7, 7, | 80 5, 6, 6, 6, 6, 7, 7, 7, |
81 7, 7, 7, 7, 7, 8, 8, 8, | 81 7, 7, 7, 7, 7, 8, 8, 8, |
82 8, 8, 8, 8, 8, 8, 8, 8, | 82 8, 8, 8, 8, 8, 8, 8, 8, |
83 8, 8, 8, 8, 8, 9, 9, 9, | 83 8, 8, 8, 8, 8, 9, 9, 9, |
128 15, 15, 15, 15, 15, 15, 15, 15, | 128 15, 15, 15, 15, 15, 15, 15, 15, |
129 15, 15, 15, 15, 15, 15, 15, 15, | 129 15, 15, 15, 15, 15, 15, 15, 15, |
130 4, | 130 4, |
131 }; | 131 }; |
132 | 132 |
133 static const UINT8 dv_vlc_run[409] = { | 133 static const uint8_t dv_vlc_run[409] = { |
134 0, 0, 1, 0, 0, 2, 1, 0, | 134 0, 0, 1, 0, 0, 2, 1, 0, |
135 0, 3, 4, 0, 0, 5, 6, 2, | 135 0, 3, 4, 0, 0, 5, 6, 2, |
136 1, 1, 0, 0, 0, 7, 8, 9, | 136 1, 1, 0, 0, 0, 7, 8, 9, |
137 10, 3, 4, 2, 1, 1, 1, 0, | 137 10, 3, 4, 2, 1, 1, 1, 0, |
138 0, 0, 0, 0, 0, 11, 12, 13, | 138 0, 0, 0, 0, 0, 11, 12, 13, |
183 0, 0, 0, 0, 0, 0, 0, 0, | 183 0, 0, 0, 0, 0, 0, 0, 0, |
184 0, 0, 0, 0, 0, 0, 0, 0, | 184 0, 0, 0, 0, 0, 0, 0, 0, |
185 0, | 185 0, |
186 }; | 186 }; |
187 | 187 |
188 static const UINT8 dv_vlc_level[409] = { | 188 static const uint8_t dv_vlc_level[409] = { |
189 1, 2, 1, 3, 4, 1, 2, 5, | 189 1, 2, 1, 3, 4, 1, 2, 5, |
190 6, 1, 1, 7, 8, 1, 1, 2, | 190 6, 1, 1, 7, 8, 1, 1, 2, |
191 3, 4, 9, 10, 11, 1, 1, 1, | 191 3, 4, 9, 10, 11, 1, 1, 1, |
192 1, 2, 2, 3, 5, 6, 7, 12, | 192 1, 2, 2, 3, 5, 6, 7, 12, |
193 13, 14, 15, 16, 17, 1, 1, 1, | 193 13, 14, 15, 16, 17, 1, 1, 1, |
240 0, | 240 0, |
241 }; | 241 }; |
242 | 242 |
243 /* Specific zigzag scan for 248 idct. NOTE that unlike the | 243 /* Specific zigzag scan for 248 idct. NOTE that unlike the |
244 specification, we interleave the fields */ | 244 specification, we interleave the fields */ |
245 static const UINT8 dv_248_zigzag[64] = { | 245 static const uint8_t dv_248_zigzag[64] = { |
246 0, 8, 1, 9, 16, 24, 2, 10, | 246 0, 8, 1, 9, 16, 24, 2, 10, |
247 17, 25, 32, 40, 48, 56, 33, 41, | 247 17, 25, 32, 40, 48, 56, 33, 41, |
248 18, 26, 3, 11, 4, 12, 19, 27, | 248 18, 26, 3, 11, 4, 12, 19, 27, |
249 34, 42, 49, 57, 50, 58, 35, 43, | 249 34, 42, 49, 57, 50, 58, 35, 43, |
250 20, 28, 5, 13, 6, 14, 21, 29, | 250 20, 28, 5, 13, 6, 14, 21, 29, |
252 22, 30, 7, 15, 23, 31, 38, 46, | 252 22, 30, 7, 15, 23, 31, 38, 46, |
253 53, 61, 54, 62, 39, 47, 55, 63, | 253 53, 61, 54, 62, 39, 47, 55, 63, |
254 }; | 254 }; |
255 | 255 |
256 /* unquant tables (not used directly) */ | 256 /* unquant tables (not used directly) */ |
257 static const UINT8 dv_88_areas[64] = { | 257 static const uint8_t dv_88_areas[64] = { |
258 0,0,0,1,1,1,2,2, | 258 0,0,0,1,1,1,2,2, |
259 0,0,1,1,1,2,2,2, | 259 0,0,1,1,1,2,2,2, |
260 0,1,1,1,2,2,2,3, | 260 0,1,1,1,2,2,2,3, |
261 1,1,1,2,2,2,3,3, | 261 1,1,1,2,2,2,3,3, |
262 1,1,2,2,2,3,3,3, | 262 1,1,2,2,2,3,3,3, |
263 1,2,2,2,3,3,3,3, | 263 1,2,2,2,3,3,3,3, |
264 2,2,2,3,3,3,3,3, | 264 2,2,2,3,3,3,3,3, |
265 2,2,3,3,3,3,3,3, | 265 2,2,3,3,3,3,3,3, |
266 }; | 266 }; |
267 | 267 |
268 static const UINT8 dv_248_areas[64] = { | 268 static const uint8_t dv_248_areas[64] = { |
269 0,0,1,1,1,2,2,3, | 269 0,0,1,1,1,2,2,3, |
270 0,0,1,1,2,2,2,3, | 270 0,0,1,1,2,2,2,3, |
271 0,1,1,2,2,2,3,3, | 271 0,1,1,2,2,2,3,3, |
272 0,1,1,2,2,2,3,3, | 272 0,1,1,2,2,2,3,3, |
273 1,1,2,2,2,3,3,3, | 273 1,1,2,2,2,3,3,3, |
274 1,1,2,2,2,3,3,3, | 274 1,1,2,2,2,3,3,3, |
275 1,2,2,2,3,3,3,3, | 275 1,2,2,2,3,3,3,3, |
276 1,2,2,3,3,3,3,3, | 276 1,2,2,3,3,3,3,3, |
277 }; | 277 }; |
278 | 278 |
279 static UINT8 dv_quant_shifts[22][4] = { | 279 static uint8_t dv_quant_shifts[22][4] = { |
280 { 3,3,4,4 }, | 280 { 3,3,4,4 }, |
281 { 3,3,4,4 }, | 281 { 3,3,4,4 }, |
282 { 2,3,3,4 }, | 282 { 2,3,3,4 }, |
283 { 2,3,3,4 }, | 283 { 2,3,3,4 }, |
284 { 2,2,3,3 }, | 284 { 2,2,3,3 }, |
299 { 0,0,0,0 }, | 299 { 0,0,0,0 }, |
300 { 0,0,0,0 }, | 300 { 0,0,0,0 }, |
301 { 0,0,0,0 }, | 301 { 0,0,0,0 }, |
302 }; | 302 }; |
303 | 303 |
304 static const UINT8 dv_quant_offset[4] = { 6, 3, 0, 1 }; | 304 static const uint8_t dv_quant_offset[4] = { 6, 3, 0, 1 }; |
305 | 305 |
306 /* NOTE: I prefer hardcoding the positionning of dv blocks, it is | 306 /* NOTE: I prefer hardcoding the positionning of dv blocks, it is |
307 simpler :-) */ | 307 simpler :-) */ |
308 | 308 |
309 static const UINT16 dv_place_420[1620] = { | 309 static const uint16_t dv_place_420[1620] = { |
310 0x0c24, 0x2412, 0x3036, 0x0000, 0x1848, | 310 0x0c24, 0x2412, 0x3036, 0x0000, 0x1848, |
311 0x0e24, 0x2612, 0x3236, 0x0200, 0x1a48, | 311 0x0e24, 0x2612, 0x3236, 0x0200, 0x1a48, |
312 0x1024, 0x2812, 0x3436, 0x0400, 0x1c48, | 312 0x1024, 0x2812, 0x3436, 0x0400, 0x1c48, |
313 0x1026, 0x2814, 0x3438, 0x0402, 0x1c4a, | 313 0x1026, 0x2814, 0x3438, 0x0402, 0x1c4a, |
314 0x0e26, 0x2614, 0x3238, 0x0202, 0x1a4a, | 314 0x0e26, 0x2614, 0x3238, 0x0202, 0x1a4a, |
631 0x0634, 0x1e22, 0x2a46, 0x4210, 0x1258, | 631 0x0634, 0x1e22, 0x2a46, 0x4210, 0x1258, |
632 0x0834, 0x2022, 0x2c46, 0x4410, 0x1458, | 632 0x0834, 0x2022, 0x2c46, 0x4410, 0x1458, |
633 0x0a34, 0x2222, 0x2e46, 0x4610, 0x1658, | 633 0x0a34, 0x2222, 0x2e46, 0x4610, 0x1658, |
634 }; | 634 }; |
635 | 635 |
636 static const UINT16 dv_place_411[1350] = { | 636 static const uint16_t dv_place_411[1350] = { |
637 0x0c24, 0x2710, 0x3334, 0x0000, 0x1848, | 637 0x0c24, 0x2710, 0x3334, 0x0000, 0x1848, |
638 0x0d24, 0x2810, 0x3434, 0x0100, 0x1948, | 638 0x0d24, 0x2810, 0x3434, 0x0100, 0x1948, |
639 0x0e24, 0x2910, 0x3534, 0x0200, 0x1a48, | 639 0x0e24, 0x2910, 0x3534, 0x0200, 0x1a48, |
640 0x0f24, 0x2914, 0x3538, 0x0300, 0x1b48, | 640 0x0f24, 0x2914, 0x3538, 0x0300, 0x1b48, |
641 0x1024, 0x2814, 0x3438, 0x0400, 0x1c48, | 641 0x1024, 0x2814, 0x3438, 0x0400, 0x1c48, |
904 0x0634, 0x2120, 0x2d44, 0x3610, 0x1258, | 904 0x0634, 0x2120, 0x2d44, 0x3610, 0x1258, |
905 0x0734, 0x2220, 0x2e44, 0x3710, 0x1458, | 905 0x0734, 0x2220, 0x2e44, 0x3710, 0x1458, |
906 0x0834, 0x2320, 0x2f44, 0x3810, 0x1658, | 906 0x0834, 0x2320, 0x2f44, 0x3810, 0x1658, |
907 }; | 907 }; |
908 | 908 |
909 static const UINT16 dv_place_audio60[10][9] = { | 909 static const uint16_t dv_place_audio60[10][9] = { |
910 { 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */ | 910 { 0, 30, 60, 20, 50, 80, 10, 40, 70 }, /* 1st channel */ |
911 { 6, 36, 66, 26, 56, 86, 16, 46, 76 }, | 911 { 6, 36, 66, 26, 56, 86, 16, 46, 76 }, |
912 { 12, 42, 72, 2, 32, 62, 22, 52, 82 }, | 912 { 12, 42, 72, 2, 32, 62, 22, 52, 82 }, |
913 { 18, 48, 78, 8, 38, 68, 28, 58, 88 }, | 913 { 18, 48, 78, 8, 38, 68, 28, 58, 88 }, |
914 { 24, 54, 84, 14, 44, 74, 4, 34, 64 }, | 914 { 24, 54, 84, 14, 44, 74, 4, 34, 64 }, |
918 { 13, 43, 73, 3, 33, 63, 23, 53, 83 }, | 918 { 13, 43, 73, 3, 33, 63, 23, 53, 83 }, |
919 { 19, 49, 79, 9, 39, 69, 29, 59, 89 }, | 919 { 19, 49, 79, 9, 39, 69, 29, 59, 89 }, |
920 { 25, 55, 85, 15, 45, 75, 5, 35, 65 }, | 920 { 25, 55, 85, 15, 45, 75, 5, 35, 65 }, |
921 }; | 921 }; |
922 | 922 |
923 static const UINT16 dv_place_audio50[12][9] = { | 923 static const uint16_t dv_place_audio50[12][9] = { |
924 { 0, 36, 72, 26, 62, 98, 16, 52, 88}, /* 1st channel */ | 924 { 0, 36, 72, 26, 62, 98, 16, 52, 88}, /* 1st channel */ |
925 { 6, 42, 78, 32, 68, 104, 22, 58, 94}, | 925 { 6, 42, 78, 32, 68, 104, 22, 58, 94}, |
926 { 12, 48, 84, 2, 38, 74, 28, 64, 100}, | 926 { 12, 48, 84, 2, 38, 74, 28, 64, 100}, |
927 { 18, 54, 90, 8, 44, 80, 34, 70, 106}, | 927 { 18, 54, 90, 8, 44, 80, 34, 70, 106}, |
928 { 24, 60, 96, 14, 50, 86, 4, 40, 76}, | 928 { 24, 60, 96, 14, 50, 86, 4, 40, 76}, |