yuzu/externals/Vulkan-Headers/include/vk_video/vulkan_video_codec_h264std_...

104 lines
4.0 KiB
C
Raw Normal View History

2022-05-17 23:04:11 +04:00
#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
2021-07-10 01:54:15 +04:00
/*
2022-05-17 23:04:11 +04:00
** Copyright 2015-2022 The Khronos Group Inc.
2021-07-10 01:54:15 +04:00
**
** SPDX-License-Identifier: Apache-2.0
*/
2022-05-17 23:04:11 +04:00
/*
** This header is generated from the Khronos Vulkan XML API Registry.
**
*/
2021-07-10 01:54:15 +04:00
#ifdef __cplusplus
extern "C" {
#endif
2022-05-17 23:04:11 +04:00
#define vulkan_video_codec_h264std_decode 1
// Vulkan 0.9 provisional Vulkan video H.264 decode std specification version number
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6 VK_MAKE_VIDEO_STD_VERSION(0, 9, 6) // Patch version should always be set to 0
#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
2021-12-18 11:41:22 +04:00
#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
2022-05-17 23:04:11 +04:00
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_0_9_6
#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
2021-12-18 11:41:22 +04:00
typedef enum StdVideoDecodeH264FieldOrderCount {
2022-05-17 23:04:11 +04:00
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF,
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_MAX_ENUM = 0x7FFFFFFF
} StdVideoDecodeH264FieldOrderCount;
2021-07-10 01:54:15 +04:00
typedef struct StdVideoDecodeH264PictureInfoFlags {
2022-05-17 23:04:11 +04:00
uint32_t field_pic_flag : 1;
uint32_t is_intra : 1;
uint32_t IdrPicFlag : 1;
uint32_t bottom_field_flag : 1;
uint32_t is_reference : 1;
uint32_t complementary_field_pair : 1;
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264PictureInfoFlags;
typedef struct StdVideoDecodeH264PictureInfo {
2022-05-17 23:04:11 +04:00
StdVideoDecodeH264PictureInfoFlags flags;
uint8_t seq_parameter_set_id;
uint8_t pic_parameter_set_id;
uint16_t reserved;
uint16_t frame_num;
uint16_t idr_pic_id;
int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264PictureInfo;
typedef struct StdVideoDecodeH264ReferenceInfoFlags {
2022-05-17 23:04:11 +04:00
uint32_t top_field_flag : 1;
uint32_t bottom_field_flag : 1;
uint32_t used_for_long_term_reference : 1;
uint32_t is_non_existing : 1;
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264ReferenceInfoFlags;
typedef struct StdVideoDecodeH264ReferenceInfo {
2022-05-17 23:04:11 +04:00
StdVideoDecodeH264ReferenceInfoFlags flags;
uint16_t FrameNum;
uint16_t reserved;
int32_t PicOrderCnt[2];
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264ReferenceInfo;
typedef struct StdVideoDecodeH264MvcElementFlags {
2022-05-17 23:04:11 +04:00
uint32_t non_idr : 1;
uint32_t anchor_pic : 1;
uint32_t inter_view : 1;
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264MvcElementFlags;
typedef struct StdVideoDecodeH264MvcElement {
2022-05-17 23:04:11 +04:00
StdVideoDecodeH264MvcElementFlags flags;
uint16_t viewOrderIndex;
uint16_t viewId;
uint16_t temporalId;
uint16_t priorityId;
uint16_t numOfAnchorRefsInL0;
uint16_t viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfAnchorRefsInL1;
uint16_t viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfNonAnchorRefsInL0;
uint16_t viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
uint16_t numOfNonAnchorRefsInL1;
uint16_t viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264MvcElement;
typedef struct StdVideoDecodeH264Mvc {
2022-05-17 23:04:11 +04:00
uint32_t viewId0;
uint32_t mvcElementCount;
const StdVideoDecodeH264MvcElement* pMvcElements;
2021-07-10 01:54:15 +04:00
} StdVideoDecodeH264Mvc;
#ifdef __cplusplus
}
#endif
2022-05-17 23:04:11 +04:00
#endif