1 /*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19 /**
20 * @file
21 * AV1 common definitions
22 */
23
24 #ifndef AVCODEC_AV1_H
25 #define AVCODEC_AV1_H
26
27 // OBU types (section 6.2.2).
29 // 0 reserved.
38 // 9-14 reserved.
41
42 // Metadata types (section 6.7.1).
43 enum {
49 };
50
51 // Frame types (section 6.8.2).
52 enum {
57 };
58
59 // Reference frames (section 6.10.24).
60 enum {
70 };
71
72 // Constants (section 3).
73 enum {
75
78
83
88
91
97
100
103
105
113
119
123
125 };
126
127
128 // The main colour configuration information uses the same ISO/IEC 23001-8
129 // (H.273) enums as FFmpeg does, so separate definitions are not required.
130
131 // Chroma sample position.
132 enum {
136 };
137
138 // Scalability modes (section 6.7.5)
139 enum {
169 };
170
171 // Frame Restoration types (section 6.10.15)
172 enum {
177 };
178
179 // TX mode (section 6.8.21)
180 enum {
184 };
185
186 // Sequence Headers are actually unbounded because one can use
187 // an arbitrary number of leading zeroes when encoding via uvlc.
188 // The following estimate is based around using the lowest number
189 // of bits for uvlc encoding.
190 #define AV1_SANE_SEQUENCE_HEADER_MAX_BITS 3138
191
192 #endif /* AVCODEC_AV1_H */