include: Add ID3D12VideoEncoderHeap in d3d12video.idl.

This commit is contained in:
Biswapriyo Nath 2023-09-26 03:41:41 +00:00 committed by Alexandre Julliard
parent 9e5778b81e
commit c965dbae34

View file

@ -612,6 +612,81 @@ typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC
};
} D3D12_VIDEO_ENCODER_PROFILE_DESC;
typedef enum D3D12_VIDEO_ENCODER_LEVELS_H264
{
D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0,
D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1,
D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2,
D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3,
D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4,
D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5,
D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6,
D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7,
D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8,
D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9,
D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10,
D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11,
D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12,
D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13,
D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14,
D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15,
D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16,
D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17,
D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18,
D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19,
} D3D12_VIDEO_ENCODER_LEVELS_H264;
typedef enum D3D12_VIDEO_ENCODER_TIER_HEVC
{
D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0,
D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1,
} D3D12_VIDEO_ENCODER_TIER_HEVC;
typedef enum D3D12_VIDEO_ENCODER_LEVELS_HEVC
{
D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11,
D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12,
} D3D12_VIDEO_ENCODER_LEVELS_HEVC;
typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC
{
D3D12_VIDEO_ENCODER_LEVELS_HEVC Level;
D3D12_VIDEO_ENCODER_TIER_HEVC Tier;
} D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC;
typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING
{
UINT DataSize;
union
{
D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting;
D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting;
};
} D3D12_VIDEO_ENCODER_LEVEL_SETTING;
typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC
{
UINT Width;
UINT Height;
} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC;
typedef enum D3D12_VIDEO_ENCODER_HEAP_FLAGS
{
D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0x0,
} D3D12_VIDEO_ENCODER_HEAP_FLAGS;
cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS);")
typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES
{
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0,
@ -733,3 +808,33 @@ interface ID3D12VideoEncoder : ID3D12Pageable
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE GetMaxMotionEstimationPrecision();
}
[
uuid(22b35d96-876a-44c0-b25e-fb8c9c7f1c4a),
object,
local,
pointer_default(unique)
]
interface ID3D12VideoEncoderHeap : ID3D12Pageable
{
UINT GetNodeMask();
D3D12_VIDEO_ENCODER_HEAP_FLAGS GetEncoderHeapFlags();
D3D12_VIDEO_ENCODER_CODEC GetCodec();
HRESULT GetCodecProfile(
[in, out] D3D12_VIDEO_ENCODER_PROFILE_DESC dst_profile
);
HRESULT GetCodecLevel(
[in, out] D3D12_VIDEO_ENCODER_LEVEL_SETTING dst_level
);
UINT GetResolutionListCount();
HRESULT GetResolutionList(
[in] const UINT resolutions_list_count,
[out] D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *resolution_list
);
}