summaryrefslogtreecommitdiff
path: root/include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h')
-rw-r--r--include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h110
1 files changed, 44 insertions, 66 deletions
diff --git a/include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h b/include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h
index cb0d1df5..f7eb8edb 100644
--- a/include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h
+++ b/include/vulkan/include/vk_video/vulkan_video_codec_h264std_decode.h
@@ -1,97 +1,75 @@
+#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
+#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
+
/*
-** Copyright (c) 2019-2020 The Khronos Group Inc.
+** Copyright 2015-2023 The Khronos Group Inc.
**
** SPDX-License-Identifier: Apache-2.0
*/
-#ifndef VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
-#define VULKAN_VIDEO_CODEC_H264STD_DECODE_H_ 1
+/*
+** This header is generated from the Khronos Vulkan XML API Registry.
+**
+*/
+
#ifdef __cplusplus
extern "C" {
#endif
-#include "vk_video/vulkan_video_codec_h264std.h"
-// *************************************************
-// Video H.264 Decode related parameters:
-// *************************************************
-#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
+#define vulkan_video_codec_h264std_decode 1
-typedef enum StdVideoDecodeH264FieldOrderCount {
- 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_LIST_SIZE = 2,
- STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF
-} StdVideoDecodeH264FieldOrderCnt;
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0 VK_MAKE_VIDEO_STD_VERSION(1, 0, 0)
+
+#define STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE 2
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_API_VERSION_1_0_0
+#define VK_STD_VULKAN_VIDEO_CODEC_H264_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264_decode"
+typedef enum StdVideoDecodeH264FieldOrderCount {
+ 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;
typedef struct StdVideoDecodeH264PictureInfoFlags {
- uint32_t field_pic_flag : 1; // Is field picture
- uint32_t is_intra : 1; // Is intra picture
- uint32_t IdrPicFlag : 1; // instantaneous decoding refresh (IDR) picture
- uint32_t bottom_field_flag : 1; // bottom (true) or top (false) field if field_pic_flag is set.
- uint32_t is_reference : 1; // This only applies to picture info, and not to the DPB lists.
- uint32_t complementary_field_pair : 1; // complementary field pair, complementary non-reference field pair, complementary reference field pair
+ 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;
} StdVideoDecodeH264PictureInfoFlags;
typedef struct StdVideoDecodeH264PictureInfo {
- uint8_t seq_parameter_set_id; // Selecting SPS from the Picture Parameters
- uint8_t pic_parameter_set_id; // Selecting PPS from the Picture Parameters and the SPS
- uint16_t reserved; // for structure members 32-bit packing/alignment
- uint16_t frame_num; // 7.4.3 Slice header semantics
- uint16_t idr_pic_id; // 7.4.3 Slice header semantics
- // PicOrderCnt is based on TopFieldOrderCnt and BottomFieldOrderCnt. See 8.2.1 Decoding process for picture order count type 0 - 2
- int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; // TopFieldOrderCnt and BottomFieldOrderCnt fields.
- StdVideoDecodeH264PictureInfoFlags flags;
+ StdVideoDecodeH264PictureInfoFlags flags;
+ uint8_t seq_parameter_set_id;
+ uint8_t pic_parameter_set_id;
+ uint8_t reserved1;
+ uint8_t reserved2;
+ uint16_t frame_num;
+ uint16_t idr_pic_id;
+ int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
} StdVideoDecodeH264PictureInfo;
typedef struct StdVideoDecodeH264ReferenceInfoFlags {
- uint32_t top_field_flag : 1; // Reference is used for top field reference.
- uint32_t bottom_field_flag : 1; // Reference is used for bottom field reference.
- uint32_t is_long_term : 1; // this is a long term reference
- uint32_t is_non_existing : 1; // Must be handled in accordance with 8.2.5.2: Decoding process for gaps in frame_num
+ 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;
} StdVideoDecodeH264ReferenceInfoFlags;
typedef struct StdVideoDecodeH264ReferenceInfo {
- // FrameNum = is_long_term ? long_term_frame_idx : frame_num
- uint16_t FrameNum; // 7.4.3.3 Decoded reference picture marking semantics
- uint16_t reserved; // for structure members 32-bit packing/alignment
- int32_t PicOrderCnt[2]; // TopFieldOrderCnt and BottomFieldOrderCnt fields.
- StdVideoDecodeH264ReferenceInfoFlags flags;
+ StdVideoDecodeH264ReferenceInfoFlags flags;
+ uint16_t FrameNum;
+ uint16_t reserved;
+ int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
} StdVideoDecodeH264ReferenceInfo;
-typedef struct StdVideoDecodeH264MvcElementFlags {
- uint32_t non_idr : 1;
- uint32_t anchor_pic : 1;
- uint32_t inter_view : 1;
-} StdVideoDecodeH264MvcElementFlags;
-
-typedef struct StdVideoDecodeH264MvcElement {
- StdVideoDecodeH264MvcElementFlags flags;
- uint16_t viewOrderIndex;
- uint16_t viewId;
- uint16_t temporalId; // move out?
- uint16_t priorityId; // move out?
- 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];
-} StdVideoDecodeH264MvcElement;
-
-typedef struct StdVideoDecodeH264Mvc {
- uint32_t viewId0;
- uint32_t mvcElementCount;
- StdVideoDecodeH264MvcElement* pMvcElements;
-} StdVideoDecodeH264Mvc;
-
#ifdef __cplusplus
}
#endif
-#endif // VULKAN_VIDEO_CODEC_H264STD_DECODE_H_
+#endif