|
| 1 | +#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ |
| 2 | +#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 |
| 3 | + |
| 4 | +/* |
| 5 | +** Copyright 2015-2024 The Khronos Group Inc. |
| 6 | +** |
| 7 | +** SPDX-License-Identifier: Apache-2.0 |
| 8 | +*/ |
| 9 | + |
| 10 | +/* |
| 11 | +** This header is generated from the Khronos Vulkan XML API Registry. |
| 12 | +** |
| 13 | +*/ |
| 14 | + |
| 15 | + |
| 16 | +#ifdef __cplusplus |
| 17 | +extern "C" { |
| 18 | +#endif |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | +// vulkan_video_codec_av1std is a preprocessor guard. Do not pass it to API calls. |
| 23 | +#define vulkan_video_codec_av1std 1 |
| 24 | +#include "vulkan_video_codecs_common.h" |
| 25 | +#define STD_VIDEO_AV1_NUM_REF_FRAMES 8 |
| 26 | +#define STD_VIDEO_AV1_REFS_PER_FRAME 7 |
| 27 | +#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8 |
| 28 | +#define STD_VIDEO_AV1_MAX_TILE_COLS 64 |
| 29 | +#define STD_VIDEO_AV1_MAX_TILE_ROWS 64 |
| 30 | +#define STD_VIDEO_AV1_MAX_SEGMENTS 8 |
| 31 | +#define STD_VIDEO_AV1_SEG_LVL_MAX 8 |
| 32 | +#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7 |
| 33 | +#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2 |
| 34 | +#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2 |
| 35 | +#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2 |
| 36 | +#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4 |
| 37 | +#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2 |
| 38 | +#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8 |
| 39 | +#define STD_VIDEO_AV1_MAX_NUM_PLANES 3 |
| 40 | +#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6 |
| 41 | +#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14 |
| 42 | +#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10 |
| 43 | +#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10 |
| 44 | +#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24 |
| 45 | +#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25 |
| 46 | + |
| 47 | +typedef enum StdVideoAV1Profile { |
| 48 | + STD_VIDEO_AV1_PROFILE_MAIN = 0, |
| 49 | + STD_VIDEO_AV1_PROFILE_HIGH = 1, |
| 50 | + STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2, |
| 51 | + STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF, |
| 52 | + STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF |
| 53 | +} StdVideoAV1Profile; |
| 54 | + |
| 55 | +typedef enum StdVideoAV1Level { |
| 56 | + STD_VIDEO_AV1_LEVEL_2_0 = 0, |
| 57 | + STD_VIDEO_AV1_LEVEL_2_1 = 1, |
| 58 | + STD_VIDEO_AV1_LEVEL_2_2 = 2, |
| 59 | + STD_VIDEO_AV1_LEVEL_2_3 = 3, |
| 60 | + STD_VIDEO_AV1_LEVEL_3_0 = 4, |
| 61 | + STD_VIDEO_AV1_LEVEL_3_1 = 5, |
| 62 | + STD_VIDEO_AV1_LEVEL_3_2 = 6, |
| 63 | + STD_VIDEO_AV1_LEVEL_3_3 = 7, |
| 64 | + STD_VIDEO_AV1_LEVEL_4_0 = 8, |
| 65 | + STD_VIDEO_AV1_LEVEL_4_1 = 9, |
| 66 | + STD_VIDEO_AV1_LEVEL_4_2 = 10, |
| 67 | + STD_VIDEO_AV1_LEVEL_4_3 = 11, |
| 68 | + STD_VIDEO_AV1_LEVEL_5_0 = 12, |
| 69 | + STD_VIDEO_AV1_LEVEL_5_1 = 13, |
| 70 | + STD_VIDEO_AV1_LEVEL_5_2 = 14, |
| 71 | + STD_VIDEO_AV1_LEVEL_5_3 = 15, |
| 72 | + STD_VIDEO_AV1_LEVEL_6_0 = 16, |
| 73 | + STD_VIDEO_AV1_LEVEL_6_1 = 17, |
| 74 | + STD_VIDEO_AV1_LEVEL_6_2 = 18, |
| 75 | + STD_VIDEO_AV1_LEVEL_6_3 = 19, |
| 76 | + STD_VIDEO_AV1_LEVEL_7_0 = 20, |
| 77 | + STD_VIDEO_AV1_LEVEL_7_1 = 21, |
| 78 | + STD_VIDEO_AV1_LEVEL_7_2 = 22, |
| 79 | + STD_VIDEO_AV1_LEVEL_7_3 = 23, |
| 80 | + STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF, |
| 81 | + STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF |
| 82 | +} StdVideoAV1Level; |
| 83 | + |
| 84 | +typedef enum StdVideoAV1FrameType { |
| 85 | + STD_VIDEO_AV1_FRAME_TYPE_KEY = 0, |
| 86 | + STD_VIDEO_AV1_FRAME_TYPE_INTER = 1, |
| 87 | + STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2, |
| 88 | + STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3, |
| 89 | + STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF, |
| 90 | + STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF |
| 91 | +} StdVideoAV1FrameType; |
| 92 | + |
| 93 | +typedef enum StdVideoAV1ReferenceName { |
| 94 | + STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0, |
| 95 | + STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1, |
| 96 | + STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2, |
| 97 | + STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3, |
| 98 | + STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4, |
| 99 | + STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5, |
| 100 | + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6, |
| 101 | + STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7, |
| 102 | + STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF, |
| 103 | + STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF |
| 104 | +} StdVideoAV1ReferenceName; |
| 105 | + |
| 106 | +typedef enum StdVideoAV1InterpolationFilter { |
| 107 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0, |
| 108 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, |
| 109 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, |
| 110 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3, |
| 111 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4, |
| 112 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, |
| 113 | + STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF |
| 114 | +} StdVideoAV1InterpolationFilter; |
| 115 | + |
| 116 | +typedef enum StdVideoAV1TxMode { |
| 117 | + STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0, |
| 118 | + STD_VIDEO_AV1_TX_MODE_LARGEST = 1, |
| 119 | + STD_VIDEO_AV1_TX_MODE_SELECT = 2, |
| 120 | + STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF, |
| 121 | + STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF |
| 122 | +} StdVideoAV1TxMode; |
| 123 | + |
| 124 | +typedef enum StdVideoAV1FrameRestorationType { |
| 125 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0, |
| 126 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1, |
| 127 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2, |
| 128 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3, |
| 129 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF, |
| 130 | + STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF |
| 131 | +} StdVideoAV1FrameRestorationType; |
| 132 | + |
| 133 | +typedef enum StdVideoAV1ColorPrimaries { |
| 134 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1, |
| 135 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2, |
| 136 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4, |
| 137 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5, |
| 138 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6, |
| 139 | + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7, |
| 140 | + STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8, |
| 141 | + STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9, |
| 142 | + STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10, |
| 143 | + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11, |
| 144 | + STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12, |
| 145 | + STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22, |
| 146 | + STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF, |
| 147 | + STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF |
| 148 | +} StdVideoAV1ColorPrimaries; |
| 149 | + |
| 150 | +typedef enum StdVideoAV1TransferCharacteristics { |
| 151 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0, |
| 152 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1, |
| 153 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2, |
| 154 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3, |
| 155 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4, |
| 156 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5, |
| 157 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6, |
| 158 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7, |
| 159 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8, |
| 160 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9, |
| 161 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10, |
| 162 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11, |
| 163 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12, |
| 164 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13, |
| 165 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14, |
| 166 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15, |
| 167 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16, |
| 168 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17, |
| 169 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18, |
| 170 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF, |
| 171 | + STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF |
| 172 | +} StdVideoAV1TransferCharacteristics; |
| 173 | + |
| 174 | +typedef enum StdVideoAV1MatrixCoefficients { |
| 175 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0, |
| 176 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1, |
| 177 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2, |
| 178 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3, |
| 179 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4, |
| 180 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5, |
| 181 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6, |
| 182 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7, |
| 183 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8, |
| 184 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9, |
| 185 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10, |
| 186 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11, |
| 187 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12, |
| 188 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13, |
| 189 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14, |
| 190 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF, |
| 191 | + STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF |
| 192 | +} StdVideoAV1MatrixCoefficients; |
| 193 | + |
| 194 | +typedef enum StdVideoAV1ChromaSamplePosition { |
| 195 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0, |
| 196 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1, |
| 197 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2, |
| 198 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3, |
| 199 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF, |
| 200 | + STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF |
| 201 | +} StdVideoAV1ChromaSamplePosition; |
| 202 | +typedef struct StdVideoAV1ColorConfigFlags { |
| 203 | + uint32_t mono_chrome : 1; |
| 204 | + uint32_t color_range : 1; |
| 205 | + uint32_t separate_uv_delta_q : 1; |
| 206 | + uint32_t color_description_present_flag : 1; |
| 207 | + uint32_t reserved : 28; |
| 208 | +} StdVideoAV1ColorConfigFlags; |
| 209 | + |
| 210 | +typedef struct StdVideoAV1ColorConfig { |
| 211 | + StdVideoAV1ColorConfigFlags flags; |
| 212 | + uint8_t BitDepth; |
| 213 | + uint8_t subsampling_x; |
| 214 | + uint8_t subsampling_y; |
| 215 | + uint8_t reserved1; |
| 216 | + StdVideoAV1ColorPrimaries color_primaries; |
| 217 | + StdVideoAV1TransferCharacteristics transfer_characteristics; |
| 218 | + StdVideoAV1MatrixCoefficients matrix_coefficients; |
| 219 | + StdVideoAV1ChromaSamplePosition chroma_sample_position; |
| 220 | +} StdVideoAV1ColorConfig; |
| 221 | + |
| 222 | +typedef struct StdVideoAV1TimingInfoFlags { |
| 223 | + uint32_t equal_picture_interval : 1; |
| 224 | + uint32_t reserved : 31; |
| 225 | +} StdVideoAV1TimingInfoFlags; |
| 226 | + |
| 227 | +typedef struct StdVideoAV1TimingInfo { |
| 228 | + StdVideoAV1TimingInfoFlags flags; |
| 229 | + uint32_t num_units_in_display_tick; |
| 230 | + uint32_t time_scale; |
| 231 | + uint32_t num_ticks_per_picture_minus_1; |
| 232 | +} StdVideoAV1TimingInfo; |
| 233 | + |
| 234 | +typedef struct StdVideoAV1LoopFilterFlags { |
| 235 | + uint32_t loop_filter_delta_enabled : 1; |
| 236 | + uint32_t loop_filter_delta_update : 1; |
| 237 | + uint32_t reserved : 30; |
| 238 | +} StdVideoAV1LoopFilterFlags; |
| 239 | + |
| 240 | +typedef struct StdVideoAV1LoopFilter { |
| 241 | + StdVideoAV1LoopFilterFlags flags; |
| 242 | + uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS]; |
| 243 | + uint8_t loop_filter_sharpness; |
| 244 | + uint8_t update_ref_delta; |
| 245 | + int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME]; |
| 246 | + uint8_t update_mode_delta; |
| 247 | + int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS]; |
| 248 | +} StdVideoAV1LoopFilter; |
| 249 | + |
| 250 | +typedef struct StdVideoAV1QuantizationFlags { |
| 251 | + uint32_t using_qmatrix : 1; |
| 252 | + uint32_t diff_uv_delta : 1; |
| 253 | + uint32_t reserved : 30; |
| 254 | +} StdVideoAV1QuantizationFlags; |
| 255 | + |
| 256 | +typedef struct StdVideoAV1Quantization { |
| 257 | + StdVideoAV1QuantizationFlags flags; |
| 258 | + uint8_t base_q_idx; |
| 259 | + int8_t DeltaQYDc; |
| 260 | + int8_t DeltaQUDc; |
| 261 | + int8_t DeltaQUAc; |
| 262 | + int8_t DeltaQVDc; |
| 263 | + int8_t DeltaQVAc; |
| 264 | + uint8_t qm_y; |
| 265 | + uint8_t qm_u; |
| 266 | + uint8_t qm_v; |
| 267 | +} StdVideoAV1Quantization; |
| 268 | + |
| 269 | +typedef struct StdVideoAV1Segmentation { |
| 270 | + uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS]; |
| 271 | + int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX]; |
| 272 | +} StdVideoAV1Segmentation; |
| 273 | + |
| 274 | +typedef struct StdVideoAV1TileInfoFlags { |
| 275 | + uint32_t uniform_tile_spacing_flag : 1; |
| 276 | + uint32_t reserved : 31; |
| 277 | +} StdVideoAV1TileInfoFlags; |
| 278 | + |
| 279 | +typedef struct StdVideoAV1TileInfo { |
| 280 | + StdVideoAV1TileInfoFlags flags; |
| 281 | + uint8_t TileCols; |
| 282 | + uint8_t TileRows; |
| 283 | + uint16_t context_update_tile_id; |
| 284 | + uint8_t tile_size_bytes_minus_1; |
| 285 | + uint8_t reserved1[7]; |
| 286 | + const uint16_t* pMiColStarts; |
| 287 | + const uint16_t* pMiRowStarts; |
| 288 | + const uint16_t* pWidthInSbsMinus1; |
| 289 | + const uint16_t* pHeightInSbsMinus1; |
| 290 | +} StdVideoAV1TileInfo; |
| 291 | + |
| 292 | +typedef struct StdVideoAV1CDEF { |
| 293 | + uint8_t cdef_damping_minus_3; |
| 294 | + uint8_t cdef_bits; |
| 295 | + uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 296 | + uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 297 | + uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 298 | + uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS]; |
| 299 | +} StdVideoAV1CDEF; |
| 300 | + |
| 301 | +typedef struct StdVideoAV1LoopRestoration { |
| 302 | + StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES]; |
| 303 | + uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES]; |
| 304 | +} StdVideoAV1LoopRestoration; |
| 305 | + |
| 306 | +typedef struct StdVideoAV1GlobalMotion { |
| 307 | + uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES]; |
| 308 | + int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS]; |
| 309 | +} StdVideoAV1GlobalMotion; |
| 310 | + |
| 311 | +typedef struct StdVideoAV1FilmGrainFlags { |
| 312 | + uint32_t chroma_scaling_from_luma : 1; |
| 313 | + uint32_t overlap_flag : 1; |
| 314 | + uint32_t clip_to_restricted_range : 1; |
| 315 | + uint32_t update_grain : 1; |
| 316 | + uint32_t reserved : 28; |
| 317 | +} StdVideoAV1FilmGrainFlags; |
| 318 | + |
| 319 | +typedef struct StdVideoAV1FilmGrain { |
| 320 | + StdVideoAV1FilmGrainFlags flags; |
| 321 | + uint8_t grain_scaling_minus_8; |
| 322 | + uint8_t ar_coeff_lag; |
| 323 | + uint8_t ar_coeff_shift_minus_6; |
| 324 | + uint8_t grain_scale_shift; |
| 325 | + uint16_t grain_seed; |
| 326 | + uint8_t film_grain_params_ref_idx; |
| 327 | + uint8_t num_y_points; |
| 328 | + uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; |
| 329 | + uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS]; |
| 330 | + uint8_t num_cb_points; |
| 331 | + uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; |
| 332 | + uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS]; |
| 333 | + uint8_t num_cr_points; |
| 334 | + uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; |
| 335 | + uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS]; |
| 336 | + int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA]; |
| 337 | + int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; |
| 338 | + int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA]; |
| 339 | + uint8_t cb_mult; |
| 340 | + uint8_t cb_luma_mult; |
| 341 | + uint16_t cb_offset; |
| 342 | + uint8_t cr_mult; |
| 343 | + uint8_t cr_luma_mult; |
| 344 | + uint16_t cr_offset; |
| 345 | +} StdVideoAV1FilmGrain; |
| 346 | + |
| 347 | +typedef struct StdVideoAV1SequenceHeaderFlags { |
| 348 | + uint32_t still_picture : 1; |
| 349 | + uint32_t reduced_still_picture_header : 1; |
| 350 | + uint32_t use_128x128_superblock : 1; |
| 351 | + uint32_t enable_filter_intra : 1; |
| 352 | + uint32_t enable_intra_edge_filter : 1; |
| 353 | + uint32_t enable_interintra_compound : 1; |
| 354 | + uint32_t enable_masked_compound : 1; |
| 355 | + uint32_t enable_warped_motion : 1; |
| 356 | + uint32_t enable_dual_filter : 1; |
| 357 | + uint32_t enable_order_hint : 1; |
| 358 | + uint32_t enable_jnt_comp : 1; |
| 359 | + uint32_t enable_ref_frame_mvs : 1; |
| 360 | + uint32_t frame_id_numbers_present_flag : 1; |
| 361 | + uint32_t enable_superres : 1; |
| 362 | + uint32_t enable_cdef : 1; |
| 363 | + uint32_t enable_restoration : 1; |
| 364 | + uint32_t film_grain_params_present : 1; |
| 365 | + uint32_t timing_info_present_flag : 1; |
| 366 | + uint32_t initial_display_delay_present_flag : 1; |
| 367 | + uint32_t reserved : 13; |
| 368 | +} StdVideoAV1SequenceHeaderFlags; |
| 369 | + |
| 370 | +typedef struct StdVideoAV1SequenceHeader { |
| 371 | + StdVideoAV1SequenceHeaderFlags flags; |
| 372 | + StdVideoAV1Profile seq_profile; |
| 373 | + uint8_t frame_width_bits_minus_1; |
| 374 | + uint8_t frame_height_bits_minus_1; |
| 375 | + uint16_t max_frame_width_minus_1; |
| 376 | + uint16_t max_frame_height_minus_1; |
| 377 | + uint8_t delta_frame_id_length_minus_2; |
| 378 | + uint8_t additional_frame_id_length_minus_1; |
| 379 | + uint8_t order_hint_bits_minus_1; |
| 380 | + uint8_t seq_force_integer_mv; |
| 381 | + uint8_t seq_force_screen_content_tools; |
| 382 | + uint8_t reserved1[5]; |
| 383 | + const StdVideoAV1ColorConfig* pColorConfig; |
| 384 | + const StdVideoAV1TimingInfo* pTimingInfo; |
| 385 | +} StdVideoAV1SequenceHeader; |
| 386 | + |
| 387 | + |
| 388 | +#ifdef __cplusplus |
| 389 | +} |
| 390 | +#endif |
| 391 | + |
| 392 | +#endif |
0 commit comments