1 #ifndef VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_
2 #define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 1
3 
4 /*
5 ** Copyright 2015-2022 The Khronos Group Inc.
6 **
7 ** SPDX-License-Identifier: Apache-2.0
8 */
9 
10 /*
11 ** This header is generated from the Khronos Vulkan XML API Registry.
12 **
13 */
14 
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 
21 
22 #define vulkan_video_codec_h264std_encode 1
23 typedef struct StdVideoEncodeH264SliceHeaderFlags {
24     uint32_t    direct_spatial_mv_pred_flag : 1;
25     uint32_t    num_ref_idx_active_override_flag : 1;
26     uint32_t    no_output_of_prior_pics_flag : 1;
27     uint32_t    adaptive_ref_pic_marking_mode_flag : 1;
28     uint32_t    no_prior_references_available_flag : 1;
29 } StdVideoEncodeH264SliceHeaderFlags;
30 
31 typedef struct StdVideoEncodeH264PictureInfoFlags {
32     uint32_t    idr_flag : 1;
33     uint32_t    is_reference_flag : 1;
34     uint32_t    long_term_reference_flag : 1;
35 } StdVideoEncodeH264PictureInfoFlags;
36 
37 typedef struct StdVideoEncodeH264ReferenceInfoFlags {
38     uint32_t    is_long_term : 1;
39 } StdVideoEncodeH264ReferenceInfoFlags;
40 
41 typedef struct StdVideoEncodeH264RefMgmtFlags {
42     uint32_t    ref_pic_list_modification_l0_flag : 1;
43     uint32_t    ref_pic_list_modification_l1_flag : 1;
44 } StdVideoEncodeH264RefMgmtFlags;
45 
46 typedef struct StdVideoEncodeH264RefListModEntry {
47     StdVideoH264ModificationOfPicNumsIdc    modification_of_pic_nums_idc;
48     uint16_t                                abs_diff_pic_num_minus1;
49     uint16_t                                long_term_pic_num;
50 } StdVideoEncodeH264RefListModEntry;
51 
52 typedef struct StdVideoEncodeH264RefPicMarkingEntry {
53     StdVideoH264MemMgmtControlOp    operation;
54     uint16_t                        difference_of_pic_nums_minus1;
55     uint16_t                        long_term_pic_num;
56     uint16_t                        long_term_frame_idx;
57     uint16_t                        max_long_term_frame_idx_plus1;
58 } StdVideoEncodeH264RefPicMarkingEntry;
59 
60 typedef struct StdVideoEncodeH264RefMemMgmtCtrlOperations {
61     StdVideoEncodeH264RefMgmtFlags           flags;
62     uint8_t                                  refList0ModOpCount;
63     StdVideoEncodeH264RefListModEntry*       pRefList0ModOperations;
64     uint8_t                                  refList1ModOpCount;
65     StdVideoEncodeH264RefListModEntry*       pRefList1ModOperations;
66     uint8_t                                  refPicMarkingOpCount;
67     StdVideoEncodeH264RefPicMarkingEntry*    pRefPicMarkingOperations;
68 } StdVideoEncodeH264RefMemMgmtCtrlOperations;
69 
70 typedef struct StdVideoEncodeH264PictureInfo {
71     StdVideoEncodeH264PictureInfoFlags    flags;
72     StdVideoH264PictureType               pictureType;
73     uint32_t                              frame_num;
74     int32_t                               PicOrderCnt;
75 } StdVideoEncodeH264PictureInfo;
76 
77 typedef struct StdVideoEncodeH264ReferenceInfo {
78     StdVideoEncodeH264ReferenceInfoFlags    flags;
79     uint32_t                                FrameNum;
80     int32_t                                 PicOrderCnt;
81     uint16_t                                long_term_pic_num;
82     uint16_t                                long_term_frame_idx;
83 } StdVideoEncodeH264ReferenceInfo;
84 
85 typedef struct StdVideoEncodeH264SliceHeader {
86     StdVideoEncodeH264SliceHeaderFlags        flags;
87     uint32_t                                  first_mb_in_slice;
88     StdVideoH264SliceType                     slice_type;
89     uint8_t                                   seq_parameter_set_id;
90     uint8_t                                   pic_parameter_set_id;
91     uint16_t                                  idr_pic_id;
92     uint8_t                                   num_ref_idx_l0_active_minus1;
93     uint8_t                                   num_ref_idx_l1_active_minus1;
94     StdVideoH264CabacInitIdc                  cabac_init_idc;
95     StdVideoH264DisableDeblockingFilterIdc    disable_deblocking_filter_idc;
96     int8_t                                    slice_alpha_c0_offset_div2;
97     int8_t                                    slice_beta_offset_div2;
98 } StdVideoEncodeH264SliceHeader;
99 
100 
101 #ifdef __cplusplus
102 }
103 #endif
104 
105 #endif
106