1 /* 2 ** Copyright (c) 2019-2021 The Khronos Group Inc. 3 ** 4 ** SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 8 #define VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 1 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 #include "vk_video/vulkan_video_codec_h265std.h" 15 16 // ************************************************* 17 // Video h265 Decode related parameters: 18 // ************************************************* 19 20 #define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8 21 22 typedef struct StdVideoDecodeH265PictureInfoFlags { 23 uint32_t IrapPicFlag : 1; 24 uint32_t IdrPicFlag : 1; 25 uint32_t IsReference : 1; 26 uint32_t short_term_ref_pic_set_sps_flag : 1; 27 } StdVideoDecodeH265PictureInfoFlags; 28 29 typedef struct StdVideoDecodeH265PictureInfo { 30 uint8_t vps_video_parameter_set_id; 31 uint8_t sps_seq_parameter_set_id; 32 uint8_t pps_pic_parameter_set_id; 33 uint8_t num_short_term_ref_pic_sets; 34 int32_t PicOrderCntVal; 35 uint16_t NumBitsForSTRefPicSetInSlice; // number of bits used in st_ref_pic_set() 36 //when short_term_ref_pic_set_sps_flag is 0; otherwise set to 0. 37 uint8_t NumDeltaPocsOfRefRpsIdx; // NumDeltaPocs[ RefRpsIdx ] when short_term_ref_pic_set_sps_flag = 1, otherwise 0 38 uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in 39 // VkVideoReferenceSlotKHR structures representing 40 //pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex 41 uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in 42 // VkVideoReferenceSlotKHR structures representing 43 //pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex 44 uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in 45 // VkVideoReferenceSlotKHR structures representing 46 //pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex 47 StdVideoDecodeH265PictureInfoFlags flags; 48 } StdVideoDecodeH265PictureInfo; 49 50 typedef struct StdVideoDecodeH265ReferenceInfoFlags { 51 uint32_t is_long_term : 1; 52 uint32_t is_non_existing : 1; 53 } StdVideoDecodeH265ReferenceInfoFlags; 54 55 typedef struct StdVideoDecodeH265ReferenceInfo { 56 int32_t PicOrderCntVal; 57 StdVideoDecodeH265ReferenceInfoFlags flags; 58 } StdVideoDecodeH265ReferenceInfo; 59 60 #ifdef __cplusplus 61 } 62 #endif 63 64 #endif // VULKAN_VIDEO_CODEC_H265STD_DECODE_H_ 65