Path: blob/master/dep/vulkan/include/vk_video/vulkan_video_codec_vp9std.h
7200 views
#ifndef VULKAN_VIDEO_CODEC_VP9STD_H_1#define VULKAN_VIDEO_CODEC_VP9STD_H_ 123/*4** Copyright 2015-2025 The Khronos Group Inc.5**6** SPDX-License-Identifier: Apache-2.07*/89/*10** This header is generated from the Khronos Vulkan XML API Registry.11**12*/131415#ifdef __cplusplus16extern "C" {17#endif18192021// vulkan_video_codec_vp9std is a preprocessor guard. Do not pass it to API calls.22#define vulkan_video_codec_vp9std 123#include "vulkan_video_codecs_common.h"24#define STD_VIDEO_VP9_NUM_REF_FRAMES 8U25#define STD_VIDEO_VP9_REFS_PER_FRAME 3U26#define STD_VIDEO_VP9_MAX_REF_FRAMES 4U27#define STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS 2U28#define STD_VIDEO_VP9_MAX_SEGMENTS 8U29#define STD_VIDEO_VP9_SEG_LVL_MAX 4U30#define STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS 7U31#define STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB 3U3233typedef enum StdVideoVP9Profile {34STD_VIDEO_VP9_PROFILE_0 = 0,35STD_VIDEO_VP9_PROFILE_1 = 1,36STD_VIDEO_VP9_PROFILE_2 = 2,37STD_VIDEO_VP9_PROFILE_3 = 3,38STD_VIDEO_VP9_PROFILE_INVALID = 0x7FFFFFFF,39STD_VIDEO_VP9_PROFILE_MAX_ENUM = 0x7FFFFFFF40} StdVideoVP9Profile;4142typedef enum StdVideoVP9Level {43STD_VIDEO_VP9_LEVEL_1_0 = 0,44STD_VIDEO_VP9_LEVEL_1_1 = 1,45STD_VIDEO_VP9_LEVEL_2_0 = 2,46STD_VIDEO_VP9_LEVEL_2_1 = 3,47STD_VIDEO_VP9_LEVEL_3_0 = 4,48STD_VIDEO_VP9_LEVEL_3_1 = 5,49STD_VIDEO_VP9_LEVEL_4_0 = 6,50STD_VIDEO_VP9_LEVEL_4_1 = 7,51STD_VIDEO_VP9_LEVEL_5_0 = 8,52STD_VIDEO_VP9_LEVEL_5_1 = 9,53STD_VIDEO_VP9_LEVEL_5_2 = 10,54STD_VIDEO_VP9_LEVEL_6_0 = 11,55STD_VIDEO_VP9_LEVEL_6_1 = 12,56STD_VIDEO_VP9_LEVEL_6_2 = 13,57STD_VIDEO_VP9_LEVEL_INVALID = 0x7FFFFFFF,58STD_VIDEO_VP9_LEVEL_MAX_ENUM = 0x7FFFFFFF59} StdVideoVP9Level;6061typedef enum StdVideoVP9FrameType {62STD_VIDEO_VP9_FRAME_TYPE_KEY = 0,63STD_VIDEO_VP9_FRAME_TYPE_NON_KEY = 1,64STD_VIDEO_VP9_FRAME_TYPE_INVALID = 0x7FFFFFFF,65STD_VIDEO_VP9_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF66} StdVideoVP9FrameType;6768typedef enum StdVideoVP9ReferenceName {69STD_VIDEO_VP9_REFERENCE_NAME_INTRA_FRAME = 0,70STD_VIDEO_VP9_REFERENCE_NAME_LAST_FRAME = 1,71STD_VIDEO_VP9_REFERENCE_NAME_GOLDEN_FRAME = 2,72STD_VIDEO_VP9_REFERENCE_NAME_ALTREF_FRAME = 3,73STD_VIDEO_VP9_REFERENCE_NAME_INVALID = 0x7FFFFFFF,74STD_VIDEO_VP9_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF75} StdVideoVP9ReferenceName;7677typedef enum StdVideoVP9InterpolationFilter {78STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP = 0,79STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,80STD_VIDEO_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,81STD_VIDEO_VP9_INTERPOLATION_FILTER_BILINEAR = 3,82STD_VIDEO_VP9_INTERPOLATION_FILTER_SWITCHABLE = 4,83STD_VIDEO_VP9_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,84STD_VIDEO_VP9_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF85} StdVideoVP9InterpolationFilter;8687typedef enum StdVideoVP9ColorSpace {88STD_VIDEO_VP9_COLOR_SPACE_UNKNOWN = 0,89STD_VIDEO_VP9_COLOR_SPACE_BT_601 = 1,90STD_VIDEO_VP9_COLOR_SPACE_BT_709 = 2,91STD_VIDEO_VP9_COLOR_SPACE_SMPTE_170 = 3,92STD_VIDEO_VP9_COLOR_SPACE_SMPTE_240 = 4,93STD_VIDEO_VP9_COLOR_SPACE_BT_2020 = 5,94STD_VIDEO_VP9_COLOR_SPACE_RESERVED = 6,95STD_VIDEO_VP9_COLOR_SPACE_RGB = 7,96STD_VIDEO_VP9_COLOR_SPACE_INVALID = 0x7FFFFFFF,97STD_VIDEO_VP9_COLOR_SPACE_MAX_ENUM = 0x7FFFFFFF98} StdVideoVP9ColorSpace;99typedef struct StdVideoVP9ColorConfigFlags {100uint32_t color_range : 1;101uint32_t reserved : 31;102} StdVideoVP9ColorConfigFlags;103104typedef struct StdVideoVP9ColorConfig {105StdVideoVP9ColorConfigFlags flags;106uint8_t BitDepth;107uint8_t subsampling_x;108uint8_t subsampling_y;109uint8_t reserved1;110StdVideoVP9ColorSpace color_space;111} StdVideoVP9ColorConfig;112113typedef struct StdVideoVP9LoopFilterFlags {114uint32_t loop_filter_delta_enabled : 1;115uint32_t loop_filter_delta_update : 1;116uint32_t reserved : 30;117} StdVideoVP9LoopFilterFlags;118119typedef struct StdVideoVP9LoopFilter {120StdVideoVP9LoopFilterFlags flags;121uint8_t loop_filter_level;122uint8_t loop_filter_sharpness;123uint8_t update_ref_delta;124int8_t loop_filter_ref_deltas[STD_VIDEO_VP9_MAX_REF_FRAMES];125uint8_t update_mode_delta;126int8_t loop_filter_mode_deltas[STD_VIDEO_VP9_LOOP_FILTER_ADJUSTMENTS];127} StdVideoVP9LoopFilter;128129typedef struct StdVideoVP9SegmentationFlags {130uint32_t segmentation_update_map : 1;131uint32_t segmentation_temporal_update : 1;132uint32_t segmentation_update_data : 1;133uint32_t segmentation_abs_or_delta_update : 1;134uint32_t reserved : 28;135} StdVideoVP9SegmentationFlags;136137typedef struct StdVideoVP9Segmentation {138StdVideoVP9SegmentationFlags flags;139uint8_t segmentation_tree_probs[STD_VIDEO_VP9_MAX_SEGMENTATION_TREE_PROBS];140uint8_t segmentation_pred_prob[STD_VIDEO_VP9_MAX_SEGMENTATION_PRED_PROB];141uint8_t FeatureEnabled[STD_VIDEO_VP9_MAX_SEGMENTS];142int16_t FeatureData[STD_VIDEO_VP9_MAX_SEGMENTS][STD_VIDEO_VP9_SEG_LVL_MAX];143} StdVideoVP9Segmentation;144145146#ifdef __cplusplus147}148#endif149150#endif151152153