annotate mpeg4data.h @ 4166:eced83504436 libavcodec

mp3 header (de)compression bitstream filter this will make mp3 frames 4 bytes smaller, it will not give you binary identical mp3 files, but it will give you mp3 files which decode to binary identical output this will only work in containers providing at least packet size, sample_rate and number of channels bugreports about mp3 files for which this fails are welcome and this is experimental (dont expect compatibility and dont even expect to be able to decompress what you compressed, hell dont even expect this to work without editing the source a little)
author michael
date Fri, 10 Nov 2006 01:41:53 +0000
parents c8c591fe26f8
children 0244bba24b43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
1 /*
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
2 * copyright (c) 2000,2001 Fabrice Bellard
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
3 * H263+ support
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
4 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
5 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
6 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
7 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
10 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
12 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
16 * Lesser General Public License for more details.
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
17 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3699
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
3699
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
21 */
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3066
diff changeset
22
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
23 /**
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
24 * @file mpeg4data.h
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
25 * mpeg4 tables.
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
26 */
1e39f273ecd6 per file doxy
michaelni
parents: 1064
diff changeset
27
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
28 // shapes
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
29 #define RECT_SHAPE 0
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
30 #define BIN_SHAPE 1
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
31 #define BIN_ONLY_SHAPE 2
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
32 #define GRAY_SHAPE 3
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
33
923
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
34 #define SIMPLE_VO_TYPE 1
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
35 #define CORE_VO_TYPE 3
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
36 #define MAIN_VO_TYPE 4
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
37 #define NBIT_VO_TYPE 5
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
38 #define ARTS_VO_TYPE 10
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
39 #define ACE_VO_TYPE 12
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
40 #define ADV_SIMPLE_VO_TYPE 17
336
c56b45669214 export delay info
michaelni
parents: 312
diff changeset
41
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
42 // aspect_ratio_info
355
ac6fc4c7aecb - H263 PAR support by Alex Beregszaszi.
pulento
parents: 336
diff changeset
43 #define EXTENDED_PAR 15
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
44
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
45 //vol_sprite_usage / sprite_enable
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
46 #define STATIC_SPRITE 1
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
47 #define GMC_SPRITE 2
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
48
458
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
49 #define MOTION_MARKER 0x1F001
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
50 #define DC_MARKER 0x6B001
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
51
1349
89e6c3ce263a warning fix
al3x
parents: 1177
diff changeset
52 static const int mb_type_b_map[4]= {
1177
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1132
diff changeset
53 MB_TYPE_DIRECT2 | MB_TYPE_L0L1,
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1132
diff changeset
54 MB_TYPE_L0L1 | MB_TYPE_16x16,
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1132
diff changeset
55 MB_TYPE_L1 | MB_TYPE_16x16,
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1132
diff changeset
56 MB_TYPE_L0 | MB_TYPE_16x16,
fea03d2c4946 simplified adressing of most mb based arrays (mb_x + mb_y*s->mb_stride) now instead of mb_x + mb_y*mb_width and 1+mb_x + (1+mb_y)*(mb_width+2) and ... mixture
michaelni
parents: 1132
diff changeset
57 };
458
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
58
942
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
59 #define VOS_STARTCODE 0x1B0
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
60 #define USER_DATA_STARTCODE 0x1B2
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
61 #define GOP_STARTCODE 0x1B3
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
62 #define VISUAL_OBJ_STARTCODE 0x1B5
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
63 #define VOP_STARTCODE 0x1B6
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
64
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 /* dc encoding for mpeg4 */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
66 const uint8_t DCtab_lum[13][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 {3,3}, {3,2}, {2,2}, {2,3}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
69 {1,8}, {1,9}, {1,10}, {1,11},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
70 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
71
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
72 const uint8_t DCtab_chrom[13][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 {3,2}, {2,2}, {1,2}, {1,3}, {1,4}, {1,5}, {1,6}, {1,7}, {1,8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
75 {1,9}, {1,10}, {1,11}, {1,12},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
76 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
77
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
78 const uint16_t intra_vlc[103][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 { 0x2, 2 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
84 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 { 0x5f, 12 },{ 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
107
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
108 const int8_t intra_level[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 25, 26, 27, 1, 2, 3, 4, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 6, 7, 8, 9, 10, 1, 2, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 4, 5, 1, 2, 3, 4, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 3, 1, 2, 3, 1, 2, 3, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 2, 3, 1, 2, 1, 2, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 1, 1, 1, 1, 2, 3, 4, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 6, 7, 8, 1, 2, 3, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
123
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
124 const int8_t intra_run[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 0, 0, 0, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
129 1, 1, 1, 1, 1, 2, 2, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
130 2, 2, 3, 3, 3, 3, 4, 4,
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 4, 5, 5, 5, 6, 6, 6, 7,
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 7, 7, 8, 8, 9, 9, 10, 11,
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 12, 13, 14, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 0, 0, 0, 1, 1, 1, 2, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 3, 3, 4, 4, 5, 5, 6, 6,
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 7, 8, 9, 10, 11, 12, 13, 14,
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 15, 16, 17, 18, 19, 20,
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
139
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 static RLTable rl_intra = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 102,
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 67,
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 intra_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 intra_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
145 intra_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 };
254
b4fed8b24e3a gmc bitstream decoding support (the real motion compensation isnt implemnted yet)
michaelni
parents: 253
diff changeset
147
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
148 static const uint16_t inter_rvlc[170][2]={ //note this is identical to the intra rvlc except that its reordered
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
149 {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
150 {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
151 {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
152 {0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
153 {0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
154 {0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
155 {0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
156 {0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
157 {0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
158 {0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
159 {0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
160 {0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
161 {0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
162 {0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
163 {0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
164 {0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
165 {0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
166 {0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
167 {0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
168 {0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
169 {0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
170 {0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
171 {0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
172 {0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
173 {0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
174 {0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
175 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
176 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
177 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
178 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
179 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
180 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
181 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
182 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
183 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
184 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
185 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
186 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
187 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
188 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
189 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
190 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
191 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
192 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
193
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
194 static const int8_t inter_rvlc_run[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
195 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
196 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
197 0, 0, 0, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
198 1, 1, 1, 1, 1, 2, 2, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
199 2, 2, 2, 2, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
200 3, 3, 3, 4, 4, 4, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
201 5, 5, 5, 5, 6, 6, 6, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
202 7, 7, 7, 7, 8, 8, 8, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
203 9, 9, 10, 10, 11, 11, 12, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
204 13, 13, 14, 14, 15, 15, 16, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
205 17, 17, 18, 19, 20, 21, 22, 23,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
206 24, 25, 26, 27, 28, 29, 30, 31,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
207 32, 33, 34, 35, 36, 37, 38,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
208 0, 0, 0, 0, 0, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
209 1, 1, 2, 2, 2, 3, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
210 4, 5, 5, 6, 6, 7, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
211 8, 9, 9, 10, 10, 11, 11, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
212 12, 13, 13, 14, 15, 16, 17, 18,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
213 19, 20, 21, 22, 23, 24, 25, 26,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
214 27, 28, 29, 30, 31, 32, 33, 34,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
215 35, 36, 37, 38, 39, 40, 41, 42,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
216 43, 44,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
217 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
218
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
219 static const int8_t inter_rvlc_level[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
220 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
221 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
222 17, 18, 19, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
223 6, 7, 8, 9, 10, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
224 4, 5, 6, 7, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
225 5, 6, 7, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
226 1, 2, 3, 4, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
227 1, 2, 3, 4, 1, 2, 3, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
228 2, 3, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
229 1, 2, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
230 1, 2, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
231 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
232 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
233 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
234 4, 5, 1, 2, 3, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
235 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
236 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
237 2, 1, 2, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
238 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
239 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
240 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
241 1, 1,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
242 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
243
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
244 static RLTable rvlc_rl_inter = {
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
245 169,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
246 103,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
247 inter_rvlc,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
248 inter_rvlc_run,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
249 inter_rvlc_level,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
250 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
251
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
252 static const uint16_t intra_rvlc[170][2]={
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
253 {0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
254 {0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
255 {0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
256 {0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
257 {0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
258 {0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
259 {0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
260 {0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
261 {0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
262 {0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
263 {0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
264 {0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
265 {0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
266 {0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
267 {0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
268 {0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
269 {0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
270 {0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
271 {0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
272 {0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
273 {0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
274 {0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
275 {0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
276 {0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
277 {0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
278 {0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
279 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
280 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
281 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
282 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
283 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
284 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
285 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
286 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
287 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
288 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
289 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
290 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
291 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
292 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
293 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
294 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
295 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
296 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
297
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
298 static const int8_t intra_rvlc_run[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
299 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
300 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
301 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
302 0, 0, 0, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
303 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
304 2, 2, 2, 2, 2, 2, 2, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
305 2, 2, 2, 3, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
306 3, 3, 3, 3, 4, 4, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
307 4, 4, 5, 5, 5, 5, 5, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
308 6, 6, 6, 6, 6, 7, 7, 7,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
309 7, 7, 8, 8, 8, 8, 9, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
310 9, 9, 10, 10, 11, 11, 12, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
311 13, 14, 15, 16, 17, 18, 19,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
312 0, 0, 0, 0, 0, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
313 1, 1, 2, 2, 2, 3, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
314 4, 5, 5, 6, 6, 7, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
315 8, 9, 9, 10, 10, 11, 11, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
316 12, 13, 13, 14, 15, 16, 17, 18,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
317 19, 20, 21, 22, 23, 24, 25, 26,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
318 27, 28, 29, 30, 31, 32, 33, 34,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
319 35, 36, 37, 38, 39, 40, 41, 42,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
320 43, 44,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
321 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
322
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
323 static const int8_t intra_rvlc_level[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
324 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
325 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
326 17, 18, 19, 20, 21, 22, 23, 24,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
327 25, 26, 27, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
328 6, 7, 8, 9, 10, 11, 12, 13,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
329 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
330 9, 10, 11, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
331 6, 7, 8, 9, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
332 5, 6, 1, 2, 3, 4, 5, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
333 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
334 4, 5, 1, 2, 3, 4, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
335 3, 4, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
336 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
337 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
338 4, 5, 1, 2, 3, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
339 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
340 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
341 2, 1, 2, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
342 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
343 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
344 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
345 1, 1,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
346 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
347
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
348 static RLTable rvlc_rl_intra = {
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
349 169,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
350 103,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
351 intra_rvlc,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
352 intra_rvlc_run,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
353 intra_rvlc_level,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
354 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
355
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
356 static const uint16_t sprite_trajectory_tab[15][2] = {
254
b4fed8b24e3a gmc bitstream decoding support (the real motion compensation isnt implemnted yet)
michaelni
parents: 253
diff changeset
357 {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
358 {0x0E, 4}, {0x1E, 5}, {0x3E, 6}, {0x7E, 7}, {0xFE, 8},
254
b4fed8b24e3a gmc bitstream decoding support (the real motion compensation isnt implemnted yet)
michaelni
parents: 253
diff changeset
359 {0x1FE, 9},{0x3FE, 10},{0x7FE, 11},{0xFFE, 12},
b4fed8b24e3a gmc bitstream decoding support (the real motion compensation isnt implemnted yet)
michaelni
parents: 253
diff changeset
360 };
262
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
361
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
362 static const uint8_t mb_type_b_tab[4][2] = {
262
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
363 {1, 1}, {1, 2}, {1, 3}, {1, 4},
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
364 };
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
365
1548
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
366 static const AVRational pixel_aspect[16]={
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
367 {0, 1},
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
368 {1, 1},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
369 {12, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
370 {10, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
371 {16, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
372 {40, 33},
1548
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
373 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
374 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
375 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
376 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
377 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
378 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
379 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
380 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
381 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
382 {0, 1},
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
383 };
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
384
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
385 /* these matrixes will be permuted for the idct */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
386 const int16_t ff_mpeg4_default_intra_matrix[64] = {
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
387 8, 17, 18, 19, 21, 23, 25, 27,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
388 17, 18, 19, 21, 23, 25, 27, 28,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
389 20, 21, 22, 23, 24, 26, 28, 30,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
390 21, 22, 23, 24, 26, 28, 30, 32,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
391 22, 23, 24, 26, 28, 30, 32, 35,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
392 23, 24, 26, 28, 30, 32, 35, 38,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
393 25, 26, 28, 30, 32, 35, 38, 41,
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
394 27, 28, 30, 32, 35, 38, 41, 45,
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
395 };
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
396
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
397 const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
398 16, 17, 18, 19, 20, 21, 22, 23,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
399 17, 18, 19, 20, 21, 22, 23, 24,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
400 18, 19, 20, 21, 22, 23, 24, 25,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
401 19, 20, 21, 22, 23, 24, 26, 27,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
402 20, 21, 22, 23, 25, 26, 27, 28,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
403 21, 22, 23, 24, 26, 27, 28, 30,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
404 22, 23, 24, 26, 27, 28, 30, 31,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
405 23, 24, 25, 27, 28, 30, 31, 33,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
406 };
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
407
2753
ba8ecddf5598 adding a few const
michael
parents: 1548
diff changeset
408 const uint8_t ff_mpeg4_y_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
409 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
410 0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,34,36,38,40,42,44,46
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
411 };
2753
ba8ecddf5598 adding a few const
michael
parents: 1548
diff changeset
412 const uint8_t ff_mpeg4_c_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
413 // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
414 0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,20,21,22,23,24,25
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
415 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
416
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
417 const uint16_t ff_mpeg4_resync_prefix[8]={
745
25d7fb7c89be better/cleaner error resilience (done in a 2nd pass after decoding)
michaelni
parents: 706
diff changeset
418 0x7F00, 0x7E00, 0x7C00, 0x7800, 0x7000, 0x6000, 0x4000, 0x0000
25d7fb7c89be better/cleaner error resilience (done in a 2nd pass after decoding)
michaelni
parents: 706
diff changeset
419 };
1520
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
420
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
421 static const uint8_t mpeg4_dc_threshold[8]={
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
422 99, 13, 15, 17, 19, 21, 23, 0
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
423 };