• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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