FFmpeg  4.4.6
av1.h
Go to the documentation of this file.
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).
28 typedef enum {
29  // 0 reserved.
38  // 9-14 reserved.
40 } AV1_OBU_Type;
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 {
69 };
70 
71 // Constants (section 3).
72 enum {
74 
77 
79  AV1_MAX_TILE_AREA = 4096 * 2304,
82 
87 
90 
96 
99 
102 
104 
112 
118 
122 
124 };
125 
126 
127 // The main colour configuration information uses the same ISO/IEC 23001-8
128 // (H.273) enums as FFmpeg does, so separate definitions are not required.
129 
130 // Chroma sample position.
131 enum {
133  AV1_CSP_VERTICAL = 1, // -> AVCHROMA_LOC_LEFT.
134  AV1_CSP_COLOCATED = 2, // -> AVCHROMA_LOC_TOPLEFT.
135 };
136 
137 // Scalability modes (section 6.7.5)
138 enum {
168 };
169 
170 // Frame Restoration types (section 6.10.15)
171 enum {
176 };
177 
178 #endif /* AVCODEC_AV1_H */
@ AV1_RESTORE_WIENER
Definition: av1.h:173
@ AV1_RESTORE_SWITCHABLE
Definition: av1.h:175
@ AV1_RESTORE_NONE
Definition: av1.h:172
@ AV1_RESTORE_SGRPROJ
Definition: av1.h:174
AV1_OBU_Type
Definition: av1.h:28
@ AV1_OBU_TILE_LIST
Definition: av1.h:37
@ AV1_OBU_TEMPORAL_DELIMITER
Definition: av1.h:31
@ AV1_OBU_METADATA
Definition: av1.h:34
@ AV1_OBU_TILE_GROUP
Definition: av1.h:33
@ AV1_OBU_REDUNDANT_FRAME_HEADER
Definition: av1.h:36
@ AV1_OBU_FRAME_HEADER
Definition: av1.h:32
@ AV1_OBU_PADDING
Definition: av1.h:39
@ AV1_OBU_FRAME
Definition: av1.h:35
@ AV1_OBU_SEQUENCE_HEADER
Definition: av1.h:30
@ AV1_REF_FRAME_LAST2
Definition: av1.h:63
@ AV1_REF_FRAME_LAST
Definition: av1.h:62
@ AV1_REF_FRAME_ALTREF2
Definition: av1.h:67
@ AV1_REF_FRAME_INTRA
Definition: av1.h:61
@ AV1_REF_FRAME_ALTREF
Definition: av1.h:68
@ AV1_REF_FRAME_BWDREF
Definition: av1.h:66
@ AV1_REF_FRAME_GOLDEN
Definition: av1.h:65
@ AV1_REF_FRAME_LAST3
Definition: av1.h:64
@ AV1_FRAME_KEY
Definition: av1.h:53
@ AV1_FRAME_INTER
Definition: av1.h:54
@ AV1_FRAME_INTRA_ONLY
Definition: av1.h:55
@ AV1_FRAME_SWITCH
Definition: av1.h:56
@ AV1_SCALABILITY_S2T3
Definition: av1.h:146
@ AV1_SCALABILITY_L2T1
Definition: av1.h:141
@ AV1_SCALABILITY_L3T2
Definition: av1.h:155
@ AV1_SCALABILITY_L4T7_KEY_SHIFT
Definition: av1.h:167
@ AV1_SCALABILITY_S2T1
Definition: av1.h:144
@ AV1_SCALABILITY_L2T3h
Definition: av1.h:149
@ AV1_SCALABILITY_L1T2
Definition: av1.h:139
@ AV1_SCALABILITY_L4T5_KEY_SHIFT
Definition: av1.h:166
@ AV1_SCALABILITY_S3T1
Definition: av1.h:157
@ AV1_SCALABILITY_L2T2
Definition: av1.h:142
@ AV1_SCALABILITY_L3T2_KEY
Definition: av1.h:160
@ AV1_SCALABILITY_L3T2_KEY_SHIFT
Definition: av1.h:164
@ AV1_SCALABILITY_S2T2
Definition: av1.h:145
@ AV1_SCALABILITY_S2T1h
Definition: av1.h:150
@ AV1_SCALABILITY_L4T7_KEY
Definition: av1.h:163
@ AV1_SCALABILITY_L3T1
Definition: av1.h:154
@ AV1_SCALABILITY_L3T3_KEY
Definition: av1.h:161
@ AV1_SCALABILITY_L2T3
Definition: av1.h:143
@ AV1_SCALABILITY_SS
Definition: av1.h:153
@ AV1_SCALABILITY_S3T3
Definition: av1.h:159
@ AV1_SCALABILITY_L3T3_KEY_SHIFT
Definition: av1.h:165
@ AV1_SCALABILITY_L4T5_KEY
Definition: av1.h:162
@ AV1_SCALABILITY_L2T2h
Definition: av1.h:148
@ AV1_SCALABILITY_L2T1h
Definition: av1.h:147
@ AV1_SCALABILITY_S3T2
Definition: av1.h:158
@ AV1_SCALABILITY_S2T2h
Definition: av1.h:151
@ AV1_SCALABILITY_L3T3
Definition: av1.h:156
@ AV1_SCALABILITY_L1T3
Definition: av1.h:140
@ AV1_SCALABILITY_S2T3h
Definition: av1.h:152
@ AV1_METADATA_TYPE_SCALABILITY
Definition: av1.h:46
@ AV1_METADATA_TYPE_HDR_MDCV
Definition: av1.h:45
@ AV1_METADATA_TYPE_TIMECODE
Definition: av1.h:48
@ AV1_METADATA_TYPE_ITUT_T35
Definition: av1.h:47
@ AV1_METADATA_TYPE_HDR_CLL
Definition: av1.h:44
@ AV1_CSP_COLOCATED
Definition: av1.h:134
@ AV1_CSP_VERTICAL
Definition: av1.h:133
@ AV1_CSP_UNKNOWN
Definition: av1.h:132
@ AV1_WARP_MODEL_ROTZOOM
Definition: av1.h:115
@ AV1_SUPERRES_DENOM_MIN
Definition: av1.h:101
@ AV1_GM_TRANS_ONLY_PREC_BITS
Definition: av1.h:108
@ AV1_WARP_MODEL_IDENTITY
Definition: av1.h:113
@ AV1_SEG_LVL_MAX
Definition: av1.h:89
@ AV1_DIV_LUT_PREC_BITS
Definition: av1.h:120
@ AV1_SELECT_SCREEN_CONTENT_TOOLS
Definition: av1.h:97
@ AV1_MAX_TILE_WIDTH
Definition: av1.h:78
@ AV1_SEG_LVL_GLOBAL_MV
Definition: av1.h:95
@ AV1_PRIMARY_REF_NONE
Definition: av1.h:86
@ AV1_MI_SIZE
Definition: av1.h:76
@ AV1_SEG_LVL_ALT_LF_Y_V
Definition: av1.h:92
@ AV1_DIV_LUT_BITS
Definition: av1.h:119
@ AV1_SUPERRES_NUM
Definition: av1.h:100
@ AV1_MAX_OPERATING_POINTS
Definition: av1.h:73
@ AV1_NUM_REF_FRAMES
Definition: av1.h:83
@ AV1_INTERPOLATION_FILTER_SWITCHABLE
Definition: av1.h:103
@ AV1_GM_ALPHA_PREC_BITS
Definition: av1.h:106
@ AV1_MAX_SB_SIZE
Definition: av1.h:75
@ AV1_WARPEDMODEL_PREC_BITS
Definition: av1.h:111
@ AV1_MAX_LOOP_FILTER
Definition: av1.h:123
@ AV1_MAX_TILE_COLS
Definition: av1.h:81
@ AV1_SEG_LVL_REF_FRAME
Definition: av1.h:93
@ AV1_MAX_SEGMENTS
Definition: av1.h:88
@ AV1_WARP_PARAM_REDUCE_BITS
Definition: av1.h:117
@ AV1_SELECT_INTEGER_MV
Definition: av1.h:98
@ AV1_GM_ABS_ALPHA_BITS
Definition: av1.h:105
@ AV1_REFS_PER_FRAME
Definition: av1.h:84
@ AV1_TOTAL_REFS_PER_FRAME
Definition: av1.h:85
@ AV1_DIV_LUT_NUM
Definition: av1.h:121
@ AV1_WARP_MODEL_TRANSLATION
Definition: av1.h:114
@ AV1_MAX_TILE_ROWS
Definition: av1.h:80
@ AV1_SEG_LVL_SKIP
Definition: av1.h:94
@ AV1_SEG_LVL_ALT_Q
Definition: av1.h:91
@ AV1_GM_ABS_TRANS_BITS
Definition: av1.h:109
@ AV1_GM_ABS_TRANS_ONLY_BITS
Definition: av1.h:107
@ AV1_MAX_TILE_AREA
Definition: av1.h:79
@ AV1_WARP_MODEL_AFFINE
Definition: av1.h:116
@ AV1_GM_TRANS_PREC_BITS
Definition: av1.h:110