Path: blob/21.2-virgl/include/vk_video/vulkan_video_codec_h264std_encode.h
4558 views
/*1** Copyright (c) 2019-2021 The Khronos Group Inc.2**3** SPDX-License-Identifier: Apache-2.04*/56#ifndef VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_7#define VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_ 189#ifdef __cplusplus10extern "C" {11#endif1213#include "vk_video/vulkan_video_codec_h264std.h"1415// *************************************************16// Video H.264 Encode related parameters:17// *************************************************1819typedef struct StdVideoEncodeH264SliceHeaderFlags {20uint32_t idr_flag:1;21uint32_t is_reference_flag:1;22uint32_t num_ref_idx_active_override_flag:1;23uint32_t no_output_of_prior_pics_flag:1;24uint32_t long_term_reference_flag:1;25uint32_t adaptive_ref_pic_marking_mode_flag:1;26uint32_t no_prior_references_available_flag:1;27} StdVideoEncodeH264SliceHeaderFlags;2829typedef struct StdVideoEncodeH264PictureInfoFlags {30uint32_t idr_flag:1;31uint32_t is_reference_flag:1;32uint32_t long_term_reference_flag:1;33} StdVideoEncodeH264PictureInfoFlags;3435typedef struct StdVideoEncodeH264RefMgmtFlags {36uint32_t ref_pic_list_modification_l0_flag:1;37uint32_t ref_pic_list_modification_l1_flag:1;38} StdVideoEncodeH264RefMgmtFlags;3940typedef struct StdVideoEncodeH264RefListModEntry {41StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc;42uint16_t abs_diff_pic_num_minus1;43uint16_t long_term_pic_num;44} StdVideoEncodeH264RefListModEntry;4546typedef struct StdVideoEncodeH264RefPicMarkingEntry {47StdVideoH264MemMgmtControlOp operation;48uint16_t difference_of_pic_nums_minus1;49uint16_t long_term_pic_num;50uint16_t long_term_frame_idx;51uint16_t max_long_term_frame_idx_plus1;52} StdVideoEncodeH264RefPicMarkingEntry;5354typedef struct StdVideoEncodeH264RefMemMgmtCtrlOperations {55StdVideoEncodeH264RefMgmtFlags flags;56uint8_t refList0ModOpCount;57StdVideoEncodeH264RefListModEntry* pRefList0ModOperations;58uint8_t refList1ModOpCount;59StdVideoEncodeH264RefListModEntry* pRefList1ModOperations;60uint8_t refPicMarkingOpCount;61StdVideoEncodeH264RefPicMarkingEntry* pRefPicMarkingOperations;62} StdVideoEncodeH264RefMemMgmtCtrlOperations;6364typedef struct StdVideoEncodeH264PictureInfo {65StdVideoEncodeH264PictureInfoFlags flags;66StdVideoH264PictureType pictureType;67uint32_t frameNum;68uint32_t pictureOrderCount;69uint16_t long_term_pic_num;70uint16_t long_term_frame_idx;71} StdVideoEncodeH264PictureInfo;7273typedef struct StdVideoEncodeH264SliceHeader {74StdVideoEncodeH264SliceHeaderFlags flags;75StdVideoH264SliceType slice_type;76uint8_t seq_parameter_set_id;77uint8_t pic_parameter_set_id;78uint16_t idr_pic_id;79uint8_t num_ref_idx_l0_active_minus1;80uint8_t num_ref_idx_l1_active_minus1;81StdVideoH264CabacInitIdc cabac_init_idc;82StdVideoH264DisableDeblockingFilterIdc disable_deblocking_filter_idc;83int8_t slice_alpha_c0_offset_div2;84int8_t slice_beta_offset_div2;85StdVideoEncodeH264RefMemMgmtCtrlOperations* pMemMgmtCtrlOperations;86} StdVideoEncodeH264SliceHeader;878889#ifdef __cplusplus90}91#endif9293#endif // VULKAN_VIDEO_CODEC_H264STD_ENCODE_H_949596