| #ifndef VULKAN_VIDEO_CODEC_VP9STD_H_ | |
| #define VULKAN_VIDEO_CODEC_VP9STD_H_ 1 | |
| /* | |
| ** Copyright 2015-2025 The Khronos Group Inc. | |
| ** | |
| ** SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| /* | |
| ** This header is generated from the Khronos Vulkan XML API Registry. | |
| ** | |
| */ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| // vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls. | |
| #define vulkan_video_codec_vp9std 1 | |
| #include "vulkan_video_codecs_common.h" | |
| #define STD_VIDEO_VP9_NUM_REF_FRAMES 8 | |
| #define STD_VIDEO_VP9_REFS_PER_FRAME 3 | |
| #define STD_VIDEO_VP9_MAX_REF_FRAMES 4 | |
| #define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2 | |
| #define STD_VIDEO_VP9_MAX_SEGMENTS 8 | |
| #define STD_VIDEO_VP9_SEG_LVL_MAX 4 | |
| #define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7 | |
| #define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3 | |
| typedef enum StdVideoVP9Profile { | |
| STD_VIDEO_VP9_PROFILE_0 = 0, | |
| STD_VIDEO_VP9_PROFILE_1 = 1, | |
| STD_VIDEO_VP9_PROFILE_2 = 2, | |
| STD_VIDEO_VP9_PROFILE_3 = 3, | |
| STD_VIDEO_VP9_PROFILE_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_PROFILE_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9Profile; | |
| typedef enum StdVideoVP9Level { | |
| STD_VIDEO_VP9_LEVEL_1_0 = 0, | |
| STD_VIDEO_VP9_LEVEL_1_1 = 1, | |
| STD_VIDEO_VP9_LEVEL_2_0 = 2, | |
| STD_VIDEO_VP9_LEVEL_2_1 = 3, | |
| STD_VIDEO_VP9_LEVEL_3_0 = 4, | |
| STD_VIDEO_VP9_LEVEL_3_1 = 5, | |
| STD_VIDEO_VP9_LEVEL_4_0 = 6, | |
| STD_VIDEO_VP9_LEVEL_4_1 = 7, | |
| STD_VIDEO_VP9_LEVEL_5_0 = 8, | |
| STD_VIDEO_VP9_LEVEL_5_1 = 9, | |
| STD_VIDEO_VP9_LEVEL_5_2 = 10, | |
| STD_VIDEO_VP9_LEVEL_6_0 = 11, | |
| STD_VIDEO_VP9_LEVEL_6_1 = 12, | |
| STD_VIDEO_VP9_LEVEL_6_2 = 13, | |
| STD_VIDEO_VP9_LEVEL_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_LEVEL_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9Level; | |
| typedef enum StdVideoVP9FrameType { | |
| STD_VIDEO_VP9_FRAME_TYPE_KEY = 0, | |
| STD_VIDEO_VP9_FRAME_TYPE_NON_KEY = 1, | |
| STD_VIDEO_VP9_FRAME_TYPE_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9FrameType; | |
| typedef enum StdVideoVP9ReferenceName { | |
| STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME = 0, | |
| STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME = 1, | |
| STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME = 2, | |
| STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME = 3, | |
| STD_VIDEO_VP9_REFERENCE_NAME_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9ReferenceName; | |
| typedef enum StdVideoVP9InterpolationFilter { | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP = 0, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR = 3, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE = 4, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9InterpolationFilter; | |
| typedef enum StdVideoVP9ColorSpace { | |
| STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN = 0, | |
| STD_VIDEO_VP9_COLOR_SPACE_BT_601 = 1, | |
| STD_VIDEO_VP9_COLOR_SPACE_BT_709 = 2, | |
| STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170 = 3, | |
| STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240 = 4, | |
| STD_VIDEO_VP9_COLOR_SPACE_BT_2020 = 5, | |
| STD_VIDEO_VP9_COLOR_SPACE_RESERVED = 6, | |
| STD_VIDEO_VP9_COLOR_SPACE_RGB = 7, | |
| STD_VIDEO_VP9_COLOR_SPACE_INVALID = 0x7FFFFFFF, | |
| STD_VIDEO_VP9_COLOR_SPACE_MAX_ENUM = 0x7FFFFFFF | |
| } StdVideoVP9ColorSpace; | |
| typedef struct StdVideoVP9ColorConfigFlags { | |
| uint32_t color_range : 1; | |
| uint32_t reserved : 31; | |
| } StdVideoVP9ColorConfigFlags; | |
| typedef struct StdVideoVP9ColorConfig { | |
| StdVideoVP9ColorConfigFlags flags; | |
| uint8_t BitDepth; | |
| uint8_t subsampling_x; | |
| uint8_t subsampling_y; | |
| uint8_t reserved1; | |
| StdVideoVP9ColorSpace color_space; | |
| } StdVideoVP9ColorConfig; | |
| typedef struct StdVideoVP9LoopFilterFlags { | |
| uint32_t loop_filter_delta_enabled : 1; | |
| uint32_t loop_filter_delta_update : 1; | |
| uint32_t reserved : 30; | |
| } StdVideoVP9LoopFilterFlags; | |
| typedef struct StdVideoVP9LoopFilter { | |
| StdVideoVP9LoopFilterFlags flags; | |
| uint8_t loop_filter_level; | |
| uint8_t loop_filter_sharpness; | |
| uint8_t update_ref_delta; | |
| int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES]; | |
| uint8_t update_mode_delta; | |
| int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS]; | |
| } StdVideoVP9LoopFilter; | |
| typedef struct StdVideoVP9SegmentationFlags { | |
| uint32_t segmentation_update_map : 1; | |
| uint32_t segmentation_temporal_update : 1; | |
| uint32_t segmentation_update_data : 1; | |
| uint32_t segmentation_abs_or_delta_update : 1; | |
| uint32_t reserved : 28; | |
| } StdVideoVP9SegmentationFlags; | |
| typedef struct StdVideoVP9Segmentation { | |
| StdVideoVP9SegmentationFlags flags; | |
| uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS]; | |
| uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB]; | |
| uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS]; | |
| int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX]; | |
| } StdVideoVP9Segmentation; | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |