annotate mpeg4data.h @ 9090:cecf81f93756 libavcodec

Call ff_fetch_timestamp() for mpeg1/2 when a picture start code is found instead of calling it at the end of a frame with a large negative offset. This significantly reduces the maximal distance in container packets between the point where the first byte of the "access unit" was stored and where we call ff_fetch_timestamp() thus reducing the constraints on our parser. Also change the parser from next_frame_offset to cur, this is needed because now the reference is from container packet start instead of frame start. (i previously misinterpreted this as bug)
author michael
date Mon, 02 Mar 2009 14:53:18 +0000
parents e9d9d946f213
children 4605bd2fdb7f
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 /**
8718
e9d9d946f213 Use full internal pathname in doxygen @file directives.
diego
parents: 7760
diff changeset
24 * @file libavcodec/mpeg4data.h
1106
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
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
28 #ifndef AVCODEC_MPEG4DATA_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
29 #define AVCODEC_MPEG4DATA_H
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
30
5162
4394344397d8 include all prerequisites in header files
mru
parents: 5129
diff changeset
31 #include <stdint.h>
4394344397d8 include all prerequisites in header files
mru
parents: 5129
diff changeset
32 #include "mpegvideo.h"
4394344397d8 include all prerequisites in header files
mru
parents: 5129
diff changeset
33
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
34 // shapes
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
35 #define RECT_SHAPE 0
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
36 #define BIN_SHAPE 1
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
37 #define BIN_ONLY_SHAPE 2
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
38 #define GRAY_SHAPE 3
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
39
923
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
40 #define SIMPLE_VO_TYPE 1
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
41 #define CORE_VO_TYPE 3
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
42 #define MAIN_VO_TYPE 4
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
43 #define NBIT_VO_TYPE 5
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
44 #define ARTS_VO_TYPE 10
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
45 #define ACE_VO_TYPE 12
3b5d9ecedc73 correct mpeg4 vo type
michaelni
parents: 745
diff changeset
46 #define ADV_SIMPLE_VO_TYPE 17
336
c56b45669214 export delay info
michaelni
parents: 312
diff changeset
47
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
48 // aspect_ratio_info
355
ac6fc4c7aecb - H263 PAR support by Alex Beregszaszi.
pulento
parents: 336
diff changeset
49 #define EXTENDED_PAR 15
253
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
50
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
51 //vol_sprite_usage / sprite_enable
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
52 #define STATIC_SPRITE 1
4448dd55d415 parsing more of the mpeg4 header & print some "not supported" stuff
michaelni
parents: 39
diff changeset
53 #define GMC_SPRITE 2
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
54
458
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
55 #define MOTION_MARKER 0x1F001
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
56 #define DC_MARKER 0x6B001
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
57
1349
89e6c3ce263a warning fix
al3x
parents: 1177
diff changeset
58 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
59 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
60 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
61 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
62 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
63 };
458
e573f907734d data partitioning
michaelni
parents: 355
diff changeset
64
942
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
65 #define VOS_STARTCODE 0x1B0
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
66 #define USER_DATA_STARTCODE 0x1B2
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
67 #define GOP_STARTCODE 0x1B3
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
68 #define VISUAL_OBJ_STARTCODE 0x1B5
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
69 #define VOP_STARTCODE 0x1B6
c237f5db1c22 correcter mpeg4 headers
michaelni
parents: 923
diff changeset
70
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
71 /* dc encoding for mpeg4 */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
72 const uint8_t DCtab_lum[13][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 {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
75 {1,8}, {1,9}, {1,10}, {1,11},
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 uint8_t DCtab_chrom[13][2] =
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 {
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 {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
81 {1,9}, {1,10}, {1,11}, {1,12},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
82 };
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
83
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
84 const uint16_t intra_vlc[103][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 { 0x2, 2 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 { 0x6, 3 },{ 0xf, 4 },{ 0xd, 5 },{ 0xc, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 { 0x15, 6 },{ 0x13, 6 },{ 0x12, 6 },{ 0x17, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 { 0x1f, 8 },{ 0x1e, 8 },{ 0x1d, 8 },{ 0x25, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 { 0x24, 9 },{ 0x23, 9 },{ 0x21, 9 },{ 0x21, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 { 0x20, 10 },{ 0xf, 10 },{ 0xe, 10 },{ 0x7, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 { 0x6, 11 },{ 0x20, 11 },{ 0x21, 11 },{ 0x50, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 { 0x51, 12 },{ 0x52, 12 },{ 0xe, 4 },{ 0x14, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 { 0x16, 7 },{ 0x1c, 8 },{ 0x20, 9 },{ 0x1f, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 { 0xd, 10 },{ 0x22, 11 },{ 0x53, 12 },{ 0x55, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 { 0xb, 5 },{ 0x15, 7 },{ 0x1e, 9 },{ 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 { 0x56, 12 },{ 0x11, 6 },{ 0x1b, 8 },{ 0x1d, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 { 0xb, 10 },{ 0x10, 6 },{ 0x22, 9 },{ 0xa, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 { 0xd, 6 },{ 0x1c, 9 },{ 0x8, 10 },{ 0x12, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 { 0x1b, 9 },{ 0x54, 12 },{ 0x14, 7 },{ 0x1a, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 { 0x57, 12 },{ 0x19, 8 },{ 0x9, 10 },{ 0x18, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 { 0x23, 11 },{ 0x17, 8 },{ 0x19, 9 },{ 0x18, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
102 { 0x7, 10 },{ 0x58, 12 },{ 0x7, 4 },{ 0xc, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
103 { 0x16, 8 },{ 0x17, 9 },{ 0x6, 10 },{ 0x5, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 { 0x4, 11 },{ 0x59, 12 },{ 0xf, 6 },{ 0x16, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 { 0x5, 10 },{ 0xe, 6 },{ 0x4, 10 },{ 0x11, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 { 0x24, 11 },{ 0x10, 7 },{ 0x25, 11 },{ 0x13, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 { 0x5a, 12 },{ 0x15, 8 },{ 0x5b, 12 },{ 0x14, 8 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 { 0x13, 8 },{ 0x1a, 8 },{ 0x15, 9 },{ 0x14, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 { 0x13, 9 },{ 0x12, 9 },{ 0x11, 9 },{ 0x26, 11 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 { 0x27, 11 },{ 0x5c, 12 },{ 0x5d, 12 },{ 0x5e, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 { 0x5f, 12 },{ 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
113
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
114 const int8_t intra_level[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
118 25, 26, 27, 1, 2, 3, 4, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
119 6, 7, 8, 9, 10, 1, 2, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
120 4, 5, 1, 2, 3, 4, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
121 3, 1, 2, 3, 1, 2, 3, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
122 2, 3, 1, 2, 1, 2, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
123 1, 1, 1, 1, 2, 3, 4, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
124 6, 7, 8, 1, 2, 3, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
125 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
126 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
127 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
128 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
129
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
130 const int8_t intra_run[102] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
131 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 0, 0, 0, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
135 1, 1, 1, 1, 1, 2, 2, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
136 2, 2, 3, 3, 3, 3, 4, 4,
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 4, 5, 5, 5, 6, 6, 6, 7,
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 7, 7, 8, 8, 9, 9, 10, 11,
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 12, 13, 14, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 0, 0, 0, 1, 1, 1, 2, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 3, 3, 4, 4, 5, 5, 6, 6,
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 7, 8, 9, 10, 11, 12, 13, 14,
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 15, 16, 17, 18, 19, 20,
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
145
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 static RLTable rl_intra = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 102,
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 67,
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 intra_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 intra_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 intra_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
152 };
254
b4fed8b24e3a gmc bitstream decoding support (the real motion compensation isnt implemnted yet)
michaelni
parents: 253
diff changeset
153
5129
0244bba24b43 misc typo fixes
diego
parents: 3947
diff changeset
154 /* Note this is identical to the intra rvlc except that it is reordered. */
0244bba24b43 misc typo fixes
diego
parents: 3947
diff changeset
155 static const uint16_t inter_rvlc[170][2]={
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
156 {0x0006, 3},{0x0001, 4},{0x0004, 5},{0x001C, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
157 {0x003C, 8},{0x003D, 8},{0x007C, 9},{0x00FC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
158 {0x00FD, 10},{0x01FC, 11},{0x01FD, 11},{0x03FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
159 {0x07FC, 13},{0x07FD, 13},{0x0BFC, 13},{0x0BFD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
160 {0x0FFC, 14},{0x0FFD, 14},{0x1FFC, 15},{0x0007, 3},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
161 {0x000C, 6},{0x005C, 8},{0x007D, 9},{0x017C, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
162 {0x02FC, 11},{0x03FD, 12},{0x0DFC, 13},{0x17FC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
163 {0x17FD, 14},{0x000A, 4},{0x001D, 7},{0x00BC, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
164 {0x02FD, 11},{0x05FC, 12},{0x1BFC, 14},{0x1BFD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
165 {0x0005, 5},{0x005D, 8},{0x017D, 10},{0x05FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
166 {0x0DFD, 13},{0x1DFC, 14},{0x1FFD, 15},{0x0008, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
167 {0x006C, 8},{0x037C, 11},{0x0EFC, 13},{0x2FFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
168 {0x0009, 5},{0x00BD, 9},{0x037D, 11},{0x0EFD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
169 {0x000D, 6},{0x01BC, 10},{0x06FC, 12},{0x1DFD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
170 {0x0014, 6},{0x01BD, 10},{0x06FD, 12},{0x2FFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
171 {0x0015, 6},{0x01DC, 10},{0x0F7C, 13},{0x002C, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
172 {0x01DD, 10},{0x1EFC, 14},{0x002D, 7},{0x03BC, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
173 {0x0034, 7},{0x077C, 12},{0x006D, 8},{0x0F7D, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
174 {0x0074, 8},{0x1EFD, 14},{0x0075, 8},{0x1F7C, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
175 {0x00DC, 9},{0x1F7D, 14},{0x00DD, 9},{0x1FBC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
176 {0x00EC, 9},{0x37FC, 15},{0x01EC, 10},{0x01ED, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
177 {0x01F4, 10},{0x03BD, 11},{0x03DC, 11},{0x03DD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
178 {0x03EC, 11},{0x03ED, 11},{0x03F4, 11},{0x077D, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
179 {0x07BC, 12},{0x07BD, 12},{0x0FBC, 13},{0x0FBD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
180 {0x0FDC, 13},{0x0FDD, 13},{0x1FBD, 14},{0x1FDC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
181 {0x1FDD, 14},{0x37FD, 15},{0x3BFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
182 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
183 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
184 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
185 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
186 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
187 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
188 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
189 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
190 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
191 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
192 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
193 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
194 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
195 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
196 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
197 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
198 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
199 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
200
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
201 static const int8_t inter_rvlc_run[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
202 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
203 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
204 0, 0, 0, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
205 1, 1, 1, 1, 1, 2, 2, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
206 2, 2, 2, 2, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
207 3, 3, 3, 4, 4, 4, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
208 5, 5, 5, 5, 6, 6, 6, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
209 7, 7, 7, 7, 8, 8, 8, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
210 9, 9, 10, 10, 11, 11, 12, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
211 13, 13, 14, 14, 15, 15, 16, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
212 17, 17, 18, 19, 20, 21, 22, 23,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
213 24, 25, 26, 27, 28, 29, 30, 31,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
214 32, 33, 34, 35, 36, 37, 38,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
215 0, 0, 0, 0, 0, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
216 1, 1, 2, 2, 2, 3, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
217 4, 5, 5, 6, 6, 7, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
218 8, 9, 9, 10, 10, 11, 11, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
219 12, 13, 13, 14, 15, 16, 17, 18,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
220 19, 20, 21, 22, 23, 24, 25, 26,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
221 27, 28, 29, 30, 31, 32, 33, 34,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
222 35, 36, 37, 38, 39, 40, 41, 42,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
223 43, 44,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
224 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
225
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
226 static const int8_t inter_rvlc_level[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
227 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
228 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
229 17, 18, 19, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
230 6, 7, 8, 9, 10, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
231 4, 5, 6, 7, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
232 5, 6, 7, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
233 1, 2, 3, 4, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
234 1, 2, 3, 4, 1, 2, 3, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
235 2, 3, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
236 1, 2, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
237 1, 2, 1, 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,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
240 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
241 4, 5, 1, 2, 3, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
242 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
243 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
244 2, 1, 2, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
245 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
246 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
247 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
248 1, 1,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
249 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
250
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
251 static RLTable rvlc_rl_inter = {
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
252 169,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
253 103,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
254 inter_rvlc,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
255 inter_rvlc_run,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
256 inter_rvlc_level,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
257 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
258
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
259 static const uint16_t intra_rvlc[170][2]={
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
260 {0x0006, 3},{0x0007, 3},{0x000A, 4},{0x0009, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
261 {0x0014, 6},{0x0015, 6},{0x0034, 7},{0x0074, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
262 {0x0075, 8},{0x00DD, 9},{0x00EC, 9},{0x01EC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
263 {0x01ED, 10},{0x01F4, 10},{0x03EC, 11},{0x03ED, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
264 {0x03F4, 11},{0x077D, 12},{0x07BC, 12},{0x0FBD, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
265 {0x0FDC, 13},{0x07BD, 12},{0x0FDD, 13},{0x1FBD, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
266 {0x1FDC, 14},{0x1FDD, 14},{0x1FFC, 15},{0x0001, 4},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
267 {0x0008, 5},{0x002D, 7},{0x006C, 8},{0x006D, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
268 {0x00DC, 9},{0x01DD, 10},{0x03DC, 11},{0x03DD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
269 {0x077C, 12},{0x0FBC, 13},{0x1F7D, 14},{0x1FBC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
270 {0x0004, 5},{0x002C, 7},{0x00BC, 9},{0x01DC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
271 {0x03BC, 11},{0x03BD, 11},{0x0EFD, 13},{0x0F7C, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
272 {0x0F7D, 13},{0x1EFD, 14},{0x1F7C, 14},{0x0005, 5},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
273 {0x005C, 8},{0x00BD, 9},{0x037D, 11},{0x06FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
274 {0x0EFC, 13},{0x1DFD, 14},{0x1EFC, 14},{0x1FFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
275 {0x000C, 6},{0x005D, 8},{0x01BD, 10},{0x03FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
276 {0x06FD, 12},{0x1BFD, 14},{0x000D, 6},{0x007D, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
277 {0x02FC, 11},{0x05FC, 12},{0x1BFC, 14},{0x1DFC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
278 {0x001C, 7},{0x017C, 10},{0x02FD, 11},{0x05FD, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
279 {0x2FFC, 15},{0x001D, 7},{0x017D, 10},{0x037C, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
280 {0x0DFD, 13},{0x2FFD, 15},{0x003C, 8},{0x01BC, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
281 {0x0BFD, 13},{0x17FD, 14},{0x003D, 8},{0x01FD, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
282 {0x0DFC, 13},{0x37FC, 15},{0x007C, 9},{0x03FC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
283 {0x00FC, 10},{0x0BFC, 13},{0x00FD, 10},{0x37FD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
284 {0x01FC, 11},{0x07FC, 13},{0x07FD, 13},{0x0FFC, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
285 {0x0FFD, 14},{0x17FC, 14},{0x3BFC, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
286 {0x000B, 4},{0x0078, 8},{0x03F5, 11},{0x0FEC, 13},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
287 {0x1FEC, 14},{0x0012, 5},{0x00ED, 9},{0x07DC, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
288 {0x1FED, 14},{0x3BFD, 15},{0x0013, 5},{0x03F8, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
289 {0x3DFC, 15},{0x0018, 6},{0x07DD, 12},{0x0019, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
290 {0x07EC, 12},{0x0022, 6},{0x0FED, 13},{0x0023, 6},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
291 {0x0FF4, 13},{0x0035, 7},{0x0FF5, 13},{0x0038, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
292 {0x0FF8, 13},{0x0039, 7},{0x0FF9, 13},{0x0042, 7},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
293 {0x1FF4, 14},{0x0043, 7},{0x1FF5, 14},{0x0079, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
294 {0x1FF8, 14},{0x0082, 8},{0x3DFD, 15},{0x0083, 8},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
295 {0x00F4, 9},{0x00F5, 9},{0x00F8, 9},{0x00F9, 9},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
296 {0x0102, 9},{0x0103, 9},{0x01F5, 10},{0x01F8, 10},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
297 {0x01F9, 10},{0x0202, 10},{0x0203, 10},{0x03F9, 11},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
298 {0x0402, 11},{0x0403, 11},{0x07ED, 12},{0x07F4, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
299 {0x07F5, 12},{0x07F8, 12},{0x07F9, 12},{0x0802, 12},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
300 {0x0803, 12},{0x1002, 13},{0x1003, 13},{0x1FF9, 14},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
301 {0x2002, 14},{0x2003, 14},{0x3EFC, 15},{0x3EFD, 15},
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
302 {0x3F7C, 15},{0x3F7D, 15},{0x0000, 4}
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
303 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
304
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
305 static const int8_t intra_rvlc_run[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
306 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
307 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
308 0, 0, 0, 0, 0, 0, 0, 0,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
309 0, 0, 0, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
310 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
311 2, 2, 2, 2, 2, 2, 2, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
312 2, 2, 2, 3, 3, 3, 3, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
313 3, 3, 3, 3, 4, 4, 4, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
314 4, 4, 5, 5, 5, 5, 5, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
315 6, 6, 6, 6, 6, 7, 7, 7,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
316 7, 7, 8, 8, 8, 8, 9, 9,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
317 9, 9, 10, 10, 11, 11, 12, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
318 13, 14, 15, 16, 17, 18, 19,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
319 0, 0, 0, 0, 0, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
320 1, 1, 2, 2, 2, 3, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
321 4, 5, 5, 6, 6, 7, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
322 8, 9, 9, 10, 10, 11, 11, 12,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
323 12, 13, 13, 14, 15, 16, 17, 18,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
324 19, 20, 21, 22, 23, 24, 25, 26,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
325 27, 28, 29, 30, 31, 32, 33, 34,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
326 35, 36, 37, 38, 39, 40, 41, 42,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
327 43, 44,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
328 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
329
3066
04b924f8f5a5 warning fixes by Luca Abeni, lucabe72 ##@## email ##.## it
diego
parents: 2967
diff changeset
330 static const int8_t intra_rvlc_level[169]={
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
331 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
332 9, 10, 11, 12, 13, 14, 15, 16,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
333 17, 18, 19, 20, 21, 22, 23, 24,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
334 25, 26, 27, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
335 6, 7, 8, 9, 10, 11, 12, 13,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
336 1, 2, 3, 4, 5, 6, 7, 8,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
337 9, 10, 11, 1, 2, 3, 4, 5,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
338 6, 7, 8, 9, 1, 2, 3, 4,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
339 5, 6, 1, 2, 3, 4, 5, 6,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
340 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
341 4, 5, 1, 2, 3, 4, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
342 3, 4, 1, 2, 1, 2, 1, 2,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
343 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
344 1, 2, 3, 4, 5, 1, 2, 3,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
345 4, 5, 1, 2, 3, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
346 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
347 2, 1, 2, 1, 2, 1, 2, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
348 2, 1, 2, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
349 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
350 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
351 1, 1, 1, 1, 1, 1, 1, 1,
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
352 1, 1,
1132
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
353 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
354
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
355 static RLTable rvlc_rl_intra = {
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
356 169,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
357 103,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
358 intra_rvlc,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
359 intra_rvlc_run,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
360 intra_rvlc_level,
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
361 };
61c89e8ffa88 rvlc decoding support
michaelni
parents: 1106
diff changeset
362
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
363 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
364 {0x00, 2}, {0x02, 3}, {0x03, 3}, {0x04, 3}, {0x05, 3}, {0x06, 3},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
365 {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
366 {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
367 };
262
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
368
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
369 static const uint8_t mb_type_b_tab[4][2] = {
262
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
370 {1, 1}, {1, 2}, {1, 3}, {1, 4},
7d941b8c4e84 mpeg4 b-frames :)
michaelni
parents: 254
diff changeset
371 };
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
372
1548
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
373 static const AVRational pixel_aspect[16]={
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
374 {0, 1},
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
375 {1, 1},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
376 {12, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
377 {10, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
378 {16, 11},
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
379 {40, 33},
1548
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},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
383 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
384 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
385 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
386 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
387 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
388 {0, 1},
dd544554ed42 AVRational
michael
parents: 1520
diff changeset
389 {0, 1},
307
764aeec1320e msmpeg4v2 decoding (no encoding yet)
michaelni
parents: 262
diff changeset
390 };
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
391
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
392 /* these matrixes will be permuted for the idct */
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
393 const int16_t ff_mpeg4_default_intra_matrix[64] = {
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
394 8, 17, 18, 19, 21, 23, 25, 27,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
395 17, 18, 19, 21, 23, 25, 27, 28,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
396 20, 21, 22, 23, 24, 26, 28, 30,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
397 21, 22, 23, 24, 26, 28, 30, 32,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
398 22, 23, 24, 26, 28, 30, 32, 35,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
399 23, 24, 26, 28, 30, 32, 35, 38,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
400 25, 26, 28, 30, 32, 35, 38, 41,
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
401 27, 28, 30, 32, 35, 38, 41, 45,
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
402 };
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
403
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
404 const int16_t ff_mpeg4_default_non_intra_matrix[64] = {
312
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
405 16, 17, 18, 19, 20, 21, 22, 23,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
406 17, 18, 19, 20, 21, 22, 23, 24,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
407 18, 19, 20, 21, 22, 23, 24, 25,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
408 19, 20, 21, 22, 23, 24, 26, 27,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
409 20, 21, 22, 23, 25, 26, 27, 28,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
410 21, 22, 23, 24, 26, 27, 28, 30,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
411 22, 23, 24, 26, 27, 28, 30, 31,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
412 23, 24, 25, 27, 28, 30, 31, 33,
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
413 };
8cf5507e6ca5 mpeg4 mpeg quantizer support
michaelni
parents: 307
diff changeset
414
2753
ba8ecddf5598 adding a few const
michael
parents: 1548
diff changeset
415 const uint8_t ff_mpeg4_y_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
416 // 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
417 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
418 };
2753
ba8ecddf5598 adding a few const
michael
parents: 1548
diff changeset
419 const uint8_t ff_mpeg4_c_dc_scale_table[32]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
420 // 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
421 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
422 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 458
diff changeset
423
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 942
diff changeset
424 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
425 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
426 };
1520
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
427
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
428 static const uint8_t mpeg4_dc_threshold[8]={
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
429 99, 13, 15, 17, 19, 21, 23, 0
ad5461bad820 intra dc treshold != 0 decoding fixed
michael
parents: 1349
diff changeset
430 };
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
431
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
432 #endif /* AVCODEC_MPEG4DATA_H */