| #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 |