dep: Update Vulkan-Headers to v1.3.279
This commit is contained in:
parent
315524a89c
commit
2c19f01a28
|
@ -0,0 +1,392 @@
|
||||||
|
#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2024 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_av1std is a preprocessor guard. Do not pass it to API calls.
|
||||||
|
#define vulkan_video_codec_av1std 1
|
||||||
|
#include "vulkan_video_codecs_common.h"
|
||||||
|
#define STD_VIDEO_AV1_NUM_REF_FRAMES 8
|
||||||
|
#define STD_VIDEO_AV1_REFS_PER_FRAME 7
|
||||||
|
#define STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME 8
|
||||||
|
#define STD_VIDEO_AV1_MAX_TILE_COLS 64
|
||||||
|
#define STD_VIDEO_AV1_MAX_TILE_ROWS 64
|
||||||
|
#define STD_VIDEO_AV1_MAX_SEGMENTS 8
|
||||||
|
#define STD_VIDEO_AV1_SEG_LVL_MAX 8
|
||||||
|
#define STD_VIDEO_AV1_PRIMARY_REF_NONE 7
|
||||||
|
#define STD_VIDEO_AV1_SELECT_INTEGER_MV 2
|
||||||
|
#define STD_VIDEO_AV1_SELECT_SCREEN_CONTENT_TOOLS 2
|
||||||
|
#define STD_VIDEO_AV1_SKIP_MODE_FRAMES 2
|
||||||
|
#define STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS 4
|
||||||
|
#define STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS 2
|
||||||
|
#define STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS 8
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_PLANES 3
|
||||||
|
#define STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS 6
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_Y_POINTS 14
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_CB_POINTS 10
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_CR_POINTS 10
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_POS_LUMA 24
|
||||||
|
#define STD_VIDEO_AV1_MAX_NUM_POS_CHROMA 25
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1Profile {
|
||||||
|
STD_VIDEO_AV1_PROFILE_MAIN = 0,
|
||||||
|
STD_VIDEO_AV1_PROFILE_HIGH = 1,
|
||||||
|
STD_VIDEO_AV1_PROFILE_PROFESSIONAL = 2,
|
||||||
|
STD_VIDEO_AV1_PROFILE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_PROFILE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1Profile;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1Level {
|
||||||
|
STD_VIDEO_AV1_LEVEL_2_0 = 0,
|
||||||
|
STD_VIDEO_AV1_LEVEL_2_1 = 1,
|
||||||
|
STD_VIDEO_AV1_LEVEL_2_2 = 2,
|
||||||
|
STD_VIDEO_AV1_LEVEL_2_3 = 3,
|
||||||
|
STD_VIDEO_AV1_LEVEL_3_0 = 4,
|
||||||
|
STD_VIDEO_AV1_LEVEL_3_1 = 5,
|
||||||
|
STD_VIDEO_AV1_LEVEL_3_2 = 6,
|
||||||
|
STD_VIDEO_AV1_LEVEL_3_3 = 7,
|
||||||
|
STD_VIDEO_AV1_LEVEL_4_0 = 8,
|
||||||
|
STD_VIDEO_AV1_LEVEL_4_1 = 9,
|
||||||
|
STD_VIDEO_AV1_LEVEL_4_2 = 10,
|
||||||
|
STD_VIDEO_AV1_LEVEL_4_3 = 11,
|
||||||
|
STD_VIDEO_AV1_LEVEL_5_0 = 12,
|
||||||
|
STD_VIDEO_AV1_LEVEL_5_1 = 13,
|
||||||
|
STD_VIDEO_AV1_LEVEL_5_2 = 14,
|
||||||
|
STD_VIDEO_AV1_LEVEL_5_3 = 15,
|
||||||
|
STD_VIDEO_AV1_LEVEL_6_0 = 16,
|
||||||
|
STD_VIDEO_AV1_LEVEL_6_1 = 17,
|
||||||
|
STD_VIDEO_AV1_LEVEL_6_2 = 18,
|
||||||
|
STD_VIDEO_AV1_LEVEL_6_3 = 19,
|
||||||
|
STD_VIDEO_AV1_LEVEL_7_0 = 20,
|
||||||
|
STD_VIDEO_AV1_LEVEL_7_1 = 21,
|
||||||
|
STD_VIDEO_AV1_LEVEL_7_2 = 22,
|
||||||
|
STD_VIDEO_AV1_LEVEL_7_3 = 23,
|
||||||
|
STD_VIDEO_AV1_LEVEL_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_LEVEL_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1Level;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1FrameType {
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_KEY = 0,
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_INTER = 1,
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY = 2,
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_SWITCH = 3,
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_FRAME_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1FrameType;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1ReferenceName {
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME = 0,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME = 1,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME = 2,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME = 3,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME = 4,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME = 5,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME = 6,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME = 7,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_REFERENCE_NAME_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1ReferenceName;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1InterpolationFilter {
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP = 0,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH = 1,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP = 2,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR = 3,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE = 4,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_INTERPOLATION_FILTER_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1InterpolationFilter;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1TxMode {
|
||||||
|
STD_VIDEO_AV1_TX_MODE_ONLY_4X4 = 0,
|
||||||
|
STD_VIDEO_AV1_TX_MODE_LARGEST = 1,
|
||||||
|
STD_VIDEO_AV1_TX_MODE_SELECT = 2,
|
||||||
|
STD_VIDEO_AV1_TX_MODE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_TX_MODE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1TxMode;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1FrameRestorationType {
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE = 0,
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER = 1,
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ = 2,
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE = 3,
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1FrameRestorationType;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1ColorPrimaries {
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709 = 1,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_UNSPECIFIED = 2,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M = 4,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G = 5,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601 = 6,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240 = 7,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM = 8,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020 = 9,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ = 10,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431 = 11,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432 = 12,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213 = 22,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_COLOR_PRIMARIES_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1ColorPrimaries;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1TransferCharacteristics {
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0 = 0,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709 = 1,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED = 2,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3 = 3,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M = 4,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G = 5,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601 = 6,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240 = 7,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR = 8,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100 = 9,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10 = 10,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966 = 11,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361 = 12,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB = 13,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT = 14,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT = 15,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084 = 16,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428 = 17,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG = 18,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1TransferCharacteristics;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1MatrixCoefficients {
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY = 0,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709 = 1,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED = 2,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3 = 3,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC = 4,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G = 5,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601 = 6,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240 = 7,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO = 8,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL = 9,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL = 10,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085 = 11,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL = 12,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL = 13,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP = 14,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_MATRIX_COEFFICIENTS_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1MatrixCoefficients;
|
||||||
|
|
||||||
|
typedef enum StdVideoAV1ChromaSamplePosition {
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN = 0,
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL = 1,
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED = 2,
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED = 3,
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID = 0x7FFFFFFF,
|
||||||
|
STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_MAX_ENUM = 0x7FFFFFFF
|
||||||
|
} StdVideoAV1ChromaSamplePosition;
|
||||||
|
typedef struct StdVideoAV1ColorConfigFlags {
|
||||||
|
uint32_t mono_chrome : 1;
|
||||||
|
uint32_t color_range : 1;
|
||||||
|
uint32_t separate_uv_delta_q : 1;
|
||||||
|
uint32_t color_description_present_flag : 1;
|
||||||
|
uint32_t reserved : 28;
|
||||||
|
} StdVideoAV1ColorConfigFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1ColorConfig {
|
||||||
|
StdVideoAV1ColorConfigFlags flags;
|
||||||
|
uint8_t BitDepth;
|
||||||
|
uint8_t subsampling_x;
|
||||||
|
uint8_t subsampling_y;
|
||||||
|
uint8_t reserved1;
|
||||||
|
StdVideoAV1ColorPrimaries color_primaries;
|
||||||
|
StdVideoAV1TransferCharacteristics transfer_characteristics;
|
||||||
|
StdVideoAV1MatrixCoefficients matrix_coefficients;
|
||||||
|
StdVideoAV1ChromaSamplePosition chroma_sample_position;
|
||||||
|
} StdVideoAV1ColorConfig;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1TimingInfoFlags {
|
||||||
|
uint32_t equal_picture_interval : 1;
|
||||||
|
uint32_t reserved : 31;
|
||||||
|
} StdVideoAV1TimingInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1TimingInfo {
|
||||||
|
StdVideoAV1TimingInfoFlags flags;
|
||||||
|
uint32_t num_units_in_display_tick;
|
||||||
|
uint32_t time_scale;
|
||||||
|
uint32_t num_ticks_per_picture_minus_1;
|
||||||
|
} StdVideoAV1TimingInfo;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1LoopFilterFlags {
|
||||||
|
uint32_t loop_filter_delta_enabled : 1;
|
||||||
|
uint32_t loop_filter_delta_update : 1;
|
||||||
|
uint32_t reserved : 30;
|
||||||
|
} StdVideoAV1LoopFilterFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1LoopFilter {
|
||||||
|
StdVideoAV1LoopFilterFlags flags;
|
||||||
|
uint8_t loop_filter_level[STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS];
|
||||||
|
uint8_t loop_filter_sharpness;
|
||||||
|
uint8_t update_ref_delta;
|
||||||
|
int8_t loop_filter_ref_deltas[STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME];
|
||||||
|
uint8_t update_mode_delta;
|
||||||
|
int8_t loop_filter_mode_deltas[STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS];
|
||||||
|
} StdVideoAV1LoopFilter;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1QuantizationFlags {
|
||||||
|
uint32_t using_qmatrix : 1;
|
||||||
|
uint32_t diff_uv_delta : 1;
|
||||||
|
uint32_t reserved : 30;
|
||||||
|
} StdVideoAV1QuantizationFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1Quantization {
|
||||||
|
StdVideoAV1QuantizationFlags flags;
|
||||||
|
uint8_t base_q_idx;
|
||||||
|
int8_t DeltaQYDc;
|
||||||
|
int8_t DeltaQUDc;
|
||||||
|
int8_t DeltaQUAc;
|
||||||
|
int8_t DeltaQVDc;
|
||||||
|
int8_t DeltaQVAc;
|
||||||
|
uint8_t qm_y;
|
||||||
|
uint8_t qm_u;
|
||||||
|
uint8_t qm_v;
|
||||||
|
} StdVideoAV1Quantization;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1Segmentation {
|
||||||
|
uint8_t FeatureEnabled[STD_VIDEO_AV1_MAX_SEGMENTS];
|
||||||
|
int16_t FeatureData[STD_VIDEO_AV1_MAX_SEGMENTS][STD_VIDEO_AV1_SEG_LVL_MAX];
|
||||||
|
} StdVideoAV1Segmentation;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1TileInfoFlags {
|
||||||
|
uint32_t uniform_tile_spacing_flag : 1;
|
||||||
|
uint32_t reserved : 31;
|
||||||
|
} StdVideoAV1TileInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1TileInfo {
|
||||||
|
StdVideoAV1TileInfoFlags flags;
|
||||||
|
uint8_t TileCols;
|
||||||
|
uint8_t TileRows;
|
||||||
|
uint16_t context_update_tile_id;
|
||||||
|
uint8_t tile_size_bytes_minus_1;
|
||||||
|
uint8_t reserved1[7];
|
||||||
|
const uint16_t* pMiColStarts;
|
||||||
|
const uint16_t* pMiRowStarts;
|
||||||
|
const uint16_t* pWidthInSbsMinus1;
|
||||||
|
const uint16_t* pHeightInSbsMinus1;
|
||||||
|
} StdVideoAV1TileInfo;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1CDEF {
|
||||||
|
uint8_t cdef_damping_minus_3;
|
||||||
|
uint8_t cdef_bits;
|
||||||
|
uint8_t cdef_y_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
||||||
|
uint8_t cdef_y_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
||||||
|
uint8_t cdef_uv_pri_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
||||||
|
uint8_t cdef_uv_sec_strength[STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS];
|
||||||
|
} StdVideoAV1CDEF;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1LoopRestoration {
|
||||||
|
StdVideoAV1FrameRestorationType FrameRestorationType[STD_VIDEO_AV1_MAX_NUM_PLANES];
|
||||||
|
uint16_t LoopRestorationSize[STD_VIDEO_AV1_MAX_NUM_PLANES];
|
||||||
|
} StdVideoAV1LoopRestoration;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1GlobalMotion {
|
||||||
|
uint8_t GmType[STD_VIDEO_AV1_NUM_REF_FRAMES];
|
||||||
|
int32_t gm_params[STD_VIDEO_AV1_NUM_REF_FRAMES][STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS];
|
||||||
|
} StdVideoAV1GlobalMotion;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1FilmGrainFlags {
|
||||||
|
uint32_t chroma_scaling_from_luma : 1;
|
||||||
|
uint32_t overlap_flag : 1;
|
||||||
|
uint32_t clip_to_restricted_range : 1;
|
||||||
|
uint32_t update_grain : 1;
|
||||||
|
uint32_t reserved : 28;
|
||||||
|
} StdVideoAV1FilmGrainFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1FilmGrain {
|
||||||
|
StdVideoAV1FilmGrainFlags flags;
|
||||||
|
uint8_t grain_scaling_minus_8;
|
||||||
|
uint8_t ar_coeff_lag;
|
||||||
|
uint8_t ar_coeff_shift_minus_6;
|
||||||
|
uint8_t grain_scale_shift;
|
||||||
|
uint16_t grain_seed;
|
||||||
|
uint8_t film_grain_params_ref_idx;
|
||||||
|
uint8_t num_y_points;
|
||||||
|
uint8_t point_y_value[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
|
||||||
|
uint8_t point_y_scaling[STD_VIDEO_AV1_MAX_NUM_Y_POINTS];
|
||||||
|
uint8_t num_cb_points;
|
||||||
|
uint8_t point_cb_value[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
|
||||||
|
uint8_t point_cb_scaling[STD_VIDEO_AV1_MAX_NUM_CB_POINTS];
|
||||||
|
uint8_t num_cr_points;
|
||||||
|
uint8_t point_cr_value[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
|
||||||
|
uint8_t point_cr_scaling[STD_VIDEO_AV1_MAX_NUM_CR_POINTS];
|
||||||
|
int8_t ar_coeffs_y_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_LUMA];
|
||||||
|
int8_t ar_coeffs_cb_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
|
||||||
|
int8_t ar_coeffs_cr_plus_128[STD_VIDEO_AV1_MAX_NUM_POS_CHROMA];
|
||||||
|
uint8_t cb_mult;
|
||||||
|
uint8_t cb_luma_mult;
|
||||||
|
uint16_t cb_offset;
|
||||||
|
uint8_t cr_mult;
|
||||||
|
uint8_t cr_luma_mult;
|
||||||
|
uint16_t cr_offset;
|
||||||
|
} StdVideoAV1FilmGrain;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1SequenceHeaderFlags {
|
||||||
|
uint32_t still_picture : 1;
|
||||||
|
uint32_t reduced_still_picture_header : 1;
|
||||||
|
uint32_t use_128x128_superblock : 1;
|
||||||
|
uint32_t enable_filter_intra : 1;
|
||||||
|
uint32_t enable_intra_edge_filter : 1;
|
||||||
|
uint32_t enable_interintra_compound : 1;
|
||||||
|
uint32_t enable_masked_compound : 1;
|
||||||
|
uint32_t enable_warped_motion : 1;
|
||||||
|
uint32_t enable_dual_filter : 1;
|
||||||
|
uint32_t enable_order_hint : 1;
|
||||||
|
uint32_t enable_jnt_comp : 1;
|
||||||
|
uint32_t enable_ref_frame_mvs : 1;
|
||||||
|
uint32_t frame_id_numbers_present_flag : 1;
|
||||||
|
uint32_t enable_superres : 1;
|
||||||
|
uint32_t enable_cdef : 1;
|
||||||
|
uint32_t enable_restoration : 1;
|
||||||
|
uint32_t film_grain_params_present : 1;
|
||||||
|
uint32_t timing_info_present_flag : 1;
|
||||||
|
uint32_t initial_display_delay_present_flag : 1;
|
||||||
|
uint32_t reserved : 13;
|
||||||
|
} StdVideoAV1SequenceHeaderFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoAV1SequenceHeader {
|
||||||
|
StdVideoAV1SequenceHeaderFlags flags;
|
||||||
|
StdVideoAV1Profile seq_profile;
|
||||||
|
uint8_t frame_width_bits_minus_1;
|
||||||
|
uint8_t frame_height_bits_minus_1;
|
||||||
|
uint16_t max_frame_width_minus_1;
|
||||||
|
uint16_t max_frame_height_minus_1;
|
||||||
|
uint8_t delta_frame_id_length_minus_2;
|
||||||
|
uint8_t additional_frame_id_length_minus_1;
|
||||||
|
uint8_t order_hint_bits_minus_1;
|
||||||
|
uint8_t seq_force_integer_mv;
|
||||||
|
uint8_t seq_force_screen_content_tools;
|
||||||
|
uint8_t reserved1[5];
|
||||||
|
const StdVideoAV1ColorConfig* pColorConfig;
|
||||||
|
const StdVideoAV1TimingInfo* pTimingInfo;
|
||||||
|
} StdVideoAV1SequenceHeader;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,109 @@
|
||||||
|
#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_
|
||||||
|
#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2024 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_av1std_decode is a preprocessor guard. Do not pass it to API calls.
|
||||||
|
#define vulkan_video_codec_av1std_decode 1
|
||||||
|
#include "vulkan_video_codec_av1std.h"
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_1_0_0
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_decode"
|
||||||
|
typedef struct StdVideoDecodeAV1PictureInfoFlags {
|
||||||
|
uint32_t error_resilient_mode : 1;
|
||||||
|
uint32_t disable_cdf_update : 1;
|
||||||
|
uint32_t use_superres : 1;
|
||||||
|
uint32_t render_and_frame_size_different : 1;
|
||||||
|
uint32_t allow_screen_content_tools : 1;
|
||||||
|
uint32_t is_filter_switchable : 1;
|
||||||
|
uint32_t force_integer_mv : 1;
|
||||||
|
uint32_t frame_size_override_flag : 1;
|
||||||
|
uint32_t buffer_removal_time_present_flag : 1;
|
||||||
|
uint32_t allow_intrabc : 1;
|
||||||
|
uint32_t frame_refs_short_signaling : 1;
|
||||||
|
uint32_t allow_high_precision_mv : 1;
|
||||||
|
uint32_t is_motion_mode_switchable : 1;
|
||||||
|
uint32_t use_ref_frame_mvs : 1;
|
||||||
|
uint32_t disable_frame_end_update_cdf : 1;
|
||||||
|
uint32_t allow_warped_motion : 1;
|
||||||
|
uint32_t reduced_tx_set : 1;
|
||||||
|
uint32_t reference_select : 1;
|
||||||
|
uint32_t skip_mode_present : 1;
|
||||||
|
uint32_t delta_q_present : 1;
|
||||||
|
uint32_t delta_lf_present : 1;
|
||||||
|
uint32_t delta_lf_multi : 1;
|
||||||
|
uint32_t segmentation_enabled : 1;
|
||||||
|
uint32_t segmentation_update_map : 1;
|
||||||
|
uint32_t segmentation_temporal_update : 1;
|
||||||
|
uint32_t segmentation_update_data : 1;
|
||||||
|
uint32_t UsesLr : 1;
|
||||||
|
uint32_t usesChromaLr : 1;
|
||||||
|
uint32_t apply_grain : 1;
|
||||||
|
uint32_t reserved : 3;
|
||||||
|
} StdVideoDecodeAV1PictureInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeAV1PictureInfo {
|
||||||
|
StdVideoDecodeAV1PictureInfoFlags flags;
|
||||||
|
StdVideoAV1FrameType frame_type;
|
||||||
|
uint32_t current_frame_id;
|
||||||
|
uint8_t OrderHint;
|
||||||
|
uint8_t primary_ref_frame;
|
||||||
|
uint8_t refresh_frame_flags;
|
||||||
|
uint8_t reserved1;
|
||||||
|
StdVideoAV1InterpolationFilter interpolation_filter;
|
||||||
|
StdVideoAV1TxMode TxMode;
|
||||||
|
uint8_t delta_q_res;
|
||||||
|
uint8_t delta_lf_res;
|
||||||
|
uint8_t SkipModeFrame[STD_VIDEO_AV1_SKIP_MODE_FRAMES];
|
||||||
|
uint8_t coded_denom;
|
||||||
|
uint8_t reserved2[3];
|
||||||
|
uint8_t OrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES];
|
||||||
|
uint32_t expectedFrameId[STD_VIDEO_AV1_NUM_REF_FRAMES];
|
||||||
|
const StdVideoAV1TileInfo* pTileInfo;
|
||||||
|
const StdVideoAV1Quantization* pQuantization;
|
||||||
|
const StdVideoAV1Segmentation* pSegmentation;
|
||||||
|
const StdVideoAV1LoopFilter* pLoopFilter;
|
||||||
|
const StdVideoAV1CDEF* pCDEF;
|
||||||
|
const StdVideoAV1LoopRestoration* pLoopRestoration;
|
||||||
|
const StdVideoAV1GlobalMotion* pGlobalMotion;
|
||||||
|
const StdVideoAV1FilmGrain* pFilmGrain;
|
||||||
|
} StdVideoDecodeAV1PictureInfo;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeAV1ReferenceInfoFlags {
|
||||||
|
uint32_t disable_frame_end_update_cdf : 1;
|
||||||
|
uint32_t segmentation_enabled : 1;
|
||||||
|
uint32_t reserved : 30;
|
||||||
|
} StdVideoDecodeAV1ReferenceInfoFlags;
|
||||||
|
|
||||||
|
typedef struct StdVideoDecodeAV1ReferenceInfo {
|
||||||
|
StdVideoDecodeAV1ReferenceInfoFlags flags;
|
||||||
|
uint8_t frame_type;
|
||||||
|
uint8_t RefFrameSignBias;
|
||||||
|
uint8_t OrderHint;
|
||||||
|
uint8_t SavedOrderHints[STD_VIDEO_AV1_NUM_REF_FRAMES];
|
||||||
|
} StdVideoDecodeAV1ReferenceInfo;
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
|
#define VULKAN_VIDEO_CODEC_H264STD_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -29,6 +29,7 @@ extern "C" {
|
||||||
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
||||||
#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
|
#define STD_VIDEO_H264_MAX_NUM_LIST_REF 32
|
||||||
#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
|
#define STD_VIDEO_H264_MAX_CHROMA_PLANES 2
|
||||||
|
#define STD_VIDEO_H264_NO_REFERENCE_PICTURE 0xFF
|
||||||
|
|
||||||
typedef enum StdVideoH264ChromaFormatIdc {
|
typedef enum StdVideoH264ChromaFormatIdc {
|
||||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
|
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
|
#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -22,10 +22,10 @@ extern "C" {
|
||||||
// vulkan_video_codec_h264std_encode is a preprocessor guard. Do not pass it to API calls.
|
// vulkan_video_codec_h264std_encode is a preprocessor guard. Do not pass it to API calls.
|
||||||
#define vulkan_video_codec_h264std_encode 1
|
#define vulkan_video_codec_h264std_encode 1
|
||||||
#include "vulkan_video_codec_h264std.h"
|
#include "vulkan_video_codec_h264std.h"
|
||||||
// Vulkan 0.9 provisional Vulkan video H.264 encode std specification version number
|
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10 VK_MAKE_VIDEO_STD_VERSION(0, 9, 10)
|
|
||||||
|
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_0_9_10
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_API_VERSION_1_0_0
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
|
#define VK_STD_VULKAN_VIDEO_CODEC_H264_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_encode"
|
||||||
typedef struct StdVideoEncodeH264WeightTableFlags {
|
typedef struct StdVideoEncodeH264WeightTableFlags {
|
||||||
uint32_t luma_weight_l0_flag;
|
uint32_t luma_weight_l0_flag;
|
||||||
|
@ -81,7 +81,7 @@ typedef struct StdVideoEncodeH264RefListModEntry {
|
||||||
} StdVideoEncodeH264RefListModEntry;
|
} StdVideoEncodeH264RefListModEntry;
|
||||||
|
|
||||||
typedef struct StdVideoEncodeH264RefPicMarkingEntry {
|
typedef struct StdVideoEncodeH264RefPicMarkingEntry {
|
||||||
StdVideoH264MemMgmtControlOp operation;
|
StdVideoH264MemMgmtControlOp memory_management_control_operation;
|
||||||
uint16_t difference_of_pic_nums_minus1;
|
uint16_t difference_of_pic_nums_minus1;
|
||||||
uint16_t long_term_pic_num;
|
uint16_t long_term_pic_num;
|
||||||
uint16_t long_term_frame_idx;
|
uint16_t long_term_frame_idx;
|
||||||
|
@ -132,7 +132,8 @@ typedef struct StdVideoEncodeH264SliceHeader {
|
||||||
StdVideoH264SliceType slice_type;
|
StdVideoH264SliceType slice_type;
|
||||||
int8_t slice_alpha_c0_offset_div2;
|
int8_t slice_alpha_c0_offset_div2;
|
||||||
int8_t slice_beta_offset_div2;
|
int8_t slice_beta_offset_div2;
|
||||||
uint16_t reserved1;
|
int8_t slice_qp_delta;
|
||||||
|
uint8_t reserved1;
|
||||||
StdVideoH264CabacInitIdc cabac_init_idc;
|
StdVideoH264CabacInitIdc cabac_init_idc;
|
||||||
StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc;
|
StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc;
|
||||||
const StdVideoEncodeH264WeightTable* pWeightTable;
|
const StdVideoEncodeH264WeightTable* pWeightTable;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1
|
#define VULKAN_VIDEO_CODEC_H265STD_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -44,6 +44,7 @@ extern "C" {
|
||||||
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
|
#define STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS 32
|
||||||
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
|
#define STD_VIDEO_H265_MAX_LONG_TERM_PICS 16
|
||||||
#define STD_VIDEO_H265_MAX_DELTA_POC 48
|
#define STD_VIDEO_H265_MAX_DELTA_POC 48
|
||||||
|
#define STD_VIDEO_H265_NO_REFERENCE_PICTURE 0xFF
|
||||||
|
|
||||||
typedef enum StdVideoH265ChromaFormatIdc {
|
typedef enum StdVideoH265ChromaFormatIdc {
|
||||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
|
#define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
|
#define VULKAN_VIDEO_CODEC_H265STD_ENCODE_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -22,10 +22,10 @@ extern "C" {
|
||||||
// vulkan_video_codec_h265std_encode is a preprocessor guard. Do not pass it to API calls.
|
// vulkan_video_codec_h265std_encode is a preprocessor guard. Do not pass it to API calls.
|
||||||
#define vulkan_video_codec_h265std_encode 1
|
#define vulkan_video_codec_h265std_encode 1
|
||||||
#include "vulkan_video_codec_h265std.h"
|
#include "vulkan_video_codec_h265std.h"
|
||||||
// Vulkan 0.9 provisional Vulkan video H.265 encode std specification version number
|
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11 VK_MAKE_VIDEO_STD_VERSION(0, 9, 11)
|
|
||||||
|
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_0_9_11
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
|
||||||
|
|
||||||
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_API_VERSION_1_0_0
|
||||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
|
#define VK_STD_VULKAN_VIDEO_CODEC_H265_ENCODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265_encode"
|
||||||
typedef struct StdVideoEncodeH265WeightTableFlags {
|
typedef struct StdVideoEncodeH265WeightTableFlags {
|
||||||
uint16_t luma_weight_l0_flag;
|
uint16_t luma_weight_l0_flag;
|
||||||
|
@ -77,7 +77,8 @@ typedef struct StdVideoEncodeH265SliceSegmentHeader {
|
||||||
int8_t slice_act_y_qp_offset;
|
int8_t slice_act_y_qp_offset;
|
||||||
int8_t slice_act_cb_qp_offset;
|
int8_t slice_act_cb_qp_offset;
|
||||||
int8_t slice_act_cr_qp_offset;
|
int8_t slice_act_cr_qp_offset;
|
||||||
uint8_t reserved1[3];
|
int8_t slice_qp_delta;
|
||||||
|
uint16_t reserved1;
|
||||||
const StdVideoEncodeH265WeightTable* pWeightTable;
|
const StdVideoEncodeH265WeightTable* pWeightTable;
|
||||||
} StdVideoEncodeH265SliceSegmentHeader;
|
} StdVideoEncodeH265SliceSegmentHeader;
|
||||||
|
|
||||||
|
@ -110,7 +111,7 @@ typedef struct StdVideoEncodeH265PictureInfoFlags {
|
||||||
uint32_t reserved : 23;
|
uint32_t reserved : 23;
|
||||||
} StdVideoEncodeH265PictureInfoFlags;
|
} StdVideoEncodeH265PictureInfoFlags;
|
||||||
|
|
||||||
typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics {
|
typedef struct StdVideoEncodeH265LongTermRefPics {
|
||||||
uint8_t num_long_term_sps;
|
uint8_t num_long_term_sps;
|
||||||
uint8_t num_long_term_pics;
|
uint8_t num_long_term_pics;
|
||||||
uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
|
uint8_t lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
|
||||||
|
@ -118,7 +119,7 @@ typedef struct StdVideoEncodeH265SliceSegmentLongTermRefPics {
|
||||||
uint16_t used_by_curr_pic_lt_flag;
|
uint16_t used_by_curr_pic_lt_flag;
|
||||||
uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC];
|
uint8_t delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC];
|
||||||
uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC];
|
uint8_t delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC];
|
||||||
} StdVideoEncodeH265SliceSegmentLongTermRefPics;
|
} StdVideoEncodeH265LongTermRefPics;
|
||||||
|
|
||||||
typedef struct StdVideoEncodeH265PictureInfo {
|
typedef struct StdVideoEncodeH265PictureInfo {
|
||||||
StdVideoEncodeH265PictureInfoFlags flags;
|
StdVideoEncodeH265PictureInfoFlags flags;
|
||||||
|
@ -132,7 +133,7 @@ typedef struct StdVideoEncodeH265PictureInfo {
|
||||||
uint8_t reserved1[7];
|
uint8_t reserved1[7];
|
||||||
const StdVideoEncodeH265ReferenceListsInfo* pRefLists;
|
const StdVideoEncodeH265ReferenceListsInfo* pRefLists;
|
||||||
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
|
const StdVideoH265ShortTermRefPicSet* pShortTermRefPicSet;
|
||||||
const StdVideoEncodeH265SliceSegmentLongTermRefPics* pLongTermRefPics;
|
const StdVideoEncodeH265LongTermRefPics* pLongTermRefPics;
|
||||||
} StdVideoEncodeH265PictureInfo;
|
} StdVideoEncodeH265PictureInfo;
|
||||||
|
|
||||||
typedef struct StdVideoEncodeH265ReferenceInfoFlags {
|
typedef struct StdVideoEncodeH265ReferenceInfoFlags {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VIDEO_CODECS_COMMON_H_ 1
|
#define VULKAN_VIDEO_CODECS_COMMON_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
// File: vk_platform.h
|
// File: vk_platform.h
|
||||||
//
|
//
|
||||||
/*
|
/*
|
||||||
** Copyright 2014-2023 The Khronos Group Inc.
|
** Copyright 2014-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
//
|
|
||||||
// File: vk_sdk_platform.h
|
|
||||||
//
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
||||||
* Copyright (c) 2015-2016 Valve Corporation
|
|
||||||
* Copyright (c) 2015-2016 LunarG, Inc.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef VK_SDK_PLATFORM_H
|
|
||||||
#define VK_SDK_PLATFORM_H
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
#define NOMINMAX
|
|
||||||
#ifndef __cplusplus
|
|
||||||
#undef inline
|
|
||||||
#define inline __inline
|
|
||||||
#endif // __cplusplus
|
|
||||||
|
|
||||||
#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/)
|
|
||||||
// C99:
|
|
||||||
// Microsoft didn't implement C99 in Visual Studio; but started adding it with
|
|
||||||
// VS2013. However, VS2013 still didn't have snprintf(). The following is a
|
|
||||||
// work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the
|
|
||||||
// "CMakeLists.txt" file).
|
|
||||||
// NOTE: This is fixed in Visual Studio 2015.
|
|
||||||
#define snprintf _snprintf
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define strdup _strdup
|
|
||||||
|
|
||||||
#endif // _WIN32
|
|
||||||
|
|
||||||
// Check for noexcept support using clang, with fallback to Windows or GCC version numbers
|
|
||||||
#ifndef NOEXCEPT
|
|
||||||
#if defined(__clang__)
|
|
||||||
#if __has_feature(cxx_noexcept)
|
|
||||||
#define HAS_NOEXCEPT
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46
|
|
||||||
#define HAS_NOEXCEPT
|
|
||||||
#else
|
|
||||||
#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS
|
|
||||||
#define HAS_NOEXCEPT
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAS_NOEXCEPT
|
|
||||||
#define NOEXCEPT noexcept
|
|
||||||
#else
|
|
||||||
#define NOEXCEPT
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // VK_SDK_PLATFORM_H
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_H_ 1
|
#define VULKAN_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_ANDROID_H_ 1
|
#define VULKAN_ANDROID_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -120,6 +120,32 @@ VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
|
||||||
struct AHardwareBuffer** pBuffer);
|
struct AHardwareBuffer** pBuffer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls.
|
||||||
|
#define VK_ANDROID_external_format_resolve 1
|
||||||
|
#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1
|
||||||
|
#define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve"
|
||||||
|
typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkBool32 externalFormatResolve;
|
||||||
|
} VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
|
||||||
|
|
||||||
|
typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkBool32 nullColorAttachmentWithExternalFormatResolve;
|
||||||
|
VkChromaLocation externalFormatResolveChromaOffsetX;
|
||||||
|
VkChromaLocation externalFormatResolveChromaOffsetY;
|
||||||
|
} VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
|
||||||
|
|
||||||
|
typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID {
|
||||||
|
VkStructureType sType;
|
||||||
|
void* pNext;
|
||||||
|
VkFormat colorAttachmentFormat;
|
||||||
|
} VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_BETA_H_ 1
|
#define VULKAN_BETA_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
@ -51,598 +51,6 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
|
|
||||||
#define VK_KHR_video_encode_queue 1
|
|
||||||
#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 9
|
|
||||||
#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeTuningModeKHR {
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
|
|
||||||
VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeTuningModeKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeFlagsKHR;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
|
|
||||||
VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeCapabilityFlagBitsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
|
|
||||||
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
|
|
||||||
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeRateControlModeFlagBitsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
|
|
||||||
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeFeedbackFlagBitsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeUsageFlagBitsKHR {
|
|
||||||
VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
|
|
||||||
VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeUsageFlagBitsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeUsageFlagsKHR;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeContentFlagBitsKHR {
|
|
||||||
VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
|
|
||||||
VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeContentFlagBitsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeContentFlagsKHR;
|
|
||||||
typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
|
|
||||||
typedef struct VkVideoEncodeInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeFlagsKHR flags;
|
|
||||||
VkBuffer dstBuffer;
|
|
||||||
VkDeviceSize dstBufferOffset;
|
|
||||||
VkDeviceSize dstBufferRange;
|
|
||||||
VkVideoPictureResourceInfoKHR srcPictureResource;
|
|
||||||
const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
|
|
||||||
uint32_t referenceSlotCount;
|
|
||||||
const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
|
|
||||||
uint32_t precedingExternallyEncodedBytes;
|
|
||||||
} VkVideoEncodeInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeCapabilitiesKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeCapabilityFlagsKHR flags;
|
|
||||||
VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
|
|
||||||
uint32_t maxRateControlLayers;
|
|
||||||
uint64_t maxBitrate;
|
|
||||||
uint32_t maxQualityLevels;
|
|
||||||
VkExtent2D encodeInputPictureGranularity;
|
|
||||||
VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
|
|
||||||
} VkVideoEncodeCapabilitiesKHR;
|
|
||||||
|
|
||||||
typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
|
|
||||||
} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeUsageInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeUsageFlagsKHR videoUsageHints;
|
|
||||||
VkVideoEncodeContentFlagsKHR videoContentHints;
|
|
||||||
VkVideoEncodeTuningModeKHR tuningMode;
|
|
||||||
} VkVideoEncodeUsageInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeRateControlLayerInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint64_t averageBitrate;
|
|
||||||
uint64_t maxBitrate;
|
|
||||||
uint32_t frameRateNumerator;
|
|
||||||
uint32_t frameRateDenominator;
|
|
||||||
} VkVideoEncodeRateControlLayerInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeRateControlInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeRateControlFlagsKHR flags;
|
|
||||||
VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
|
|
||||||
uint32_t layerCount;
|
|
||||||
const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
|
|
||||||
uint32_t virtualBufferSizeInMs;
|
|
||||||
uint32_t initialVirtualBufferSizeInMs;
|
|
||||||
} VkVideoEncodeRateControlInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
const VkVideoProfileInfoKHR* pVideoProfile;
|
|
||||||
uint32_t qualityLevel;
|
|
||||||
} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
|
|
||||||
uint32_t preferredRateControlLayerCount;
|
|
||||||
} VkVideoEncodeQualityLevelPropertiesKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeQualityLevelInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t qualityLevel;
|
|
||||||
} VkVideoEncodeQualityLevelInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoSessionParametersKHR videoSessionParameters;
|
|
||||||
} VkVideoEncodeSessionParametersGetInfoKHR;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkBool32 hasOverrides;
|
|
||||||
} VkVideoEncodeSessionParametersFeedbackInfoKHR;
|
|
||||||
|
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
|
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
|
|
||||||
typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
|
|
||||||
|
|
||||||
#ifndef VK_NO_PROTOTYPES
|
|
||||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
|
|
||||||
VkPhysicalDevice physicalDevice,
|
|
||||||
const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
|
|
||||||
VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
|
|
||||||
|
|
||||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
|
|
||||||
VkDevice device,
|
|
||||||
const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
|
|
||||||
VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
|
|
||||||
size_t* pDataSize,
|
|
||||||
void* pData);
|
|
||||||
|
|
||||||
VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
|
|
||||||
VkCommandBuffer commandBuffer,
|
|
||||||
const VkVideoEncodeInfoKHR* pEncodeInfo);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
// VK_EXT_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
|
|
||||||
#define VK_EXT_video_encode_h264 1
|
|
||||||
#include "vk_video/vulkan_video_codec_h264std.h"
|
|
||||||
#include "vk_video/vulkan_video_codec_h264std_encode.h"
|
|
||||||
#define VK_EXT_VIDEO_ENCODE_H264_SPEC_VERSION 11
|
|
||||||
#define VK_EXT_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_EXT_video_encode_h264"
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH264CapabilityFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x00000020,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_EXT = 0x00000040,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_EXT = 0x00000080,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_EXT = 0x00000100,
|
|
||||||
VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH264CapabilityFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH264CapabilityFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH264StdFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_EXT = 0x00000020,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_EXT = 0x00000040,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_EXT = 0x00000080,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_EXT = 0x00000100,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_EXT = 0x00000200,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_EXT = 0x00000400,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_EXT = 0x00000800,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_EXT = 0x00001000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_EXT = 0x00002000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_EXT = 0x00004000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00008000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00010000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00020000,
|
|
||||||
VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH264StdFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH264StdFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH264RateControlFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH264RateControlFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH264RateControlFlagsEXT;
|
|
||||||
typedef struct VkVideoEncodeH264CapabilitiesEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeH264CapabilityFlagsEXT flags;
|
|
||||||
StdVideoH264LevelIdc maxLevelIdc;
|
|
||||||
uint32_t maxSliceCount;
|
|
||||||
uint32_t maxPPictureL0ReferenceCount;
|
|
||||||
uint32_t maxBPictureL0ReferenceCount;
|
|
||||||
uint32_t maxL1ReferenceCount;
|
|
||||||
uint32_t maxTemporalLayerCount;
|
|
||||||
VkBool32 expectDyadicTemporalLayerPattern;
|
|
||||||
int32_t minQp;
|
|
||||||
int32_t maxQp;
|
|
||||||
VkBool32 prefersGopRemainingFrames;
|
|
||||||
VkBool32 requiresGopRemainingFrames;
|
|
||||||
VkVideoEncodeH264StdFlagsEXT stdSyntaxFlags;
|
|
||||||
} VkVideoEncodeH264CapabilitiesEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264QpEXT {
|
|
||||||
int32_t qpI;
|
|
||||||
int32_t qpP;
|
|
||||||
int32_t qpB;
|
|
||||||
} VkVideoEncodeH264QpEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264QualityLevelPropertiesEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeH264RateControlFlagsEXT preferredRateControlFlags;
|
|
||||||
uint32_t preferredGopFrameCount;
|
|
||||||
uint32_t preferredIdrPeriod;
|
|
||||||
uint32_t preferredConsecutiveBFrameCount;
|
|
||||||
uint32_t preferredTemporalLayerCount;
|
|
||||||
VkVideoEncodeH264QpEXT preferredConstantQp;
|
|
||||||
uint32_t preferredMaxL0ReferenceCount;
|
|
||||||
uint32_t preferredMaxL1ReferenceCount;
|
|
||||||
VkBool32 preferredStdEntropyCodingModeFlag;
|
|
||||||
} VkVideoEncodeH264QualityLevelPropertiesEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264SessionCreateInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useMaxLevelIdc;
|
|
||||||
StdVideoH264LevelIdc maxLevelIdc;
|
|
||||||
} VkVideoEncodeH264SessionCreateInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264SessionParametersAddInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t stdSPSCount;
|
|
||||||
const StdVideoH264SequenceParameterSet* pStdSPSs;
|
|
||||||
uint32_t stdPPSCount;
|
|
||||||
const StdVideoH264PictureParameterSet* pStdPPSs;
|
|
||||||
} VkVideoEncodeH264SessionParametersAddInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264SessionParametersCreateInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t maxStdSPSCount;
|
|
||||||
uint32_t maxStdPPSCount;
|
|
||||||
const VkVideoEncodeH264SessionParametersAddInfoEXT* pParametersAddInfo;
|
|
||||||
} VkVideoEncodeH264SessionParametersCreateInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264SessionParametersGetInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 writeStdSPS;
|
|
||||||
VkBool32 writeStdPPS;
|
|
||||||
uint32_t stdSPSId;
|
|
||||||
uint32_t stdPPSId;
|
|
||||||
} VkVideoEncodeH264SessionParametersGetInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkBool32 hasStdSPSOverrides;
|
|
||||||
VkBool32 hasStdPPSOverrides;
|
|
||||||
} VkVideoEncodeH264SessionParametersFeedbackInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264NaluSliceInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
int32_t constantQp;
|
|
||||||
const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
|
|
||||||
} VkVideoEncodeH264NaluSliceInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264PictureInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t naluSliceEntryCount;
|
|
||||||
const VkVideoEncodeH264NaluSliceInfoEXT* pNaluSliceEntries;
|
|
||||||
const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
|
|
||||||
VkBool32 generatePrefixNalu;
|
|
||||||
} VkVideoEncodeH264PictureInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264DpbSlotInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
|
|
||||||
} VkVideoEncodeH264DpbSlotInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264ProfileInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
StdVideoH264ProfileIdc stdProfileIdc;
|
|
||||||
} VkVideoEncodeH264ProfileInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264RateControlInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeH264RateControlFlagsEXT flags;
|
|
||||||
uint32_t gopFrameCount;
|
|
||||||
uint32_t idrPeriod;
|
|
||||||
uint32_t consecutiveBFrameCount;
|
|
||||||
uint32_t temporalLayerCount;
|
|
||||||
} VkVideoEncodeH264RateControlInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264FrameSizeEXT {
|
|
||||||
uint32_t frameISize;
|
|
||||||
uint32_t framePSize;
|
|
||||||
uint32_t frameBSize;
|
|
||||||
} VkVideoEncodeH264FrameSizeEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264RateControlLayerInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useMinQp;
|
|
||||||
VkVideoEncodeH264QpEXT minQp;
|
|
||||||
VkBool32 useMaxQp;
|
|
||||||
VkVideoEncodeH264QpEXT maxQp;
|
|
||||||
VkBool32 useMaxFrameSize;
|
|
||||||
VkVideoEncodeH264FrameSizeEXT maxFrameSize;
|
|
||||||
} VkVideoEncodeH264RateControlLayerInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH264GopRemainingFrameInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useGopRemainingFrames;
|
|
||||||
uint32_t gopRemainingI;
|
|
||||||
uint32_t gopRemainingP;
|
|
||||||
uint32_t gopRemainingB;
|
|
||||||
} VkVideoEncodeH264GopRemainingFrameInfoEXT;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// VK_EXT_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
|
|
||||||
#define VK_EXT_video_encode_h265 1
|
|
||||||
#include "vk_video/vulkan_video_codec_h265std.h"
|
|
||||||
#include "vk_video/vulkan_video_codec_h265std_encode.h"
|
|
||||||
#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 11
|
|
||||||
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0x00000020,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_EXT = 0x00000040,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_EXT = 0x00000080,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_EXT = 0x00000100,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_EXT = 0x00000200,
|
|
||||||
VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH265CapabilityFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH265StdFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_EXT = 0x00000020,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_EXT = 0x00000040,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_EXT = 0x00000080,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0x00000100,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_EXT = 0x00000200,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_EXT = 0x00000400,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_EXT = 0x00000800,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_EXT = 0x00001000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_EXT = 0x00002000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_EXT = 0x00004000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_EXT = 0x00008000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_EXT = 0x00010000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_EXT = 0x00020000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_EXT = 0x00040000,
|
|
||||||
VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH265StdFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH265StdFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH265CtbSizeFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH265CtbSizeFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH265CtbSizeFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH265TransformBlockSizeFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT;
|
|
||||||
|
|
||||||
typedef enum VkVideoEncodeH265RateControlFlagBitsEXT {
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_EXT = 0x00000001,
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_EXT = 0x00000002,
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_EXT = 0x00000004,
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_EXT = 0x00000008,
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_EXT = 0x00000010,
|
|
||||||
VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
|
||||||
} VkVideoEncodeH265RateControlFlagBitsEXT;
|
|
||||||
typedef VkFlags VkVideoEncodeH265RateControlFlagsEXT;
|
|
||||||
typedef struct VkVideoEncodeH265CapabilitiesEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeH265CapabilityFlagsEXT flags;
|
|
||||||
StdVideoH265LevelIdc maxLevelIdc;
|
|
||||||
uint32_t maxSliceSegmentCount;
|
|
||||||
VkExtent2D maxTiles;
|
|
||||||
VkVideoEncodeH265CtbSizeFlagsEXT ctbSizes;
|
|
||||||
VkVideoEncodeH265TransformBlockSizeFlagsEXT transformBlockSizes;
|
|
||||||
uint32_t maxPPictureL0ReferenceCount;
|
|
||||||
uint32_t maxBPictureL0ReferenceCount;
|
|
||||||
uint32_t maxL1ReferenceCount;
|
|
||||||
uint32_t maxSubLayerCount;
|
|
||||||
VkBool32 expectDyadicTemporalSubLayerPattern;
|
|
||||||
int32_t minQp;
|
|
||||||
int32_t maxQp;
|
|
||||||
VkBool32 prefersGopRemainingFrames;
|
|
||||||
VkBool32 requiresGopRemainingFrames;
|
|
||||||
VkVideoEncodeH265StdFlagsEXT stdSyntaxFlags;
|
|
||||||
} VkVideoEncodeH265CapabilitiesEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265SessionCreateInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useMaxLevelIdc;
|
|
||||||
StdVideoH265LevelIdc maxLevelIdc;
|
|
||||||
} VkVideoEncodeH265SessionCreateInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265QpEXT {
|
|
||||||
int32_t qpI;
|
|
||||||
int32_t qpP;
|
|
||||||
int32_t qpB;
|
|
||||||
} VkVideoEncodeH265QpEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265QualityLevelPropertiesEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkVideoEncodeH265RateControlFlagsEXT preferredRateControlFlags;
|
|
||||||
uint32_t preferredGopFrameCount;
|
|
||||||
uint32_t preferredIdrPeriod;
|
|
||||||
uint32_t preferredConsecutiveBFrameCount;
|
|
||||||
uint32_t preferredSubLayerCount;
|
|
||||||
VkVideoEncodeH265QpEXT preferredConstantQp;
|
|
||||||
uint32_t preferredMaxL0ReferenceCount;
|
|
||||||
uint32_t preferredMaxL1ReferenceCount;
|
|
||||||
} VkVideoEncodeH265QualityLevelPropertiesEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265SessionParametersAddInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t stdVPSCount;
|
|
||||||
const StdVideoH265VideoParameterSet* pStdVPSs;
|
|
||||||
uint32_t stdSPSCount;
|
|
||||||
const StdVideoH265SequenceParameterSet* pStdSPSs;
|
|
||||||
uint32_t stdPPSCount;
|
|
||||||
const StdVideoH265PictureParameterSet* pStdPPSs;
|
|
||||||
} VkVideoEncodeH265SessionParametersAddInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265SessionParametersCreateInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t maxStdVPSCount;
|
|
||||||
uint32_t maxStdSPSCount;
|
|
||||||
uint32_t maxStdPPSCount;
|
|
||||||
const VkVideoEncodeH265SessionParametersAddInfoEXT* pParametersAddInfo;
|
|
||||||
} VkVideoEncodeH265SessionParametersCreateInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265SessionParametersGetInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 writeStdVPS;
|
|
||||||
VkBool32 writeStdSPS;
|
|
||||||
VkBool32 writeStdPPS;
|
|
||||||
uint32_t stdVPSId;
|
|
||||||
uint32_t stdSPSId;
|
|
||||||
uint32_t stdPPSId;
|
|
||||||
} VkVideoEncodeH265SessionParametersGetInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
void* pNext;
|
|
||||||
VkBool32 hasStdVPSOverrides;
|
|
||||||
VkBool32 hasStdSPSOverrides;
|
|
||||||
VkBool32 hasStdPPSOverrides;
|
|
||||||
} VkVideoEncodeH265SessionParametersFeedbackInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265NaluSliceSegmentInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
int32_t constantQp;
|
|
||||||
const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
|
|
||||||
} VkVideoEncodeH265NaluSliceSegmentInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265PictureInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
uint32_t naluSliceSegmentEntryCount;
|
|
||||||
const VkVideoEncodeH265NaluSliceSegmentInfoEXT* pNaluSliceSegmentEntries;
|
|
||||||
const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
|
|
||||||
} VkVideoEncodeH265PictureInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265DpbSlotInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
|
|
||||||
} VkVideoEncodeH265DpbSlotInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265ProfileInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
StdVideoH265ProfileIdc stdProfileIdc;
|
|
||||||
} VkVideoEncodeH265ProfileInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265RateControlInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkVideoEncodeH265RateControlFlagsEXT flags;
|
|
||||||
uint32_t gopFrameCount;
|
|
||||||
uint32_t idrPeriod;
|
|
||||||
uint32_t consecutiveBFrameCount;
|
|
||||||
uint32_t subLayerCount;
|
|
||||||
} VkVideoEncodeH265RateControlInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265FrameSizeEXT {
|
|
||||||
uint32_t frameISize;
|
|
||||||
uint32_t framePSize;
|
|
||||||
uint32_t frameBSize;
|
|
||||||
} VkVideoEncodeH265FrameSizeEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265RateControlLayerInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useMinQp;
|
|
||||||
VkVideoEncodeH265QpEXT minQp;
|
|
||||||
VkBool32 useMaxQp;
|
|
||||||
VkVideoEncodeH265QpEXT maxQp;
|
|
||||||
VkBool32 useMaxFrameSize;
|
|
||||||
VkVideoEncodeH265FrameSizeEXT maxFrameSize;
|
|
||||||
} VkVideoEncodeH265RateControlLayerInfoEXT;
|
|
||||||
|
|
||||||
typedef struct VkVideoEncodeH265GopRemainingFrameInfoEXT {
|
|
||||||
VkStructureType sType;
|
|
||||||
const void* pNext;
|
|
||||||
VkBool32 useGopRemainingFrames;
|
|
||||||
uint32_t gopRemainingI;
|
|
||||||
uint32_t gopRemainingP;
|
|
||||||
uint32_t gopRemainingB;
|
|
||||||
} VkVideoEncodeH265GopRemainingFrameInfoEXT;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
|
// VK_AMDX_shader_enqueue is a preprocessor guard. Do not pass it to API calls.
|
||||||
#define VK_AMDX_shader_enqueue 1
|
#define VK_AMDX_shader_enqueue 1
|
||||||
#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
|
#define VK_AMDX_SHADER_ENQUEUE_SPEC_VERSION 1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_DIRECTFB_H_ 1
|
#define VULKAN_DIRECTFB_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_FUCHSIA_H_ 1
|
#define VULKAN_FUCHSIA_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_GGP_H_ 1
|
#define VULKAN_GGP_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_IOS_H_ 1
|
#define VULKAN_IOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_MACOS_H_ 1
|
#define VULKAN_MACOS_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_METAL_H_ 1
|
#define VULKAN_METAL_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_SCREEN_H_ 1
|
#define VULKAN_SCREEN_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_VI_H_ 1
|
#define VULKAN_VI_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_WAYLAND_H_ 1
|
#define VULKAN_WAYLAND_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_WIN32_H_ 1
|
#define VULKAN_WIN32_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_XCB_H_ 1
|
#define VULKAN_XCB_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_XLIB_H_ 1
|
#define VULKAN_XLIB_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#define VULKAN_XLIB_XRANDR_H_ 1
|
#define VULKAN_XLIB_XRANDR_H_ 1
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Copyright 2015-2023 The Khronos Group Inc.
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
**
|
**
|
||||||
** SPDX-License-Identifier: Apache-2.0
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue