annotate mpeg12data.h @ 5163:9ecbfc0c82bf libavcodec

add multiple inclusion guards to headers
author mru
date Sun, 17 Jun 2007 00:01:30 +0000
parents 4394344397d8
children 3fd46e281bd8
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: 3556
diff changeset
1 /*
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3556
diff changeset
2 * MPEG1 codec / MPEG2 decoder
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3556
diff changeset
3 * copyright (c) 2000,2001 Fabrice Bellard
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3556
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: 3556
diff changeset
5 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3776
diff changeset
6 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3776
diff changeset
7 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3776
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: 3556
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: 3556
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: 3776
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: 3556
diff changeset
12 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3776
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: 3556
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: 3556
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: 3556
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: 3556
diff changeset
17 *
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3556
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: 3776
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: 3556
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: 3556
diff changeset
21 */
c537a97eec66 Add official LGPL license headers to the files that were missing them.
diego
parents: 3556
diff changeset
22
1106
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
23 /**
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
24 * @file mpeg12data.h
1e39f273ecd6 per file doxy
michaelni
parents: 1091
diff changeset
25 * MPEG1/2 tables.
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
26 */
986e461dc072 Initial revision
glantau
parents:
diff changeset
27
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
28 #ifndef AVCODEC_MPEG12DATA_H
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
29 #define AVCODEC_MPEG12DATA_H
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
30
5162
4394344397d8 include all prerequisites in header files
mru
parents: 4621
diff changeset
31 #include <stdint.h>
4394344397d8 include all prerequisites in header files
mru
parents: 4621
diff changeset
32 #include "mpegvideo.h"
4394344397d8 include all prerequisites in header files
mru
parents: 4621
diff changeset
33
3776
1843a85123b7 fix some signedness warnings
mru
parents: 3699
diff changeset
34 const uint16_t ff_mpeg1_default_intra_matrix[64] = {
2979
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
35 8, 16, 19, 22, 26, 27, 29, 34,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
36 16, 16, 22, 24, 27, 29, 34, 37,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
37 19, 22, 26, 27, 29, 34, 34, 38,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
38 22, 22, 26, 27, 29, 34, 37, 40,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
39 22, 26, 27, 29, 32, 35, 40, 48,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
40 26, 27, 29, 32, 35, 40, 48, 58,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
41 26, 27, 29, 34, 38, 46, 56, 69,
bfabfdf9ce55 COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 2967
diff changeset
42 27, 29, 35, 38, 46, 56, 69, 83
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
43 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
44
3776
1843a85123b7 fix some signedness warnings
mru
parents: 3699
diff changeset
45 const uint16_t ff_mpeg1_default_non_intra_matrix[64] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
46 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
47 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
48 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
49 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
50 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
51 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
52 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
53 16, 16, 16, 16, 16, 16, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
54 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
55
1325
1cbc2380d172 CONFIG_ENCODERS cleanup
michaelni
parents: 1181
diff changeset
56 static const uint16_t vlc_dc_lum_code[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
57 0x4, 0x0, 0x1, 0x5, 0x6, 0xe, 0x1e, 0x3e, 0x7e, 0xfe, 0x1fe, 0x1ff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
58 };
1325
1cbc2380d172 CONFIG_ENCODERS cleanup
michaelni
parents: 1181
diff changeset
59 static const unsigned char vlc_dc_lum_bits[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
60 3, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 9,
986e461dc072 Initial revision
glantau
parents:
diff changeset
61 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
62
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
63 static const uint16_t vlc_dc_chroma_code[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
64 0x0, 0x1, 0x2, 0x6, 0xe, 0x1e, 0x3e, 0x7e, 0xfe, 0x1fe, 0x3fe, 0x3ff,
986e461dc072 Initial revision
glantau
parents:
diff changeset
65 };
4180
85e1f5ceb97e make more tables static
mru
parents: 3947
diff changeset
66 static const unsigned char vlc_dc_chroma_bits[12] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
67 2, 2, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10,
986e461dc072 Initial revision
glantau
parents:
diff changeset
68 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
69
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
70 static const uint16_t mpeg1_vlc[113][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
71 { 0x3, 2 }, { 0x4, 4 }, { 0x5, 5 }, { 0x6, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
72 { 0x26, 8 }, { 0x21, 8 }, { 0xa, 10 }, { 0x1d, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
73 { 0x18, 12 }, { 0x13, 12 }, { 0x10, 12 }, { 0x1a, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
74 { 0x19, 13 }, { 0x18, 13 }, { 0x17, 13 }, { 0x1f, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
75 { 0x1e, 14 }, { 0x1d, 14 }, { 0x1c, 14 }, { 0x1b, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
76 { 0x1a, 14 }, { 0x19, 14 }, { 0x18, 14 }, { 0x17, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
77 { 0x16, 14 }, { 0x15, 14 }, { 0x14, 14 }, { 0x13, 14 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
78 { 0x12, 14 }, { 0x11, 14 }, { 0x10, 14 }, { 0x18, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
79 { 0x17, 15 }, { 0x16, 15 }, { 0x15, 15 }, { 0x14, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
80 { 0x13, 15 }, { 0x12, 15 }, { 0x11, 15 }, { 0x10, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
81 { 0x3, 3 }, { 0x6, 6 }, { 0x25, 8 }, { 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
82 { 0x1b, 12 }, { 0x16, 13 }, { 0x15, 13 }, { 0x1f, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
83 { 0x1e, 15 }, { 0x1d, 15 }, { 0x1c, 15 }, { 0x1b, 15 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
84 { 0x1a, 15 }, { 0x19, 15 }, { 0x13, 16 }, { 0x12, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
85 { 0x11, 16 }, { 0x10, 16 }, { 0x5, 4 }, { 0x4, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
86 { 0xb, 10 }, { 0x14, 12 }, { 0x14, 13 }, { 0x7, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
87 { 0x24, 8 }, { 0x1c, 12 }, { 0x13, 13 }, { 0x6, 5 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
88 { 0xf, 10 }, { 0x12, 12 }, { 0x7, 6 }, { 0x9, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
89 { 0x12, 13 }, { 0x5, 6 }, { 0x1e, 12 }, { 0x14, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
90 { 0x4, 6 }, { 0x15, 12 }, { 0x7, 7 }, { 0x11, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
91 { 0x5, 7 }, { 0x11, 13 }, { 0x27, 8 }, { 0x10, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
92 { 0x23, 8 }, { 0x1a, 16 }, { 0x22, 8 }, { 0x19, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
93 { 0x20, 8 }, { 0x18, 16 }, { 0xe, 10 }, { 0x17, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
94 { 0xd, 10 }, { 0x16, 16 }, { 0x8, 10 }, { 0x15, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
95 { 0x1f, 12 }, { 0x1a, 12 }, { 0x19, 12 }, { 0x17, 12 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
96 { 0x16, 12 }, { 0x1f, 13 }, { 0x1e, 13 }, { 0x1d, 13 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
97 { 0x1c, 13 }, { 0x1b, 13 }, { 0x1f, 16 }, { 0x1e, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
98 { 0x1d, 16 }, { 0x1c, 16 }, { 0x1b, 16 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
99 { 0x1, 6 }, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
100 { 0x2, 2 }, /* EOB */
986e461dc072 Initial revision
glantau
parents:
diff changeset
101 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
102
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
103 static const uint16_t mpeg2_vlc[113][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
104 {0x02, 2}, {0x06, 3}, {0x07, 4}, {0x1c, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
105 {0x1d, 5}, {0x05, 6}, {0x04, 6}, {0x7b, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
106 {0x7c, 7}, {0x23, 8}, {0x22, 8}, {0xfa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
107 {0xfb, 8}, {0xfe, 8}, {0xff, 8}, {0x1f,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
108 {0x1e,14}, {0x1d,14}, {0x1c,14}, {0x1b,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
109 {0x1a,14}, {0x19,14}, {0x18,14}, {0x17,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
110 {0x16,14}, {0x15,14}, {0x14,14}, {0x13,14},
986e461dc072 Initial revision
glantau
parents:
diff changeset
111 {0x12,14}, {0x11,14}, {0x10,14}, {0x18,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
112 {0x17,15}, {0x16,15}, {0x15,15}, {0x14,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
113 {0x13,15}, {0x12,15}, {0x11,15}, {0x10,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
114 {0x02, 3}, {0x06, 5}, {0x79, 7}, {0x27, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
115 {0x20, 8}, {0x16,13}, {0x15,13}, {0x1f,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
116 {0x1e,15}, {0x1d,15}, {0x1c,15}, {0x1b,15},
986e461dc072 Initial revision
glantau
parents:
diff changeset
117 {0x1a,15}, {0x19,15}, {0x13,16}, {0x12,16},
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
118 {0x11,16}, {0x10,16}, {0x05, 5}, {0x07, 7},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
119 {0xfc, 8}, {0x0c,10}, {0x14,13}, {0x07, 5},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
120 {0x26, 8}, {0x1c,12}, {0x13,13}, {0x06, 6},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
121 {0xfd, 8}, {0x12,12}, {0x07, 6}, {0x04, 9},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
122 {0x12,13}, {0x06, 7}, {0x1e,12}, {0x14,16},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
123 {0x04, 7}, {0x15,12}, {0x05, 7}, {0x11,12},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
124 {0x78, 7}, {0x11,13}, {0x7a, 7}, {0x10,13},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
125 {0x21, 8}, {0x1a,16}, {0x25, 8}, {0x19,16},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
126 {0x24, 8}, {0x18,16}, {0x05, 9}, {0x17,16},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
127 {0x07, 9}, {0x16,16}, {0x0d,10}, {0x15,16},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
128 {0x1f,12}, {0x1a,12}, {0x19,12}, {0x17,12},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
129 {0x16,12}, {0x1f,13}, {0x1e,13}, {0x1d,13},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
130 {0x1c,13}, {0x1b,13}, {0x1f,16}, {0x1e,16},
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
131 {0x1d,16}, {0x1c,16}, {0x1b,16},
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
132 {0x01,6}, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
133 {0x06,4}, /* EOB */
986e461dc072 Initial revision
glantau
parents:
diff changeset
134 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
135
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
136 static const int8_t mpeg1_level[111] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
137 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
138 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
139 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
140 25, 26, 27, 28, 29, 30, 31, 32,
986e461dc072 Initial revision
glantau
parents:
diff changeset
141 33, 34, 35, 36, 37, 38, 39, 40,
986e461dc072 Initial revision
glantau
parents:
diff changeset
142 1, 2, 3, 4, 5, 6, 7, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
143 9, 10, 11, 12, 13, 14, 15, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
144 17, 18, 1, 2, 3, 4, 5, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
145 2, 3, 4, 1, 2, 3, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
146 3, 1, 2, 3, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
147 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
148 1, 2, 1, 2, 1, 2, 1, 2,
986e461dc072 Initial revision
glantau
parents:
diff changeset
149 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
150 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
151 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
152
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
153 static const int8_t mpeg1_run[111] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
154 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
155 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
156 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
157 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
158 0, 0, 0, 0, 0, 0, 0, 0,
986e461dc072 Initial revision
glantau
parents:
diff changeset
159 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
160 1, 1, 1, 1, 1, 1, 1, 1,
986e461dc072 Initial revision
glantau
parents:
diff changeset
161 1, 1, 2, 2, 2, 2, 2, 3,
986e461dc072 Initial revision
glantau
parents:
diff changeset
162 3, 3, 3, 4, 4, 4, 5, 5,
986e461dc072 Initial revision
glantau
parents:
diff changeset
163 5, 6, 6, 6, 7, 7, 8, 8,
986e461dc072 Initial revision
glantau
parents:
diff changeset
164 9, 9, 10, 10, 11, 11, 12, 12,
986e461dc072 Initial revision
glantau
parents:
diff changeset
165 13, 13, 14, 14, 15, 15, 16, 16,
986e461dc072 Initial revision
glantau
parents:
diff changeset
166 17, 18, 19, 20, 21, 22, 23, 24,
986e461dc072 Initial revision
glantau
parents:
diff changeset
167 25, 26, 27, 28, 29, 30, 31,
986e461dc072 Initial revision
glantau
parents:
diff changeset
168 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
169
986e461dc072 Initial revision
glantau
parents:
diff changeset
170 static RLTable rl_mpeg1 = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
171 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
172 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
173 mpeg1_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
174 mpeg1_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
175 mpeg1_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
176 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
177
986e461dc072 Initial revision
glantau
parents:
diff changeset
178 static RLTable rl_mpeg2 = {
986e461dc072 Initial revision
glantau
parents:
diff changeset
179 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
180 111,
986e461dc072 Initial revision
glantau
parents:
diff changeset
181 mpeg2_vlc,
986e461dc072 Initial revision
glantau
parents:
diff changeset
182 mpeg1_run,
986e461dc072 Initial revision
glantau
parents:
diff changeset
183 mpeg1_level,
986e461dc072 Initial revision
glantau
parents:
diff changeset
184 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
185
1181
4c2339f3863a 100l (mpeg2 decoding fixed)
michaelni
parents: 1177
diff changeset
186 static const uint8_t mbAddrIncrTable[36][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
187 {0x1, 1},
986e461dc072 Initial revision
glantau
parents:
diff changeset
188 {0x3, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
189 {0x2, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
190 {0x3, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
191 {0x2, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
192 {0x3, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
193 {0x2, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
194 {0x7, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
195 {0x6, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
196 {0xb, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
197 {0xa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
198 {0x9, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
199 {0x8, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
200 {0x7, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
201 {0x6, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
202 {0x17, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
203 {0x16, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
204 {0x15, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
205 {0x14, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
206 {0x13, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
207 {0x12, 10},
986e461dc072 Initial revision
glantau
parents:
diff changeset
208 {0x23, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
209 {0x22, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
210 {0x21, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
211 {0x20, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
212 {0x1f, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
213 {0x1e, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
214 {0x1d, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
215 {0x1c, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
216 {0x1b, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
217 {0x1a, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
218 {0x19, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
219 {0x18, 11},
986e461dc072 Initial revision
glantau
parents:
diff changeset
220 {0x8, 11}, /* escape */
986e461dc072 Initial revision
glantau
parents:
diff changeset
221 {0xf, 11}, /* stuffing */
1181
4c2339f3863a 100l (mpeg2 decoding fixed)
michaelni
parents: 1177
diff changeset
222 {0x0, 8}, /* end (and 15 more 0 bits should follow) */
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
223 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
224
1853
9de89f579086 add vlc for cbp=0 that is valid in 422,444
iive
parents: 1837
diff changeset
225 static const uint8_t mbPatTable[64][2] = {
9de89f579086 add vlc for cbp=0 that is valid in 422,444
iive
parents: 1837
diff changeset
226 {0x1, 9},
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
227 {0xb, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
228 {0x9, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
229 {0xd, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
230 {0xd, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
231 {0x17, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
232 {0x13, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
233 {0x1f, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
234 {0xc, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
235 {0x16, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
236 {0x12, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
237 {0x1e, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
238 {0x13, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
239 {0x1b, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
240 {0x17, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
241 {0x13, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
242 {0xb, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
243 {0x15, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
244 {0x11, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
245 {0x1d, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
246 {0x11, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
247 {0x19, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
248 {0x15, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
249 {0x11, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
250 {0xf, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
251 {0xf, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
252 {0xd, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
253 {0x3, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
254 {0xf, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
255 {0xb, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
256 {0x7, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
257 {0x7, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
258 {0xa, 4},
986e461dc072 Initial revision
glantau
parents:
diff changeset
259 {0x14, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
260 {0x10, 7},
986e461dc072 Initial revision
glantau
parents:
diff changeset
261 {0x1c, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
262 {0xe, 6},
986e461dc072 Initial revision
glantau
parents:
diff changeset
263 {0xe, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
264 {0xc, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
265 {0x2, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
266 {0x10, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
267 {0x18, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
268 {0x14, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
269 {0x10, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
270 {0xe, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
271 {0xa, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
272 {0x6, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
273 {0x6, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
274 {0x12, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
275 {0x1a, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
276 {0x16, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
277 {0x12, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
278 {0xd, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
279 {0x9, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
280 {0x5, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
281 {0x5, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
282 {0xc, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
283 {0x8, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
284 {0x4, 8},
986e461dc072 Initial revision
glantau
parents:
diff changeset
285 {0x4, 9},
986e461dc072 Initial revision
glantau
parents:
diff changeset
286 {0x7, 3},
986e461dc072 Initial revision
glantau
parents:
diff changeset
287 {0xa, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
288 {0x8, 5},
986e461dc072 Initial revision
glantau
parents:
diff changeset
289 {0xc, 6}
986e461dc072 Initial revision
glantau
parents:
diff changeset
290 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
291
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: 1126
diff changeset
292 #define MB_TYPE_ZERO_MV 0x20000000
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: 1126
diff changeset
293 #define IS_ZERO_MV(a) ((a)&MB_TYPE_ZERO_MV)
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
294
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: 1126
diff changeset
295 static const uint8_t table_mb_ptype[7][2] = {
64
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
296 { 3, 5 }, // 0x01 MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
297 { 1, 2 }, // 0x02 MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
298 { 1, 3 }, // 0x08 MB_FOR
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
299 { 1, 1 }, // 0x0A MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
300 { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
301 { 1, 5 }, // 0x12 MB_QUANT|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
302 { 2, 5 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
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: 1126
diff changeset
303 };
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: 1126
diff changeset
304
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: 1126
diff changeset
305 static const uint32_t ptype2mb_type[7] = {
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: 1126
diff changeset
306 MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
307 MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
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: 1126
diff changeset
308 MB_TYPE_L0,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
309 MB_TYPE_L0 | MB_TYPE_CBP,
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: 1126
diff changeset
310 MB_TYPE_QUANT | MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
311 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP | MB_TYPE_ZERO_MV | MB_TYPE_16x16,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
312 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
313 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
314
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: 1126
diff changeset
315 static const uint8_t table_mb_btype[11][2] = {
64
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
316 { 3, 5 }, // 0x01 MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
317 { 2, 3 }, // 0x04 MB_BACK
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
318 { 3, 3 }, // 0x06 MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
319 { 2, 4 }, // 0x08 MB_FOR
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
320 { 3, 4 }, // 0x0A MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
321 { 2, 2 }, // 0x0C MB_FOR|MB_BACK
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
322 { 3, 2 }, // 0x0E MB_FOR|MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
323 { 1, 6 }, // 0x11 MB_QUANT|MB_INTRA
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
324 { 2, 6 }, // 0x16 MB_QUANT|MB_BACK|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
325 { 3, 6 }, // 0x1A MB_QUANT|MB_FOR|MB_PAT
5aa6292a1660 win32 fixes
glantau
parents: 39
diff changeset
326 { 2, 5 }, // 0x1E MB_QUANT|MB_FOR|MB_BACK|MB_PAT
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: 1126
diff changeset
327 };
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: 1126
diff changeset
328
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: 1126
diff changeset
329 static const uint32_t btype2mb_type[11] = {
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: 1126
diff changeset
330 MB_TYPE_INTRA,
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: 1126
diff changeset
331 MB_TYPE_L1,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
332 MB_TYPE_L1 | MB_TYPE_CBP,
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: 1126
diff changeset
333 MB_TYPE_L0,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
334 MB_TYPE_L0 | MB_TYPE_CBP,
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: 1126
diff changeset
335 MB_TYPE_L0L1,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
336 MB_TYPE_L0L1 | MB_TYPE_CBP,
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: 1126
diff changeset
337 MB_TYPE_QUANT | MB_TYPE_INTRA,
1655
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
338 MB_TYPE_QUANT | MB_TYPE_L1 | MB_TYPE_CBP,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
339 MB_TYPE_QUANT | MB_TYPE_L0 | MB_TYPE_CBP,
c92147a61d97 rv20 (h263) b frame decoding support
michael
parents: 1548
diff changeset
340 MB_TYPE_QUANT | MB_TYPE_L0L1 | MB_TYPE_CBP,
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
341 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
342
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
343 static const uint8_t mbMotionVectorTable[17][2] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
344 { 0x1, 1 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
345 { 0x1, 2 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
346 { 0x1, 3 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
347 { 0x1, 4 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
348 { 0x3, 6 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
349 { 0x5, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
350 { 0x4, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
351 { 0x3, 7 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
352 { 0xb, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
353 { 0xa, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
354 { 0x9, 9 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
355 { 0x11, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
356 { 0x10, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
357 { 0xf, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
358 { 0xe, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
359 { 0xd, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
360 { 0xc, 10 },
986e461dc072 Initial revision
glantau
parents:
diff changeset
361 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
362
3391
d60dc0a7dee6 staric frame_rate_tab -> non static ff_frame_rate_tab part of the cavs patch by (Stefan Gehrer stefan.gehrer gmx de)
michael
parents: 2979
diff changeset
363 const AVRational ff_frame_rate_tab[] = {
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
364 { 0, 0},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
365 {24000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
366 { 24, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
367 { 25, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
368 {30000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
369 { 30, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
370 { 50, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
371 {60000, 1001},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
372 { 60, 1},
1126
77ccf7fe3bd0 per context frame_rate_base, this should finally fix frame_rate related av sync issues
michaelni
parents: 1106
diff changeset
373 // Xing's 15fps: (9)
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
374 { 15, 1},
1126
77ccf7fe3bd0 per context frame_rate_base, this should finally fix frame_rate related av sync issues
michaelni
parents: 1106
diff changeset
375 // libmpeg3's "Unofficial economy rates": (10-13)
1837
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
376 { 5, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
377 { 10, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
378 { 12, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
379 { 15, 1},
a4d9e8b4e2f8 AVCodec.supported_framerates
michael
parents: 1721
diff changeset
380 { 0, 0},
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
381 };
986e461dc072 Initial revision
glantau
parents:
diff changeset
382
1064
b32afefe7d33 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 917
diff changeset
383 static const uint8_t non_linear_qscale[32] = {
0
986e461dc072 Initial revision
glantau
parents:
diff changeset
384 0, 1, 2, 3, 4, 5, 6, 7,
986e461dc072 Initial revision
glantau
parents:
diff changeset
385 8,10,12,14,16,18,20,22,
986e461dc072 Initial revision
glantau
parents:
diff changeset
386 24,28,32,36,40,44,48,52,
986e461dc072 Initial revision
glantau
parents:
diff changeset
387 56,64,72,80,88,96,104,112,
986e461dc072 Initial revision
glantau
parents:
diff changeset
388 };
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
389
4621
5464e5021a67 dummy support for mpeg2 non linear quant
bcoudurier
parents: 4180
diff changeset
390 static const uint8_t inv_non_linear_qscale[13] = {
5464e5021a67 dummy support for mpeg2 non linear quant
bcoudurier
parents: 4180
diff changeset
391 0, 2, 4, 6, 8,
5464e5021a67 dummy support for mpeg2 non linear quant
bcoudurier
parents: 4180
diff changeset
392 9,10,11,12,13,14,15,16,
5464e5021a67 dummy support for mpeg2 non linear quant
bcoudurier
parents: 4180
diff changeset
393 };
5464e5021a67 dummy support for mpeg2 non linear quant
bcoudurier
parents: 4180
diff changeset
394
2753
ba8ecddf5598 adding a few const
michael
parents: 1993
diff changeset
395 const uint8_t ff_mpeg1_dc_scale_table[128]={
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
396 // 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: 237
diff changeset
397 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
398 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
399 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
400 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
401 };
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
402
3556
6805c1e5507e Fix some "'static' is not at beginning of declaration" warnings.
diego
parents: 3391
diff changeset
403 static const uint8_t mpeg2_dc_scale_table1[128]={
1993
michael
parents: 1986
diff changeset
404 // 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
michael
parents: 1986
diff changeset
405 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
406 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
407 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
408 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
michael
parents: 1986
diff changeset
409 };
michael
parents: 1986
diff changeset
410
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
411 static const uint8_t mpeg2_dc_scale_table2[128]={
1993
michael
parents: 1986
diff changeset
412 // 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
michael
parents: 1986
diff changeset
413 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
michael
parents: 1986
diff changeset
417 };
michael
parents: 1986
diff changeset
418
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
419 static const uint8_t mpeg2_dc_scale_table3[128]={
1993
michael
parents: 1986
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
michael
parents: 1986
diff changeset
421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
michael
parents: 1986
diff changeset
425 };
michael
parents: 1986
diff changeset
426
2753
ba8ecddf5598 adding a few const
michael
parents: 1993
diff changeset
427 static const uint8_t *mpeg2_dc_scale_table[4]={
1993
michael
parents: 1986
diff changeset
428 ff_mpeg1_dc_scale_table,
michael
parents: 1986
diff changeset
429 mpeg2_dc_scale_table1,
michael
parents: 1986
diff changeset
430 mpeg2_dc_scale_table2,
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
431 mpeg2_dc_scale_table3,
1993
michael
parents: 1986
diff changeset
432 };
michael
parents: 1986
diff changeset
433
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
434 static const float mpeg1_aspect[16]={
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
435 0.0000,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
436 1.0000,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
437 0.6735,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
438 0.7031,
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2753
diff changeset
439
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
440 0.7615,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
441 0.8055,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
442 0.8437,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
443 0.8935,
498
0b4450c15067 dc scale simplification/optimization
michaelni
parents: 237
diff changeset
444
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
445 0.9157,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
446 0.9815,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
447 1.0255,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
448 1.0695,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
449
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
450 1.0950,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
451 1.1575,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
452 1.2015,
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
453 };
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
454
1548
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
455 static const AVRational mpeg2_aspect[16]={
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
456 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
457 {1,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
458 {4,3},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
459 {16,9},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
460 {221,100},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
461 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
462 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
463 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
464 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
465 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
466 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
467 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
468 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
469 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
470 {0,1},
dd544554ed42 AVRational
michael
parents: 1325
diff changeset
471 {0,1},
917
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
472 };
d3aa313dc373 mpeg1&2 aspect decoding
michaelni
parents: 706
diff changeset
473
1721
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
474 static const uint8_t svcd_scan_offset_placeholder[14]={
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
475 0x10, 0x0E,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
476 0x00, 0x80, 0x81,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
477 0x00, 0x80, 0x81,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
478 0xff, 0xff, 0xff,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
479 0xff, 0xff, 0xff,
8158e66f1f75 SVCD scan offset stuff
michael
parents: 1655
diff changeset
480 };
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
481
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5162
diff changeset
482 #endif