Path: blob/master/thirdparty/directx_headers/include/directx/d3d12video.h
21770 views
/*-------------------------------------------------------------------------------------1*2* Copyright (c) Microsoft Corporation3* Licensed under the MIT license4*5*-------------------------------------------------------------------------------------*/678/* this ALWAYS GENERATED file contains the definitions for the interfaces */91011/* File created by MIDL compiler version 8.01.0628 */12131415/* verify that the <rpcndr.h> version is high enough to compile this file*/16#ifndef __REQUIRED_RPCNDR_H_VERSION__17#define __REQUIRED_RPCNDR_H_VERSION__ 50018#endif1920/* verify that the <rpcsal.h> version is high enough to compile this file*/21#ifndef __REQUIRED_RPCSAL_H_VERSION__22#define __REQUIRED_RPCSAL_H_VERSION__ 10023#endif2425#include "rpc.h"26#include "rpcndr.h"2728#ifndef __RPCNDR_H_VERSION__29#error this stub requires an updated version of <rpcndr.h>30#endif /* __RPCNDR_H_VERSION__ */3132#ifndef COM_NO_WINDOWS_H33#include "windows.h"34#include "ole2.h"35#endif /*COM_NO_WINDOWS_H*/3637#ifndef __d3d12video_h__38#define __d3d12video_h__3940#if defined(_MSC_VER) && (_MSC_VER >= 1020)41#pragma once42#endif4344#ifndef DECLSPEC_XFGVIRT45#if defined(_CONTROL_FLOW_GUARD_XFG)46#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))47#else48#define DECLSPEC_XFGVIRT(base, func)49#endif50#endif5152/* Forward Declarations */5354#ifndef __ID3D12VideoDecoderHeap_FWD_DEFINED__55#define __ID3D12VideoDecoderHeap_FWD_DEFINED__56typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap;5758#endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */596061#ifndef __ID3D12VideoDevice_FWD_DEFINED__62#define __ID3D12VideoDevice_FWD_DEFINED__63typedef interface ID3D12VideoDevice ID3D12VideoDevice;6465#endif /* __ID3D12VideoDevice_FWD_DEFINED__ */666768#ifndef __ID3D12VideoDecoder_FWD_DEFINED__69#define __ID3D12VideoDecoder_FWD_DEFINED__70typedef interface ID3D12VideoDecoder ID3D12VideoDecoder;7172#endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */737475#ifndef __ID3D12VideoProcessor_FWD_DEFINED__76#define __ID3D12VideoProcessor_FWD_DEFINED__77typedef interface ID3D12VideoProcessor ID3D12VideoProcessor;7879#endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */808182#ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__83#define __ID3D12VideoDecodeCommandList_FWD_DEFINED__84typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList;8586#endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */878889#ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__90#define __ID3D12VideoProcessCommandList_FWD_DEFINED__91typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList;9293#endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */949596#ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__97#define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__98typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1;99100#endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */101102103#ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__104#define __ID3D12VideoProcessCommandList1_FWD_DEFINED__105typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1;106107#endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */108109110#ifndef __ID3D12VideoMotionEstimator_FWD_DEFINED__111#define __ID3D12VideoMotionEstimator_FWD_DEFINED__112typedef interface ID3D12VideoMotionEstimator ID3D12VideoMotionEstimator;113114#endif /* __ID3D12VideoMotionEstimator_FWD_DEFINED__ */115116117#ifndef __ID3D12VideoMotionVectorHeap_FWD_DEFINED__118#define __ID3D12VideoMotionVectorHeap_FWD_DEFINED__119typedef interface ID3D12VideoMotionVectorHeap ID3D12VideoMotionVectorHeap;120121#endif /* __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ */122123124#ifndef __ID3D12VideoDevice1_FWD_DEFINED__125#define __ID3D12VideoDevice1_FWD_DEFINED__126typedef interface ID3D12VideoDevice1 ID3D12VideoDevice1;127128#endif /* __ID3D12VideoDevice1_FWD_DEFINED__ */129130131#ifndef __ID3D12VideoEncodeCommandList_FWD_DEFINED__132#define __ID3D12VideoEncodeCommandList_FWD_DEFINED__133typedef interface ID3D12VideoEncodeCommandList ID3D12VideoEncodeCommandList;134135#endif /* __ID3D12VideoEncodeCommandList_FWD_DEFINED__ */136137138#ifndef __ID3D12VideoDecoder1_FWD_DEFINED__139#define __ID3D12VideoDecoder1_FWD_DEFINED__140typedef interface ID3D12VideoDecoder1 ID3D12VideoDecoder1;141142#endif /* __ID3D12VideoDecoder1_FWD_DEFINED__ */143144145#ifndef __ID3D12VideoDecoderHeap1_FWD_DEFINED__146#define __ID3D12VideoDecoderHeap1_FWD_DEFINED__147typedef interface ID3D12VideoDecoderHeap1 ID3D12VideoDecoderHeap1;148149#endif /* __ID3D12VideoDecoderHeap1_FWD_DEFINED__ */150151152#ifndef __ID3D12VideoProcessor1_FWD_DEFINED__153#define __ID3D12VideoProcessor1_FWD_DEFINED__154typedef interface ID3D12VideoProcessor1 ID3D12VideoProcessor1;155156#endif /* __ID3D12VideoProcessor1_FWD_DEFINED__ */157158159#ifndef __ID3D12VideoExtensionCommand_FWD_DEFINED__160#define __ID3D12VideoExtensionCommand_FWD_DEFINED__161typedef interface ID3D12VideoExtensionCommand ID3D12VideoExtensionCommand;162163#endif /* __ID3D12VideoExtensionCommand_FWD_DEFINED__ */164165166#ifndef __ID3D12VideoDevice2_FWD_DEFINED__167#define __ID3D12VideoDevice2_FWD_DEFINED__168typedef interface ID3D12VideoDevice2 ID3D12VideoDevice2;169170#endif /* __ID3D12VideoDevice2_FWD_DEFINED__ */171172173#ifndef __ID3D12VideoDecodeCommandList2_FWD_DEFINED__174#define __ID3D12VideoDecodeCommandList2_FWD_DEFINED__175typedef interface ID3D12VideoDecodeCommandList2 ID3D12VideoDecodeCommandList2;176177#endif /* __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ */178179180#ifndef __ID3D12VideoDecodeCommandList3_FWD_DEFINED__181#define __ID3D12VideoDecodeCommandList3_FWD_DEFINED__182typedef interface ID3D12VideoDecodeCommandList3 ID3D12VideoDecodeCommandList3;183184#endif /* __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ */185186187#ifndef __ID3D12VideoProcessCommandList2_FWD_DEFINED__188#define __ID3D12VideoProcessCommandList2_FWD_DEFINED__189typedef interface ID3D12VideoProcessCommandList2 ID3D12VideoProcessCommandList2;190191#endif /* __ID3D12VideoProcessCommandList2_FWD_DEFINED__ */192193194#ifndef __ID3D12VideoProcessCommandList3_FWD_DEFINED__195#define __ID3D12VideoProcessCommandList3_FWD_DEFINED__196typedef interface ID3D12VideoProcessCommandList3 ID3D12VideoProcessCommandList3;197198#endif /* __ID3D12VideoProcessCommandList3_FWD_DEFINED__ */199200201#ifndef __ID3D12VideoEncodeCommandList1_FWD_DEFINED__202#define __ID3D12VideoEncodeCommandList1_FWD_DEFINED__203typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1;204205#endif /* __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ */206207208#ifndef __ID3D12VideoEncoder_FWD_DEFINED__209#define __ID3D12VideoEncoder_FWD_DEFINED__210typedef interface ID3D12VideoEncoder ID3D12VideoEncoder;211212#endif /* __ID3D12VideoEncoder_FWD_DEFINED__ */213214215#ifndef __ID3D12VideoEncoderHeap_FWD_DEFINED__216#define __ID3D12VideoEncoderHeap_FWD_DEFINED__217typedef interface ID3D12VideoEncoderHeap ID3D12VideoEncoderHeap;218219#endif /* __ID3D12VideoEncoderHeap_FWD_DEFINED__ */220221222#ifndef __ID3D12VideoDevice3_FWD_DEFINED__223#define __ID3D12VideoDevice3_FWD_DEFINED__224typedef interface ID3D12VideoDevice3 ID3D12VideoDevice3;225226#endif /* __ID3D12VideoDevice3_FWD_DEFINED__ */227228229#ifndef __ID3D12VideoEncodeCommandList2_FWD_DEFINED__230#define __ID3D12VideoEncodeCommandList2_FWD_DEFINED__231typedef interface ID3D12VideoEncodeCommandList2 ID3D12VideoEncodeCommandList2;232233#endif /* __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ */234235236#ifndef __ID3D12VideoEncodeCommandList3_FWD_DEFINED__237#define __ID3D12VideoEncodeCommandList3_FWD_DEFINED__238typedef interface ID3D12VideoEncodeCommandList3 ID3D12VideoEncodeCommandList3;239240#endif /* __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ */241242243#ifndef __ID3D12VideoEncoderHeap1_FWD_DEFINED__244#define __ID3D12VideoEncoderHeap1_FWD_DEFINED__245typedef interface ID3D12VideoEncoderHeap1 ID3D12VideoEncoderHeap1;246247#endif /* __ID3D12VideoEncoderHeap1_FWD_DEFINED__ */248249250#ifndef __ID3D12VideoDevice4_FWD_DEFINED__251#define __ID3D12VideoDevice4_FWD_DEFINED__252typedef interface ID3D12VideoDevice4 ID3D12VideoDevice4;253254#endif /* __ID3D12VideoDevice4_FWD_DEFINED__ */255256257#ifndef __ID3D12VideoEncodeCommandList4_FWD_DEFINED__258#define __ID3D12VideoEncodeCommandList4_FWD_DEFINED__259typedef interface ID3D12VideoEncodeCommandList4 ID3D12VideoEncodeCommandList4;260261#endif /* __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ */262263264/* header files for imported files */265#include "oaidl.h"266#include "ocidl.h"267#include "dxgicommon.h"268#include "d3d12.h"269270#ifdef __cplusplus271extern "C"{272#endif273274275/* interface __MIDL_itf_d3d12video_0000_0000 */276/* [local] */277278#include <winapifamily.h>279#pragma region App Family280#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)281typedef282enum D3D12_VIDEO_FIELD_TYPE283{284D3D12_VIDEO_FIELD_TYPE_NONE = 0,285D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1,286D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2287} D3D12_VIDEO_FIELD_TYPE;288289typedef290enum D3D12_VIDEO_FRAME_STEREO_FORMAT291{292D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0,293D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1,294D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2,295D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3,296D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4297} D3D12_VIDEO_FRAME_STEREO_FORMAT;298299typedef struct D3D12_VIDEO_FORMAT300{301DXGI_FORMAT Format;302DXGI_COLOR_SPACE_TYPE ColorSpace;303} D3D12_VIDEO_FORMAT;304305typedef struct D3D12_VIDEO_SAMPLE306{307UINT Width;308UINT Height;309D3D12_VIDEO_FORMAT Format;310} D3D12_VIDEO_SAMPLE;311312typedef313enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE314{315D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0,316D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1317} D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE;318319typedef320enum D3D12_FEATURE_VIDEO321{322D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0,323D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1,324D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2,325D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3,326D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5,327D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6,328D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7,329D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8,330D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9,331D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10,332D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11,333D3D12_FEATURE_VIDEO_ARCHITECTURE = 17,334D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18,335D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19,336D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20,337D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21,338D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22,339D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23,340D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24,341D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25,342D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26,343D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27,344D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28,345D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29,346D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,347D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31,348D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32,349D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33,350D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34,351D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35,352D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36,353D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37,354D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38,355D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39,356D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40,357D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41,358D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42,359D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43,360D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44,361D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45,362D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46,363D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47,364D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 = 48,365D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT = 49,366D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT = 50,367D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS = 51,368D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH = 52,369D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 = 55,370D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE1 = 56,371D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS = 57372} D3D12_FEATURE_VIDEO;373374typedef375enum D3D12_BITSTREAM_ENCRYPTION_TYPE376{377D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0378} D3D12_BITSTREAM_ENCRYPTION_TYPE;379380typedef struct D3D12_VIDEO_DECODE_CONFIGURATION381{382GUID DecodeProfile;383D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption;384D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType;385} D3D12_VIDEO_DECODE_CONFIGURATION;386387typedef struct D3D12_VIDEO_DECODER_DESC388{389UINT NodeMask;390D3D12_VIDEO_DECODE_CONFIGURATION Configuration;391} D3D12_VIDEO_DECODER_DESC;392393typedef struct D3D12_VIDEO_DECODER_HEAP_DESC394{395UINT NodeMask;396D3D12_VIDEO_DECODE_CONFIGURATION Configuration;397UINT DecodeWidth;398UINT DecodeHeight;399DXGI_FORMAT Format;400DXGI_RATIONAL FrameRate;401UINT BitRate;402UINT MaxDecodePictureBufferCount;403} D3D12_VIDEO_DECODER_HEAP_DESC;404405typedef struct D3D12_VIDEO_SIZE_RANGE406{407UINT MaxWidth;408UINT MaxHeight;409UINT MinWidth;410UINT MinHeight;411} D3D12_VIDEO_SIZE_RANGE;412413typedef414enum D3D12_VIDEO_PROCESS_FILTER415{416D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0,417D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1,418D3D12_VIDEO_PROCESS_FILTER_HUE = 2,419D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3,420D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4,421D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5,422D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6,423D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7424} D3D12_VIDEO_PROCESS_FILTER;425426typedef427enum D3D12_VIDEO_PROCESS_FILTER_FLAGS428{429D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0,430D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) ,431D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) ,432D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) ,433D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) ,434D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) ,435D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) ,436D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) ,437D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT )438} D3D12_VIDEO_PROCESS_FILTER_FLAGS;439440DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS )441typedef442enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS443{444D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0,445D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1,446D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000447} D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS;448449DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS )450typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING451{452BOOL Enable;453FLOAT Alpha;454} D3D12_VIDEO_PROCESS_ALPHA_BLENDING;455456typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY457{458BOOL Enable;459FLOAT Lower;460FLOAT Upper;461} D3D12_VIDEO_PROCESS_LUMA_KEY;462463typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC464{465DXGI_FORMAT Format;466DXGI_COLOR_SPACE_TYPE ColorSpace;467DXGI_RATIONAL SourceAspectRatio;468DXGI_RATIONAL DestinationAspectRatio;469DXGI_RATIONAL FrameRate;470D3D12_VIDEO_SIZE_RANGE SourceSizeRange;471D3D12_VIDEO_SIZE_RANGE DestinationSizeRange;472BOOL EnableOrientation;473D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags;474D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat;475D3D12_VIDEO_FIELD_TYPE FieldType;476D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;477BOOL EnableAlphaBlending;478D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey;479UINT NumPastFrames;480UINT NumFutureFrames;481BOOL EnableAutoProcessing;482} D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC;483484typedef485enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE486{487D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0,488D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1,489D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2,490D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3491} D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE;492493typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC494{495DXGI_FORMAT Format;496DXGI_COLOR_SPACE_TYPE ColorSpace;497D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode;498UINT AlphaFillModeSourceStreamIndex;499FLOAT BackgroundColor[ 4 ];500DXGI_RATIONAL FrameRate;501BOOL EnableStereo;502} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC;503504505506extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec;507extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec;508509#ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__510#define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__511512/* interface ID3D12VideoDecoderHeap */513/* [unique][local][object][uuid] */514515516EXTERN_C const IID IID_ID3D12VideoDecoderHeap;517518#if defined(__cplusplus) && !defined(CINTERFACE)519520MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F")521ID3D12VideoDecoderHeap : public ID3D12Pageable522{523public:524#if defined(_MSC_VER) || !defined(_WIN32)525virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;526#else527virtual D3D12_VIDEO_DECODER_HEAP_DESC *STDMETHODCALLTYPE GetDesc(528D3D12_VIDEO_DECODER_HEAP_DESC * RetVal) = 0;529#endif530531};532533534#else /* C style interface */535536typedef struct ID3D12VideoDecoderHeapVtbl537{538BEGIN_INTERFACE539540DECLSPEC_XFGVIRT(IUnknown, QueryInterface)541HRESULT ( STDMETHODCALLTYPE *QueryInterface )(542ID3D12VideoDecoderHeap * This,543REFIID riid,544_COM_Outptr_ void **ppvObject);545546DECLSPEC_XFGVIRT(IUnknown, AddRef)547ULONG ( STDMETHODCALLTYPE *AddRef )(548ID3D12VideoDecoderHeap * This);549550DECLSPEC_XFGVIRT(IUnknown, Release)551ULONG ( STDMETHODCALLTYPE *Release )(552ID3D12VideoDecoderHeap * This);553554DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)555HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(556ID3D12VideoDecoderHeap * This,557_In_ REFGUID guid,558_Inout_ UINT *pDataSize,559_Out_writes_bytes_opt_( *pDataSize ) void *pData);560561DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)562HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(563ID3D12VideoDecoderHeap * This,564_In_ REFGUID guid,565_In_ UINT DataSize,566_In_reads_bytes_opt_( DataSize ) const void *pData);567568DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)569HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(570ID3D12VideoDecoderHeap * This,571_In_ REFGUID guid,572_In_opt_ const IUnknown *pData);573574DECLSPEC_XFGVIRT(ID3D12Object, SetName)575HRESULT ( STDMETHODCALLTYPE *SetName )(576ID3D12VideoDecoderHeap * This,577_In_z_ LPCWSTR Name);578579DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)580HRESULT ( STDMETHODCALLTYPE *GetDevice )(581ID3D12VideoDecoderHeap * This,582REFIID riid,583_COM_Outptr_opt_ void **ppvDevice);584585DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)586#if !defined(_WIN32)587D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(588ID3D12VideoDecoderHeap * This);589590#else591D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(592ID3D12VideoDecoderHeap * This,593D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);594595#endif596597END_INTERFACE598} ID3D12VideoDecoderHeapVtbl;599600interface ID3D12VideoDecoderHeap601{602CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl;603};604605606607#ifdef COBJMACROS608609610#define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \611( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )612613#define ID3D12VideoDecoderHeap_AddRef(This) \614( (This)->lpVtbl -> AddRef(This) )615616#define ID3D12VideoDecoderHeap_Release(This) \617( (This)->lpVtbl -> Release(This) )618619620#define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \621( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )622623#define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \624( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )625626#define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \627( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )628629#define ID3D12VideoDecoderHeap_SetName(This,Name) \630( (This)->lpVtbl -> SetName(This,Name) )631632633#define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \634( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )635636637#if !defined(_WIN32)638639#define ID3D12VideoDecoderHeap_GetDesc(This) \640( (This)->lpVtbl -> GetDesc(This) )641#else642#define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \643( (This)->lpVtbl -> GetDesc(This,RetVal) )644#endif645646#endif /* COBJMACROS */647648649#endif /* C style interface */650651652653654#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */655656657#ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__658#define __ID3D12VideoDevice_INTERFACE_DEFINED__659660/* interface ID3D12VideoDevice */661/* [unique][local][object][uuid] */662663664EXTERN_C const IID IID_ID3D12VideoDevice;665666#if defined(__cplusplus) && !defined(CINTERFACE)667668MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4")669ID3D12VideoDevice : public IUnknown670{671public:672virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(673D3D12_FEATURE_VIDEO FeatureVideo,674_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,675UINT FeatureSupportDataSize) = 0;676677virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(678_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,679_In_ REFIID riid,680_COM_Outptr_ void **ppVideoDecoder) = 0;681682virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap(683_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,684_In_ REFIID riid,685_COM_Outptr_ void **ppVideoDecoderHeap) = 0;686687virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(688UINT NodeMask,689_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,690UINT NumInputStreamDescs,691_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,692_In_ REFIID riid,693_COM_Outptr_ void **ppVideoProcessor) = 0;694695};696697698#else /* C style interface */699700typedef struct ID3D12VideoDeviceVtbl701{702BEGIN_INTERFACE703704DECLSPEC_XFGVIRT(IUnknown, QueryInterface)705HRESULT ( STDMETHODCALLTYPE *QueryInterface )(706ID3D12VideoDevice * This,707REFIID riid,708_COM_Outptr_ void **ppvObject);709710DECLSPEC_XFGVIRT(IUnknown, AddRef)711ULONG ( STDMETHODCALLTYPE *AddRef )(712ID3D12VideoDevice * This);713714DECLSPEC_XFGVIRT(IUnknown, Release)715ULONG ( STDMETHODCALLTYPE *Release )(716ID3D12VideoDevice * This);717718DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)719HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(720ID3D12VideoDevice * This,721D3D12_FEATURE_VIDEO FeatureVideo,722_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,723UINT FeatureSupportDataSize);724725DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)726HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(727ID3D12VideoDevice * This,728_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,729_In_ REFIID riid,730_COM_Outptr_ void **ppVideoDecoder);731732DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)733HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(734ID3D12VideoDevice * This,735_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,736_In_ REFIID riid,737_COM_Outptr_ void **ppVideoDecoderHeap);738739DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)740HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(741ID3D12VideoDevice * This,742UINT NodeMask,743_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,744UINT NumInputStreamDescs,745_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,746_In_ REFIID riid,747_COM_Outptr_ void **ppVideoProcessor);748749END_INTERFACE750} ID3D12VideoDeviceVtbl;751752interface ID3D12VideoDevice753{754CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl;755};756757758759#ifdef COBJMACROS760761762#define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \763( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )764765#define ID3D12VideoDevice_AddRef(This) \766( (This)->lpVtbl -> AddRef(This) )767768#define ID3D12VideoDevice_Release(This) \769( (This)->lpVtbl -> Release(This) )770771772#define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \773( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )774775#define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \776( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )777778#define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \779( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )780781#define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \782( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )783784#endif /* COBJMACROS */785786787#endif /* C style interface */788789790791792#endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */793794795#ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__796#define __ID3D12VideoDecoder_INTERFACE_DEFINED__797798/* interface ID3D12VideoDecoder */799/* [unique][local][object][uuid] */800801802EXTERN_C const IID IID_ID3D12VideoDecoder;803804#if defined(__cplusplus) && !defined(CINTERFACE)805806MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470")807ID3D12VideoDecoder : public ID3D12Pageable808{809public:810#if defined(_MSC_VER) || !defined(_WIN32)811virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0;812#else813virtual D3D12_VIDEO_DECODER_DESC *STDMETHODCALLTYPE GetDesc(814D3D12_VIDEO_DECODER_DESC * RetVal) = 0;815#endif816817};818819820#else /* C style interface */821822typedef struct ID3D12VideoDecoderVtbl823{824BEGIN_INTERFACE825826DECLSPEC_XFGVIRT(IUnknown, QueryInterface)827HRESULT ( STDMETHODCALLTYPE *QueryInterface )(828ID3D12VideoDecoder * This,829REFIID riid,830_COM_Outptr_ void **ppvObject);831832DECLSPEC_XFGVIRT(IUnknown, AddRef)833ULONG ( STDMETHODCALLTYPE *AddRef )(834ID3D12VideoDecoder * This);835836DECLSPEC_XFGVIRT(IUnknown, Release)837ULONG ( STDMETHODCALLTYPE *Release )(838ID3D12VideoDecoder * This);839840DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)841HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(842ID3D12VideoDecoder * This,843_In_ REFGUID guid,844_Inout_ UINT *pDataSize,845_Out_writes_bytes_opt_( *pDataSize ) void *pData);846847DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)848HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(849ID3D12VideoDecoder * This,850_In_ REFGUID guid,851_In_ UINT DataSize,852_In_reads_bytes_opt_( DataSize ) const void *pData);853854DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)855HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(856ID3D12VideoDecoder * This,857_In_ REFGUID guid,858_In_opt_ const IUnknown *pData);859860DECLSPEC_XFGVIRT(ID3D12Object, SetName)861HRESULT ( STDMETHODCALLTYPE *SetName )(862ID3D12VideoDecoder * This,863_In_z_ LPCWSTR Name);864865DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)866HRESULT ( STDMETHODCALLTYPE *GetDevice )(867ID3D12VideoDecoder * This,868REFIID riid,869_COM_Outptr_opt_ void **ppvDevice);870871DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)872#if !defined(_WIN32)873D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(874ID3D12VideoDecoder * This);875876#else877D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(878ID3D12VideoDecoder * This,879D3D12_VIDEO_DECODER_DESC * RetVal);880881#endif882883END_INTERFACE884} ID3D12VideoDecoderVtbl;885886interface ID3D12VideoDecoder887{888CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl;889};890891892893#ifdef COBJMACROS894895896#define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \897( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )898899#define ID3D12VideoDecoder_AddRef(This) \900( (This)->lpVtbl -> AddRef(This) )901902#define ID3D12VideoDecoder_Release(This) \903( (This)->lpVtbl -> Release(This) )904905906#define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \907( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )908909#define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \910( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )911912#define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \913( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )914915#define ID3D12VideoDecoder_SetName(This,Name) \916( (This)->lpVtbl -> SetName(This,Name) )917918919#define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \920( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )921922923#if !defined(_WIN32)924925#define ID3D12VideoDecoder_GetDesc(This) \926( (This)->lpVtbl -> GetDesc(This) )927#else928#define ID3D12VideoDecoder_GetDesc(This,RetVal) \929( (This)->lpVtbl -> GetDesc(This,RetVal) )930#endif931932#endif /* COBJMACROS */933934935#endif /* C style interface */936937938939940#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */941942943/* interface __MIDL_itf_d3d12video_0000_0003 */944/* [local] */945946typedef947enum D3D12_VIDEO_DECODE_TIER948{949D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0,950D3D12_VIDEO_DECODE_TIER_1 = 1,951D3D12_VIDEO_DECODE_TIER_2 = 2,952D3D12_VIDEO_DECODE_TIER_3 = 3953} D3D12_VIDEO_DECODE_TIER;954955typedef956enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS957{958D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0,959D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1960} D3D12_VIDEO_DECODE_SUPPORT_FLAGS;961962DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS )963typedef964enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS965{966D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0,967D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1,968D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2,969D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4,970D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8971} D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS;972973DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS )974typedef975enum D3D12_VIDEO_DECODE_STATUS976{977D3D12_VIDEO_DECODE_STATUS_OK = 0,978D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1,979D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2,980D3D12_VIDEO_DECODE_STATUS_RESTART = 3,981D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4982} D3D12_VIDEO_DECODE_STATUS;983984typedef985enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE986{987D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0,988D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1,989D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2,990D3D12_VIDEO_DECODE_ARGUMENT_TYPE_HUFFMAN_TABLE = 3991} D3D12_VIDEO_DECODE_ARGUMENT_TYPE;992993typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT994{995UINT NodeIndex;996D3D12_VIDEO_DECODE_CONFIGURATION Configuration;997UINT Width;998UINT Height;999DXGI_FORMAT DecodeFormat;1000DXGI_RATIONAL FrameRate;1001UINT BitRate;1002D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags;1003D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags;1004D3D12_VIDEO_DECODE_TIER DecodeTier;1005} D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT;10061007typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT1008{1009UINT NodeIndex;1010UINT ProfileCount;1011} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT;10121013typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES1014{1015UINT NodeIndex;1016UINT ProfileCount;1017_Field_size_full_(ProfileCount) GUID *pProfiles;1018} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES;10191020typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT1021{1022UINT NodeIndex;1023D3D12_VIDEO_DECODE_CONFIGURATION Configuration;1024UINT FormatCount;1025} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT;10261027typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS1028{1029UINT NodeIndex;1030D3D12_VIDEO_DECODE_CONFIGURATION Configuration;1031UINT FormatCount;1032_Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats;1033} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS;10341035typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE1036{1037BOOL IOCoherent;1038} D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE;10391040typedef1041enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT1042{1043D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0,1044D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1,1045D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2,1046D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0,1047D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1,1048D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2,1049D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 31050} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT;10511052typedef1053enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS1054{1055D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0,1056D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) ,1057D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) ,1058D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) ,1059D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) ,1060D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) ,1061D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) ,1062D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A )1063} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS;10641065DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS )1066typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM1067{1068UINT NodeIndex;1069GUID DecodeProfile;1070UINT Width;1071UINT Height;1072DXGI_FORMAT DecodeFormat;1073D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components;1074UINT BinCount;1075UINT CounterBitDepth;1076} D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM;10771078typedef1079enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS1080{1081D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0,1082D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x11083} D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS;10841085DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS )1086typedef1087enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS1088{1089D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0,1090D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1,1091D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2,1092D3D12_VIDEO_SCALE_SUPPORT_FLAG_DPB_ENCODER_RESOURCES = 0x41093} D3D12_VIDEO_SCALE_SUPPORT_FLAGS;10941095DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS )1096typedef struct D3D12_VIDEO_SCALE_SUPPORT1097{1098D3D12_VIDEO_SIZE_RANGE OutputSizeRange;1099D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags;1100} D3D12_VIDEO_SCALE_SUPPORT;11011102typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT1103{1104UINT NodeIndex;1105D3D12_VIDEO_DECODE_CONFIGURATION Configuration;1106D3D12_VIDEO_SAMPLE DecodeSample;1107D3D12_VIDEO_FORMAT OutputFormat;1108DXGI_RATIONAL FrameRate;1109UINT BitRate;1110D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags;1111D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;1112} D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT;11131114typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1115{1116D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;1117UINT64 MemoryPoolL0Size;1118UINT64 MemoryPoolL1Size;1119} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE;11201121typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1122{1123UINT NodeMask;1124const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;1125UINT NumInputStreamDescs;1126const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;1127UINT64 MemoryPoolL0Size;1128UINT64 MemoryPoolL1Size;1129} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;11301131typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS1132{1133UINT64 Status;1134UINT64 NumMacroblocksAffected;1135DXGI_RATIONAL FrameRate;1136UINT BitRate;1137} D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS;11381139typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT1140{1141D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;1142UINT Size;1143_Field_size_bytes_full_(Size) void *pData;1144} D3D12_VIDEO_DECODE_FRAME_ARGUMENT;11451146typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES1147{1148UINT NumTexture2Ds;1149_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;1150_Field_size_full_(NumTexture2Ds) UINT *pSubresources;1151_Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps;1152} D3D12_VIDEO_DECODE_REFERENCE_FRAMES;11531154typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM1155{1156ID3D12Resource *pBuffer;1157UINT64 Offset;1158UINT64 Size;1159} D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM;11601161typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1162{1163BOOL Enable;1164ID3D12Resource *pReferenceTexture2D;1165UINT ReferenceSubresource;1166DXGI_COLOR_SPACE_TYPE OutputColorSpace;1167DXGI_COLOR_SPACE_TYPE DecodeColorSpace;1168} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS;11691170typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS1171{1172UINT NumFrameArguments;1173D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ];1174D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames;1175D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream;1176ID3D12VideoDecoderHeap *pHeap;1177} D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS;11781179typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1180{1181ID3D12Resource *pOutputTexture2D;1182UINT OutputSubresource;1183D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments;1184} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS;1185118611871188extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec;1189extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec;11901191#ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__1192#define __ID3D12VideoProcessor_INTERFACE_DEFINED__11931194/* interface ID3D12VideoProcessor */1195/* [unique][local][object][uuid] */119611971198EXTERN_C const IID IID_ID3D12VideoProcessor;11991200#if defined(__cplusplus) && !defined(CINTERFACE)12011202MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138")1203ID3D12VideoProcessor : public ID3D12Pageable1204{1205public:1206virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;12071208virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0;12091210virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs(1211UINT NumInputStreamDescs,1212_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0;12131214#if defined(_MSC_VER) || !defined(_WIN32)1215virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0;1216#else1217virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *STDMETHODCALLTYPE GetOutputStreamDesc(1218D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal) = 0;1219#endif12201221};122212231224#else /* C style interface */12251226typedef struct ID3D12VideoProcessorVtbl1227{1228BEGIN_INTERFACE12291230DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1231HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1232ID3D12VideoProcessor * This,1233REFIID riid,1234_COM_Outptr_ void **ppvObject);12351236DECLSPEC_XFGVIRT(IUnknown, AddRef)1237ULONG ( STDMETHODCALLTYPE *AddRef )(1238ID3D12VideoProcessor * This);12391240DECLSPEC_XFGVIRT(IUnknown, Release)1241ULONG ( STDMETHODCALLTYPE *Release )(1242ID3D12VideoProcessor * This);12431244DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1245HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1246ID3D12VideoProcessor * This,1247_In_ REFGUID guid,1248_Inout_ UINT *pDataSize,1249_Out_writes_bytes_opt_( *pDataSize ) void *pData);12501251DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1252HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1253ID3D12VideoProcessor * This,1254_In_ REFGUID guid,1255_In_ UINT DataSize,1256_In_reads_bytes_opt_( DataSize ) const void *pData);12571258DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1259HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1260ID3D12VideoProcessor * This,1261_In_ REFGUID guid,1262_In_opt_ const IUnknown *pData);12631264DECLSPEC_XFGVIRT(ID3D12Object, SetName)1265HRESULT ( STDMETHODCALLTYPE *SetName )(1266ID3D12VideoProcessor * This,1267_In_z_ LPCWSTR Name);12681269DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1270HRESULT ( STDMETHODCALLTYPE *GetDevice )(1271ID3D12VideoProcessor * This,1272REFIID riid,1273_COM_Outptr_opt_ void **ppvDevice);12741275DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)1276UINT ( STDMETHODCALLTYPE *GetNodeMask )(1277ID3D12VideoProcessor * This);12781279DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)1280UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(1281ID3D12VideoProcessor * This);12821283DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)1284HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(1285ID3D12VideoProcessor * This,1286UINT NumInputStreamDescs,1287_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);12881289DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)1290#if !defined(_WIN32)1291D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(1292ID3D12VideoProcessor * This);12931294#else1295D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(1296ID3D12VideoProcessor * This,1297D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);12981299#endif13001301END_INTERFACE1302} ID3D12VideoProcessorVtbl;13031304interface ID3D12VideoProcessor1305{1306CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl;1307};1308130913101311#ifdef COBJMACROS131213131314#define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \1315( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )13161317#define ID3D12VideoProcessor_AddRef(This) \1318( (This)->lpVtbl -> AddRef(This) )13191320#define ID3D12VideoProcessor_Release(This) \1321( (This)->lpVtbl -> Release(This) )132213231324#define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \1325( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )13261327#define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \1328( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )13291330#define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \1331( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )13321333#define ID3D12VideoProcessor_SetName(This,Name) \1334( (This)->lpVtbl -> SetName(This,Name) )133513361337#define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \1338( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )1339134013411342#define ID3D12VideoProcessor_GetNodeMask(This) \1343( (This)->lpVtbl -> GetNodeMask(This) )13441345#define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \1346( (This)->lpVtbl -> GetNumInputStreamDescs(This) )13471348#define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \1349( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )1350#if !defined(_WIN32)13511352#define ID3D12VideoProcessor_GetOutputStreamDesc(This) \1353( (This)->lpVtbl -> GetOutputStreamDesc(This) )1354#else1355#define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \1356( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )1357#endif13581359#endif /* COBJMACROS */136013611362#endif /* C style interface */13631364136513661367#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */136813691370/* interface __MIDL_itf_d3d12video_0000_0004 */1371/* [local] */13721373typedef1374enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS1375{1376D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0,1377D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1,1378D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2,1379D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4,1380D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8,1381D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10,1382D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20,1383D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x401384} D3D12_VIDEO_PROCESS_FEATURE_FLAGS;13851386DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS )1387typedef1388enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS1389{1390D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0,1391D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1,1392D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2,1393D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4,1394D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8,1395D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10,1396D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20,1397D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40,1398D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80,1399D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x800000001400} D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS;14011402DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS )1403typedef1404enum D3D12_VIDEO_PROCESS_ORIENTATION1405{1406D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0,1407D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1,1408D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2,1409D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3,1410D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4,1411D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5,1412D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6,1413D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 71414} D3D12_VIDEO_PROCESS_ORIENTATION;14151416typedef1417enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS1418{1419D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0,1420D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1,1421D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x21422} D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS;14231424DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS )1425typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE1426{1427INT Minimum;1428INT Maximum;1429INT Default;1430FLOAT Multiplier;1431} D3D12_VIDEO_PROCESS_FILTER_RANGE;14321433typedef1434enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS1435{1436D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0,1437D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x11438} D3D12_VIDEO_PROCESS_SUPPORT_FLAGS;14391440DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS )1441typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT1442{1443UINT NodeIndex;1444D3D12_VIDEO_SAMPLE InputSample;1445D3D12_VIDEO_FIELD_TYPE InputFieldType;1446D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat;1447DXGI_RATIONAL InputFrameRate;1448D3D12_VIDEO_FORMAT OutputFormat;1449D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat;1450DXGI_RATIONAL OutputFrameRate;1451D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags;1452D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;1453D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;1454D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport;1455D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport;1456D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport;1457D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ];1458} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;14591460typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS1461{1462UINT NodeIndex;1463UINT MaxInputStreams;1464} D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS;14651466typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO1467{1468UINT NodeIndex;1469D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;1470D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters;1471D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;1472DXGI_RATIONAL InputFrameRate;1473DXGI_RATIONAL OutputFrameRate;1474BOOL EnableAutoProcessing;1475UINT PastFrames;1476UINT FutureFrames;1477} D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO;14781479typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET1480{1481UINT NumPastFrames;1482ID3D12Resource **ppPastFrames;1483UINT *pPastSubresources;1484UINT NumFutureFrames;1485ID3D12Resource **ppFutureFrames;1486UINT *pFutureSubresources;1487} D3D12_VIDEO_PROCESS_REFERENCE_SET;14881489typedef struct D3D12_VIDEO_PROCESS_TRANSFORM1490{1491D3D12_RECT SourceRectangle;1492D3D12_RECT DestinationRectangle;1493D3D12_VIDEO_PROCESS_ORIENTATION Orientation;1494} D3D12_VIDEO_PROCESS_TRANSFORM;14951496typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE1497{1498UINT OutputIndex;1499UINT InputFrameOrField;1500} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;15011502typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM1503{1504ID3D12Resource *pTexture2D;1505UINT Subresource;1506D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet;1507} D3D12_VIDEO_PROCESS_INPUT_STREAM;15081509typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1510{1511D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];1512D3D12_VIDEO_PROCESS_TRANSFORM Transform;1513D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;1514D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;1515INT FilterLevels[ 32 ];1516D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;1517} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS;15181519typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM1520{1521ID3D12Resource *pTexture2D;1522UINT Subresource;1523} D3D12_VIDEO_PROCESS_OUTPUT_STREAM;15241525typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS1526{1527D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ];1528D3D12_RECT TargetRectangle;1529} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS;1530153115321533extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec;1534extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec;15351536#ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__1537#define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__15381539/* interface ID3D12VideoDecodeCommandList */1540/* [unique][local][object][uuid] */154115421543EXTERN_C const IID IID_ID3D12VideoDecodeCommandList;15441545#if defined(__cplusplus) && !defined(CINTERFACE)15461547MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53")1548ID3D12VideoDecodeCommandList : public ID3D12CommandList1549{1550public:1551virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;15521553virtual HRESULT STDMETHODCALLTYPE Reset(1554_In_ ID3D12CommandAllocator *pAllocator) = 0;15551556virtual void STDMETHODCALLTYPE ClearState( void) = 0;15571558virtual void STDMETHODCALLTYPE ResourceBarrier(1559_In_ UINT NumBarriers,1560_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;15611562virtual void STDMETHODCALLTYPE DiscardResource(1563_In_ ID3D12Resource *pResource,1564_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;15651566virtual void STDMETHODCALLTYPE BeginQuery(1567_In_ ID3D12QueryHeap *pQueryHeap,1568_In_ D3D12_QUERY_TYPE Type,1569_In_ UINT Index) = 0;15701571virtual void STDMETHODCALLTYPE EndQuery(1572_In_ ID3D12QueryHeap *pQueryHeap,1573_In_ D3D12_QUERY_TYPE Type,1574_In_ UINT Index) = 0;15751576virtual void STDMETHODCALLTYPE ResolveQueryData(1577_In_ ID3D12QueryHeap *pQueryHeap,1578_In_ D3D12_QUERY_TYPE Type,1579_In_ UINT StartIndex,1580_In_ UINT NumQueries,1581_In_ ID3D12Resource *pDestinationBuffer,1582_In_ UINT64 AlignedDestinationBufferOffset) = 0;15831584virtual void STDMETHODCALLTYPE SetPredication(1585_In_opt_ ID3D12Resource *pBuffer,1586_In_ UINT64 AlignedBufferOffset,1587_In_ D3D12_PREDICATION_OP Operation) = 0;15881589virtual void STDMETHODCALLTYPE SetMarker(1590UINT Metadata,1591_In_reads_bytes_opt_(Size) const void *pData,1592UINT Size) = 0;15931594virtual void STDMETHODCALLTYPE BeginEvent(1595UINT Metadata,1596_In_reads_bytes_opt_(Size) const void *pData,1597UINT Size) = 0;15981599virtual void STDMETHODCALLTYPE EndEvent( void) = 0;16001601virtual void STDMETHODCALLTYPE DecodeFrame(1602_In_ ID3D12VideoDecoder *pDecoder,1603_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1604_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;16051606virtual void STDMETHODCALLTYPE WriteBufferImmediate(1607UINT Count,1608_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1609_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;16101611};161216131614#else /* C style interface */16151616typedef struct ID3D12VideoDecodeCommandListVtbl1617{1618BEGIN_INTERFACE16191620DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1621HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1622ID3D12VideoDecodeCommandList * This,1623REFIID riid,1624_COM_Outptr_ void **ppvObject);16251626DECLSPEC_XFGVIRT(IUnknown, AddRef)1627ULONG ( STDMETHODCALLTYPE *AddRef )(1628ID3D12VideoDecodeCommandList * This);16291630DECLSPEC_XFGVIRT(IUnknown, Release)1631ULONG ( STDMETHODCALLTYPE *Release )(1632ID3D12VideoDecodeCommandList * This);16331634DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1635HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1636ID3D12VideoDecodeCommandList * This,1637_In_ REFGUID guid,1638_Inout_ UINT *pDataSize,1639_Out_writes_bytes_opt_( *pDataSize ) void *pData);16401641DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1642HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1643ID3D12VideoDecodeCommandList * This,1644_In_ REFGUID guid,1645_In_ UINT DataSize,1646_In_reads_bytes_opt_( DataSize ) const void *pData);16471648DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1649HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1650ID3D12VideoDecodeCommandList * This,1651_In_ REFGUID guid,1652_In_opt_ const IUnknown *pData);16531654DECLSPEC_XFGVIRT(ID3D12Object, SetName)1655HRESULT ( STDMETHODCALLTYPE *SetName )(1656ID3D12VideoDecodeCommandList * This,1657_In_z_ LPCWSTR Name);16581659DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1660HRESULT ( STDMETHODCALLTYPE *GetDevice )(1661ID3D12VideoDecodeCommandList * This,1662REFIID riid,1663_COM_Outptr_opt_ void **ppvDevice);16641665DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)1666D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(1667ID3D12VideoDecodeCommandList * This);16681669DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)1670HRESULT ( STDMETHODCALLTYPE *Close )(1671ID3D12VideoDecodeCommandList * This);16721673DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)1674HRESULT ( STDMETHODCALLTYPE *Reset )(1675ID3D12VideoDecodeCommandList * This,1676_In_ ID3D12CommandAllocator *pAllocator);16771678DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)1679void ( STDMETHODCALLTYPE *ClearState )(1680ID3D12VideoDecodeCommandList * This);16811682DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)1683void ( STDMETHODCALLTYPE *ResourceBarrier )(1684ID3D12VideoDecodeCommandList * This,1685_In_ UINT NumBarriers,1686_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);16871688DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)1689void ( STDMETHODCALLTYPE *DiscardResource )(1690ID3D12VideoDecodeCommandList * This,1691_In_ ID3D12Resource *pResource,1692_In_opt_ const D3D12_DISCARD_REGION *pRegion);16931694DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)1695void ( STDMETHODCALLTYPE *BeginQuery )(1696ID3D12VideoDecodeCommandList * This,1697_In_ ID3D12QueryHeap *pQueryHeap,1698_In_ D3D12_QUERY_TYPE Type,1699_In_ UINT Index);17001701DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)1702void ( STDMETHODCALLTYPE *EndQuery )(1703ID3D12VideoDecodeCommandList * This,1704_In_ ID3D12QueryHeap *pQueryHeap,1705_In_ D3D12_QUERY_TYPE Type,1706_In_ UINT Index);17071708DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)1709void ( STDMETHODCALLTYPE *ResolveQueryData )(1710ID3D12VideoDecodeCommandList * This,1711_In_ ID3D12QueryHeap *pQueryHeap,1712_In_ D3D12_QUERY_TYPE Type,1713_In_ UINT StartIndex,1714_In_ UINT NumQueries,1715_In_ ID3D12Resource *pDestinationBuffer,1716_In_ UINT64 AlignedDestinationBufferOffset);17171718DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)1719void ( STDMETHODCALLTYPE *SetPredication )(1720ID3D12VideoDecodeCommandList * This,1721_In_opt_ ID3D12Resource *pBuffer,1722_In_ UINT64 AlignedBufferOffset,1723_In_ D3D12_PREDICATION_OP Operation);17241725DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)1726void ( STDMETHODCALLTYPE *SetMarker )(1727ID3D12VideoDecodeCommandList * This,1728UINT Metadata,1729_In_reads_bytes_opt_(Size) const void *pData,1730UINT Size);17311732DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)1733void ( STDMETHODCALLTYPE *BeginEvent )(1734ID3D12VideoDecodeCommandList * This,1735UINT Metadata,1736_In_reads_bytes_opt_(Size) const void *pData,1737UINT Size);17381739DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)1740void ( STDMETHODCALLTYPE *EndEvent )(1741ID3D12VideoDecodeCommandList * This);17421743DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)1744void ( STDMETHODCALLTYPE *DecodeFrame )(1745ID3D12VideoDecodeCommandList * This,1746_In_ ID3D12VideoDecoder *pDecoder,1747_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1748_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);17491750DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)1751void ( STDMETHODCALLTYPE *WriteBufferImmediate )(1752ID3D12VideoDecodeCommandList * This,1753UINT Count,1754_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1755_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);17561757END_INTERFACE1758} ID3D12VideoDecodeCommandListVtbl;17591760interface ID3D12VideoDecodeCommandList1761{1762CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl;1763};1764176517661767#ifdef COBJMACROS176817691770#define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \1771( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )17721773#define ID3D12VideoDecodeCommandList_AddRef(This) \1774( (This)->lpVtbl -> AddRef(This) )17751776#define ID3D12VideoDecodeCommandList_Release(This) \1777( (This)->lpVtbl -> Release(This) )177817791780#define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \1781( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )17821783#define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \1784( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )17851786#define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \1787( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )17881789#define ID3D12VideoDecodeCommandList_SetName(This,Name) \1790( (This)->lpVtbl -> SetName(This,Name) )179117921793#define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \1794( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )179517961797#define ID3D12VideoDecodeCommandList_GetType(This) \1798( (This)->lpVtbl -> GetType(This) )179918001801#define ID3D12VideoDecodeCommandList_Close(This) \1802( (This)->lpVtbl -> Close(This) )18031804#define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \1805( (This)->lpVtbl -> Reset(This,pAllocator) )18061807#define ID3D12VideoDecodeCommandList_ClearState(This) \1808( (This)->lpVtbl -> ClearState(This) )18091810#define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \1811( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )18121813#define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \1814( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )18151816#define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \1817( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )18181819#define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \1820( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )18211822#define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \1823( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )18241825#define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \1826( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )18271828#define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \1829( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )18301831#define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \1832( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )18331834#define ID3D12VideoDecodeCommandList_EndEvent(This) \1835( (This)->lpVtbl -> EndEvent(This) )18361837#define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \1838( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )18391840#define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \1841( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )18421843#endif /* COBJMACROS */184418451846#endif /* C style interface */18471848184918501851#endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */185218531854#ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__1855#define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__18561857/* interface ID3D12VideoProcessCommandList */1858/* [unique][local][object][uuid] */185918601861EXTERN_C const IID IID_ID3D12VideoProcessCommandList;18621863#if defined(__cplusplus) && !defined(CINTERFACE)18641865MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209")1866ID3D12VideoProcessCommandList : public ID3D12CommandList1867{1868public:1869virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;18701871virtual HRESULT STDMETHODCALLTYPE Reset(1872_In_ ID3D12CommandAllocator *pAllocator) = 0;18731874virtual void STDMETHODCALLTYPE ClearState( void) = 0;18751876virtual void STDMETHODCALLTYPE ResourceBarrier(1877_In_ UINT NumBarriers,1878_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;18791880virtual void STDMETHODCALLTYPE DiscardResource(1881_In_ ID3D12Resource *pResource,1882_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;18831884virtual void STDMETHODCALLTYPE BeginQuery(1885_In_ ID3D12QueryHeap *pQueryHeap,1886_In_ D3D12_QUERY_TYPE Type,1887_In_ UINT Index) = 0;18881889virtual void STDMETHODCALLTYPE EndQuery(1890_In_ ID3D12QueryHeap *pQueryHeap,1891_In_ D3D12_QUERY_TYPE Type,1892_In_ UINT Index) = 0;18931894virtual void STDMETHODCALLTYPE ResolveQueryData(1895_In_ ID3D12QueryHeap *pQueryHeap,1896_In_ D3D12_QUERY_TYPE Type,1897_In_ UINT StartIndex,1898_In_ UINT NumQueries,1899_In_ ID3D12Resource *pDestinationBuffer,1900_In_ UINT64 AlignedDestinationBufferOffset) = 0;19011902virtual void STDMETHODCALLTYPE SetPredication(1903_In_opt_ ID3D12Resource *pBuffer,1904_In_ UINT64 AlignedBufferOffset,1905_In_ D3D12_PREDICATION_OP Operation) = 0;19061907virtual void STDMETHODCALLTYPE SetMarker(1908UINT Metadata,1909_In_reads_bytes_opt_(Size) const void *pData,1910UINT Size) = 0;19111912virtual void STDMETHODCALLTYPE BeginEvent(1913UINT Metadata,1914_In_reads_bytes_opt_(Size) const void *pData,1915UINT Size) = 0;19161917virtual void STDMETHODCALLTYPE EndEvent( void) = 0;19181919virtual void STDMETHODCALLTYPE ProcessFrames(1920_In_ ID3D12VideoProcessor *pVideoProcessor,1921_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1922UINT NumInputStreams,1923_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;19241925virtual void STDMETHODCALLTYPE WriteBufferImmediate(1926UINT Count,1927_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1928_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;19291930};193119321933#else /* C style interface */19341935typedef struct ID3D12VideoProcessCommandListVtbl1936{1937BEGIN_INTERFACE19381939DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1940HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1941ID3D12VideoProcessCommandList * This,1942REFIID riid,1943_COM_Outptr_ void **ppvObject);19441945DECLSPEC_XFGVIRT(IUnknown, AddRef)1946ULONG ( STDMETHODCALLTYPE *AddRef )(1947ID3D12VideoProcessCommandList * This);19481949DECLSPEC_XFGVIRT(IUnknown, Release)1950ULONG ( STDMETHODCALLTYPE *Release )(1951ID3D12VideoProcessCommandList * This);19521953DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1954HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1955ID3D12VideoProcessCommandList * This,1956_In_ REFGUID guid,1957_Inout_ UINT *pDataSize,1958_Out_writes_bytes_opt_( *pDataSize ) void *pData);19591960DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1961HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1962ID3D12VideoProcessCommandList * This,1963_In_ REFGUID guid,1964_In_ UINT DataSize,1965_In_reads_bytes_opt_( DataSize ) const void *pData);19661967DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1968HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1969ID3D12VideoProcessCommandList * This,1970_In_ REFGUID guid,1971_In_opt_ const IUnknown *pData);19721973DECLSPEC_XFGVIRT(ID3D12Object, SetName)1974HRESULT ( STDMETHODCALLTYPE *SetName )(1975ID3D12VideoProcessCommandList * This,1976_In_z_ LPCWSTR Name);19771978DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1979HRESULT ( STDMETHODCALLTYPE *GetDevice )(1980ID3D12VideoProcessCommandList * This,1981REFIID riid,1982_COM_Outptr_opt_ void **ppvDevice);19831984DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)1985D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(1986ID3D12VideoProcessCommandList * This);19871988DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)1989HRESULT ( STDMETHODCALLTYPE *Close )(1990ID3D12VideoProcessCommandList * This);19911992DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)1993HRESULT ( STDMETHODCALLTYPE *Reset )(1994ID3D12VideoProcessCommandList * This,1995_In_ ID3D12CommandAllocator *pAllocator);19961997DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)1998void ( STDMETHODCALLTYPE *ClearState )(1999ID3D12VideoProcessCommandList * This);20002001DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)2002void ( STDMETHODCALLTYPE *ResourceBarrier )(2003ID3D12VideoProcessCommandList * This,2004_In_ UINT NumBarriers,2005_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);20062007DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)2008void ( STDMETHODCALLTYPE *DiscardResource )(2009ID3D12VideoProcessCommandList * This,2010_In_ ID3D12Resource *pResource,2011_In_opt_ const D3D12_DISCARD_REGION *pRegion);20122013DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)2014void ( STDMETHODCALLTYPE *BeginQuery )(2015ID3D12VideoProcessCommandList * This,2016_In_ ID3D12QueryHeap *pQueryHeap,2017_In_ D3D12_QUERY_TYPE Type,2018_In_ UINT Index);20192020DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)2021void ( STDMETHODCALLTYPE *EndQuery )(2022ID3D12VideoProcessCommandList * This,2023_In_ ID3D12QueryHeap *pQueryHeap,2024_In_ D3D12_QUERY_TYPE Type,2025_In_ UINT Index);20262027DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)2028void ( STDMETHODCALLTYPE *ResolveQueryData )(2029ID3D12VideoProcessCommandList * This,2030_In_ ID3D12QueryHeap *pQueryHeap,2031_In_ D3D12_QUERY_TYPE Type,2032_In_ UINT StartIndex,2033_In_ UINT NumQueries,2034_In_ ID3D12Resource *pDestinationBuffer,2035_In_ UINT64 AlignedDestinationBufferOffset);20362037DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)2038void ( STDMETHODCALLTYPE *SetPredication )(2039ID3D12VideoProcessCommandList * This,2040_In_opt_ ID3D12Resource *pBuffer,2041_In_ UINT64 AlignedBufferOffset,2042_In_ D3D12_PREDICATION_OP Operation);20432044DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)2045void ( STDMETHODCALLTYPE *SetMarker )(2046ID3D12VideoProcessCommandList * This,2047UINT Metadata,2048_In_reads_bytes_opt_(Size) const void *pData,2049UINT Size);20502051DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)2052void ( STDMETHODCALLTYPE *BeginEvent )(2053ID3D12VideoProcessCommandList * This,2054UINT Metadata,2055_In_reads_bytes_opt_(Size) const void *pData,2056UINT Size);20572058DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)2059void ( STDMETHODCALLTYPE *EndEvent )(2060ID3D12VideoProcessCommandList * This);20612062DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)2063void ( STDMETHODCALLTYPE *ProcessFrames )(2064ID3D12VideoProcessCommandList * This,2065_In_ ID3D12VideoProcessor *pVideoProcessor,2066_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2067UINT NumInputStreams,2068_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);20692070DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)2071void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2072ID3D12VideoProcessCommandList * This,2073UINT Count,2074_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2075_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);20762077END_INTERFACE2078} ID3D12VideoProcessCommandListVtbl;20792080interface ID3D12VideoProcessCommandList2081{2082CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl;2083};2084208520862087#ifdef COBJMACROS208820892090#define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \2091( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )20922093#define ID3D12VideoProcessCommandList_AddRef(This) \2094( (This)->lpVtbl -> AddRef(This) )20952096#define ID3D12VideoProcessCommandList_Release(This) \2097( (This)->lpVtbl -> Release(This) )209820992100#define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \2101( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )21022103#define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \2104( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )21052106#define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \2107( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )21082109#define ID3D12VideoProcessCommandList_SetName(This,Name) \2110( (This)->lpVtbl -> SetName(This,Name) )211121122113#define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \2114( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )211521162117#define ID3D12VideoProcessCommandList_GetType(This) \2118( (This)->lpVtbl -> GetType(This) )211921202121#define ID3D12VideoProcessCommandList_Close(This) \2122( (This)->lpVtbl -> Close(This) )21232124#define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \2125( (This)->lpVtbl -> Reset(This,pAllocator) )21262127#define ID3D12VideoProcessCommandList_ClearState(This) \2128( (This)->lpVtbl -> ClearState(This) )21292130#define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \2131( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )21322133#define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \2134( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )21352136#define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \2137( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )21382139#define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \2140( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )21412142#define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2143( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )21442145#define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2146( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )21472148#define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \2149( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )21502151#define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \2152( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )21532154#define ID3D12VideoProcessCommandList_EndEvent(This) \2155( (This)->lpVtbl -> EndEvent(This) )21562157#define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2158( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )21592160#define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \2161( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )21622163#endif /* COBJMACROS */216421652166#endif /* C style interface */21672168216921702171#endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */217221732174/* interface __MIDL_itf_d3d12video_0000_0006 */2175/* [local] */21762177typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM2178{2179UINT64 Offset;2180ID3D12Resource *pBuffer;2181} D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM;21822183typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS12184{2185BOOL Enable;2186ID3D12Resource *pReferenceTexture2D;2187UINT ReferenceSubresource;2188DXGI_COLOR_SPACE_TYPE OutputColorSpace;2189DXGI_COLOR_SPACE_TYPE DecodeColorSpace;2190UINT OutputWidth;2191UINT OutputHeight;2192} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1;21932194typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS12195{2196ID3D12Resource *pOutputTexture2D;2197UINT OutputSubresource;2198D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments;2199D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ];2200} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;2201220222032204extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec;2205extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec;22062207#ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__2208#define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__22092210/* interface ID3D12VideoDecodeCommandList1 */2211/* [unique][local][object][uuid] */221222132214EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1;22152216#if defined(__cplusplus) && !defined(CINTERFACE)22172218MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472")2219ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList2220{2221public:2222virtual void STDMETHODCALLTYPE DecodeFrame1(2223_In_ ID3D12VideoDecoder *pDecoder,2224_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,2225_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;22262227};222822292230#else /* C style interface */22312232typedef struct ID3D12VideoDecodeCommandList1Vtbl2233{2234BEGIN_INTERFACE22352236DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2237HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2238ID3D12VideoDecodeCommandList1 * This,2239REFIID riid,2240_COM_Outptr_ void **ppvObject);22412242DECLSPEC_XFGVIRT(IUnknown, AddRef)2243ULONG ( STDMETHODCALLTYPE *AddRef )(2244ID3D12VideoDecodeCommandList1 * This);22452246DECLSPEC_XFGVIRT(IUnknown, Release)2247ULONG ( STDMETHODCALLTYPE *Release )(2248ID3D12VideoDecodeCommandList1 * This);22492250DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2251HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2252ID3D12VideoDecodeCommandList1 * This,2253_In_ REFGUID guid,2254_Inout_ UINT *pDataSize,2255_Out_writes_bytes_opt_( *pDataSize ) void *pData);22562257DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2258HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2259ID3D12VideoDecodeCommandList1 * This,2260_In_ REFGUID guid,2261_In_ UINT DataSize,2262_In_reads_bytes_opt_( DataSize ) const void *pData);22632264DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2265HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2266ID3D12VideoDecodeCommandList1 * This,2267_In_ REFGUID guid,2268_In_opt_ const IUnknown *pData);22692270DECLSPEC_XFGVIRT(ID3D12Object, SetName)2271HRESULT ( STDMETHODCALLTYPE *SetName )(2272ID3D12VideoDecodeCommandList1 * This,2273_In_z_ LPCWSTR Name);22742275DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2276HRESULT ( STDMETHODCALLTYPE *GetDevice )(2277ID3D12VideoDecodeCommandList1 * This,2278REFIID riid,2279_COM_Outptr_opt_ void **ppvDevice);22802281DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)2282D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(2283ID3D12VideoDecodeCommandList1 * This);22842285DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)2286HRESULT ( STDMETHODCALLTYPE *Close )(2287ID3D12VideoDecodeCommandList1 * This);22882289DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)2290HRESULT ( STDMETHODCALLTYPE *Reset )(2291ID3D12VideoDecodeCommandList1 * This,2292_In_ ID3D12CommandAllocator *pAllocator);22932294DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)2295void ( STDMETHODCALLTYPE *ClearState )(2296ID3D12VideoDecodeCommandList1 * This);22972298DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)2299void ( STDMETHODCALLTYPE *ResourceBarrier )(2300ID3D12VideoDecodeCommandList1 * This,2301_In_ UINT NumBarriers,2302_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);23032304DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)2305void ( STDMETHODCALLTYPE *DiscardResource )(2306ID3D12VideoDecodeCommandList1 * This,2307_In_ ID3D12Resource *pResource,2308_In_opt_ const D3D12_DISCARD_REGION *pRegion);23092310DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)2311void ( STDMETHODCALLTYPE *BeginQuery )(2312ID3D12VideoDecodeCommandList1 * This,2313_In_ ID3D12QueryHeap *pQueryHeap,2314_In_ D3D12_QUERY_TYPE Type,2315_In_ UINT Index);23162317DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)2318void ( STDMETHODCALLTYPE *EndQuery )(2319ID3D12VideoDecodeCommandList1 * This,2320_In_ ID3D12QueryHeap *pQueryHeap,2321_In_ D3D12_QUERY_TYPE Type,2322_In_ UINT Index);23232324DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)2325void ( STDMETHODCALLTYPE *ResolveQueryData )(2326ID3D12VideoDecodeCommandList1 * This,2327_In_ ID3D12QueryHeap *pQueryHeap,2328_In_ D3D12_QUERY_TYPE Type,2329_In_ UINT StartIndex,2330_In_ UINT NumQueries,2331_In_ ID3D12Resource *pDestinationBuffer,2332_In_ UINT64 AlignedDestinationBufferOffset);23332334DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)2335void ( STDMETHODCALLTYPE *SetPredication )(2336ID3D12VideoDecodeCommandList1 * This,2337_In_opt_ ID3D12Resource *pBuffer,2338_In_ UINT64 AlignedBufferOffset,2339_In_ D3D12_PREDICATION_OP Operation);23402341DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)2342void ( STDMETHODCALLTYPE *SetMarker )(2343ID3D12VideoDecodeCommandList1 * This,2344UINT Metadata,2345_In_reads_bytes_opt_(Size) const void *pData,2346UINT Size);23472348DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)2349void ( STDMETHODCALLTYPE *BeginEvent )(2350ID3D12VideoDecodeCommandList1 * This,2351UINT Metadata,2352_In_reads_bytes_opt_(Size) const void *pData,2353UINT Size);23542355DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)2356void ( STDMETHODCALLTYPE *EndEvent )(2357ID3D12VideoDecodeCommandList1 * This);23582359DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)2360void ( STDMETHODCALLTYPE *DecodeFrame )(2361ID3D12VideoDecodeCommandList1 * This,2362_In_ ID3D12VideoDecoder *pDecoder,2363_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2364_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);23652366DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)2367void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2368ID3D12VideoDecodeCommandList1 * This,2369UINT Count,2370_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2371_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);23722373DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)2374void ( STDMETHODCALLTYPE *DecodeFrame1 )(2375ID3D12VideoDecodeCommandList1 * This,2376_In_ ID3D12VideoDecoder *pDecoder,2377_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,2378_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);23792380END_INTERFACE2381} ID3D12VideoDecodeCommandList1Vtbl;23822383interface ID3D12VideoDecodeCommandList12384{2385CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl;2386};2387238823892390#ifdef COBJMACROS239123922393#define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \2394( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )23952396#define ID3D12VideoDecodeCommandList1_AddRef(This) \2397( (This)->lpVtbl -> AddRef(This) )23982399#define ID3D12VideoDecodeCommandList1_Release(This) \2400( (This)->lpVtbl -> Release(This) )240124022403#define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \2404( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )24052406#define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \2407( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )24082409#define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \2410( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )24112412#define ID3D12VideoDecodeCommandList1_SetName(This,Name) \2413( (This)->lpVtbl -> SetName(This,Name) )241424152416#define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \2417( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )241824192420#define ID3D12VideoDecodeCommandList1_GetType(This) \2421( (This)->lpVtbl -> GetType(This) )242224232424#define ID3D12VideoDecodeCommandList1_Close(This) \2425( (This)->lpVtbl -> Close(This) )24262427#define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \2428( (This)->lpVtbl -> Reset(This,pAllocator) )24292430#define ID3D12VideoDecodeCommandList1_ClearState(This) \2431( (This)->lpVtbl -> ClearState(This) )24322433#define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \2434( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )24352436#define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \2437( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )24382439#define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \2440( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )24412442#define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \2443( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )24442445#define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2446( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )24472448#define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2449( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )24502451#define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \2452( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )24532454#define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \2455( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )24562457#define ID3D12VideoDecodeCommandList1_EndEvent(This) \2458( (This)->lpVtbl -> EndEvent(This) )24592460#define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \2461( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )24622463#define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \2464( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )246524662467#define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \2468( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )24692470#endif /* COBJMACROS */247124722473#endif /* C style interface */24742475247624772478#endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */247924802481/* interface __MIDL_itf_d3d12video_0000_0007 */2482/* [local] */24832484typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS12485{2486D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];2487D3D12_VIDEO_PROCESS_TRANSFORM Transform;2488D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;2489D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;2490INT FilterLevels[ 32 ];2491D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;2492D3D12_VIDEO_FIELD_TYPE FieldType;2493} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1;2494249524962497extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec;2498extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec;24992500#ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__2501#define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__25022503/* interface ID3D12VideoProcessCommandList1 */2504/* [unique][local][object][uuid] */250525062507EXTERN_C const IID IID_ID3D12VideoProcessCommandList1;25082509#if defined(__cplusplus) && !defined(CINTERFACE)25102511MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267")2512ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList2513{2514public:2515virtual void STDMETHODCALLTYPE ProcessFrames1(2516_In_ ID3D12VideoProcessor *pVideoProcessor,2517_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2518UINT NumInputStreams,2519_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0;25202521};252225232524#else /* C style interface */25252526typedef struct ID3D12VideoProcessCommandList1Vtbl2527{2528BEGIN_INTERFACE25292530DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2531HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2532ID3D12VideoProcessCommandList1 * This,2533REFIID riid,2534_COM_Outptr_ void **ppvObject);25352536DECLSPEC_XFGVIRT(IUnknown, AddRef)2537ULONG ( STDMETHODCALLTYPE *AddRef )(2538ID3D12VideoProcessCommandList1 * This);25392540DECLSPEC_XFGVIRT(IUnknown, Release)2541ULONG ( STDMETHODCALLTYPE *Release )(2542ID3D12VideoProcessCommandList1 * This);25432544DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2545HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2546ID3D12VideoProcessCommandList1 * This,2547_In_ REFGUID guid,2548_Inout_ UINT *pDataSize,2549_Out_writes_bytes_opt_( *pDataSize ) void *pData);25502551DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2552HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2553ID3D12VideoProcessCommandList1 * This,2554_In_ REFGUID guid,2555_In_ UINT DataSize,2556_In_reads_bytes_opt_( DataSize ) const void *pData);25572558DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2559HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2560ID3D12VideoProcessCommandList1 * This,2561_In_ REFGUID guid,2562_In_opt_ const IUnknown *pData);25632564DECLSPEC_XFGVIRT(ID3D12Object, SetName)2565HRESULT ( STDMETHODCALLTYPE *SetName )(2566ID3D12VideoProcessCommandList1 * This,2567_In_z_ LPCWSTR Name);25682569DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2570HRESULT ( STDMETHODCALLTYPE *GetDevice )(2571ID3D12VideoProcessCommandList1 * This,2572REFIID riid,2573_COM_Outptr_opt_ void **ppvDevice);25742575DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)2576D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(2577ID3D12VideoProcessCommandList1 * This);25782579DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)2580HRESULT ( STDMETHODCALLTYPE *Close )(2581ID3D12VideoProcessCommandList1 * This);25822583DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)2584HRESULT ( STDMETHODCALLTYPE *Reset )(2585ID3D12VideoProcessCommandList1 * This,2586_In_ ID3D12CommandAllocator *pAllocator);25872588DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)2589void ( STDMETHODCALLTYPE *ClearState )(2590ID3D12VideoProcessCommandList1 * This);25912592DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)2593void ( STDMETHODCALLTYPE *ResourceBarrier )(2594ID3D12VideoProcessCommandList1 * This,2595_In_ UINT NumBarriers,2596_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);25972598DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)2599void ( STDMETHODCALLTYPE *DiscardResource )(2600ID3D12VideoProcessCommandList1 * This,2601_In_ ID3D12Resource *pResource,2602_In_opt_ const D3D12_DISCARD_REGION *pRegion);26032604DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)2605void ( STDMETHODCALLTYPE *BeginQuery )(2606ID3D12VideoProcessCommandList1 * This,2607_In_ ID3D12QueryHeap *pQueryHeap,2608_In_ D3D12_QUERY_TYPE Type,2609_In_ UINT Index);26102611DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)2612void ( STDMETHODCALLTYPE *EndQuery )(2613ID3D12VideoProcessCommandList1 * This,2614_In_ ID3D12QueryHeap *pQueryHeap,2615_In_ D3D12_QUERY_TYPE Type,2616_In_ UINT Index);26172618DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)2619void ( STDMETHODCALLTYPE *ResolveQueryData )(2620ID3D12VideoProcessCommandList1 * This,2621_In_ ID3D12QueryHeap *pQueryHeap,2622_In_ D3D12_QUERY_TYPE Type,2623_In_ UINT StartIndex,2624_In_ UINT NumQueries,2625_In_ ID3D12Resource *pDestinationBuffer,2626_In_ UINT64 AlignedDestinationBufferOffset);26272628DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)2629void ( STDMETHODCALLTYPE *SetPredication )(2630ID3D12VideoProcessCommandList1 * This,2631_In_opt_ ID3D12Resource *pBuffer,2632_In_ UINT64 AlignedBufferOffset,2633_In_ D3D12_PREDICATION_OP Operation);26342635DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)2636void ( STDMETHODCALLTYPE *SetMarker )(2637ID3D12VideoProcessCommandList1 * This,2638UINT Metadata,2639_In_reads_bytes_opt_(Size) const void *pData,2640UINT Size);26412642DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)2643void ( STDMETHODCALLTYPE *BeginEvent )(2644ID3D12VideoProcessCommandList1 * This,2645UINT Metadata,2646_In_reads_bytes_opt_(Size) const void *pData,2647UINT Size);26482649DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)2650void ( STDMETHODCALLTYPE *EndEvent )(2651ID3D12VideoProcessCommandList1 * This);26522653DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)2654void ( STDMETHODCALLTYPE *ProcessFrames )(2655ID3D12VideoProcessCommandList1 * This,2656_In_ ID3D12VideoProcessor *pVideoProcessor,2657_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2658UINT NumInputStreams,2659_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);26602661DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)2662void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2663ID3D12VideoProcessCommandList1 * This,2664UINT Count,2665_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2666_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);26672668DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)2669void ( STDMETHODCALLTYPE *ProcessFrames1 )(2670ID3D12VideoProcessCommandList1 * This,2671_In_ ID3D12VideoProcessor *pVideoProcessor,2672_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2673UINT NumInputStreams,2674_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);26752676END_INTERFACE2677} ID3D12VideoProcessCommandList1Vtbl;26782679interface ID3D12VideoProcessCommandList12680{2681CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl;2682};2683268426852686#ifdef COBJMACROS268726882689#define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \2690( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )26912692#define ID3D12VideoProcessCommandList1_AddRef(This) \2693( (This)->lpVtbl -> AddRef(This) )26942695#define ID3D12VideoProcessCommandList1_Release(This) \2696( (This)->lpVtbl -> Release(This) )269726982699#define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \2700( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )27012702#define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \2703( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )27042705#define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \2706( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )27072708#define ID3D12VideoProcessCommandList1_SetName(This,Name) \2709( (This)->lpVtbl -> SetName(This,Name) )271027112712#define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \2713( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )271427152716#define ID3D12VideoProcessCommandList1_GetType(This) \2717( (This)->lpVtbl -> GetType(This) )271827192720#define ID3D12VideoProcessCommandList1_Close(This) \2721( (This)->lpVtbl -> Close(This) )27222723#define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \2724( (This)->lpVtbl -> Reset(This,pAllocator) )27252726#define ID3D12VideoProcessCommandList1_ClearState(This) \2727( (This)->lpVtbl -> ClearState(This) )27282729#define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \2730( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )27312732#define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \2733( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )27342735#define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \2736( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )27372738#define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \2739( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )27402741#define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2742( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )27432744#define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2745( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )27462747#define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \2748( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )27492750#define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \2751( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )27522753#define ID3D12VideoProcessCommandList1_EndEvent(This) \2754( (This)->lpVtbl -> EndEvent(This) )27552756#define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2757( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )27582759#define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \2760( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )276127622763#define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2764( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )27652766#endif /* COBJMACROS */276727682769#endif /* C style interface */27702771277227732774#endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */277527762777/* interface __MIDL_itf_d3d12video_0000_0008 */2778/* [local] */27792780typedef2781enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE2782{2783D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0,2784D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 12785} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE;27862787typedef2788enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS2789{2790D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0,2791D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) ,2792D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 )2793} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS;27942795DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS )2796typedef2797enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION2798{2799D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 02800} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION;28012802typedef2803enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS2804{2805D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0,2806D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL )2807} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS;28082809DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS )2810typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT2811{2812UINT NodeIndex;2813BOOL VideoDecodeSupport;2814BOOL VideoProcessSupport;2815BOOL VideoEncodeSupport;2816} D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT;28172818typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR2819{2820UINT NodeIndex;2821DXGI_FORMAT InputFormat;2822D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags;2823D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags;2824D3D12_VIDEO_SIZE_RANGE SizeRange;2825} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR;28262827typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE2828{2829UINT NodeIndex;2830DXGI_FORMAT InputFormat;2831D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;2832D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;2833D3D12_VIDEO_SIZE_RANGE SizeRange;2834BOOL Protected;2835UINT64 MotionVectorHeapMemoryPoolL0Size;2836UINT64 MotionVectorHeapMemoryPoolL1Size;2837UINT64 MotionEstimatorMemoryPoolL0Size;2838UINT64 MotionEstimatorMemoryPoolL1Size;2839} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE;28402841typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC2842{2843UINT NodeMask;2844DXGI_FORMAT InputFormat;2845D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;2846D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;2847D3D12_VIDEO_SIZE_RANGE SizeRange;2848} D3D12_VIDEO_MOTION_ESTIMATOR_DESC;2849285028512852extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec;2853extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec;28542855#ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__2856#define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__28572858/* interface ID3D12VideoMotionEstimator */2859/* [unique][local][object][uuid] */286028612862EXTERN_C const IID IID_ID3D12VideoMotionEstimator;28632864#if defined(__cplusplus) && !defined(CINTERFACE)28652866MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8")2867ID3D12VideoMotionEstimator : public ID3D12Pageable2868{2869public:2870#if defined(_MSC_VER) || !defined(_WIN32)2871virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0;2872#else2873virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC *STDMETHODCALLTYPE GetDesc(2874D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal) = 0;2875#endif28762877virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(2878REFIID riid,2879_COM_Outptr_opt_ void **ppProtectedSession) = 0;28802881};288228832884#else /* C style interface */28852886typedef struct ID3D12VideoMotionEstimatorVtbl2887{2888BEGIN_INTERFACE28892890DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2891HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2892ID3D12VideoMotionEstimator * This,2893REFIID riid,2894_COM_Outptr_ void **ppvObject);28952896DECLSPEC_XFGVIRT(IUnknown, AddRef)2897ULONG ( STDMETHODCALLTYPE *AddRef )(2898ID3D12VideoMotionEstimator * This);28992900DECLSPEC_XFGVIRT(IUnknown, Release)2901ULONG ( STDMETHODCALLTYPE *Release )(2902ID3D12VideoMotionEstimator * This);29032904DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2905HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2906ID3D12VideoMotionEstimator * This,2907_In_ REFGUID guid,2908_Inout_ UINT *pDataSize,2909_Out_writes_bytes_opt_( *pDataSize ) void *pData);29102911DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2912HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2913ID3D12VideoMotionEstimator * This,2914_In_ REFGUID guid,2915_In_ UINT DataSize,2916_In_reads_bytes_opt_( DataSize ) const void *pData);29172918DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2919HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2920ID3D12VideoMotionEstimator * This,2921_In_ REFGUID guid,2922_In_opt_ const IUnknown *pData);29232924DECLSPEC_XFGVIRT(ID3D12Object, SetName)2925HRESULT ( STDMETHODCALLTYPE *SetName )(2926ID3D12VideoMotionEstimator * This,2927_In_z_ LPCWSTR Name);29282929DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2930HRESULT ( STDMETHODCALLTYPE *GetDevice )(2931ID3D12VideoMotionEstimator * This,2932REFIID riid,2933_COM_Outptr_opt_ void **ppvDevice);29342935DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc)2936#if !defined(_WIN32)2937D3D12_VIDEO_MOTION_ESTIMATOR_DESC ( STDMETHODCALLTYPE *GetDesc )(2938ID3D12VideoMotionEstimator * This);29392940#else2941D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )(2942ID3D12VideoMotionEstimator * This,2943D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal);29442945#endif29462947DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession)2948HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(2949ID3D12VideoMotionEstimator * This,2950REFIID riid,2951_COM_Outptr_opt_ void **ppProtectedSession);29522953END_INTERFACE2954} ID3D12VideoMotionEstimatorVtbl;29552956interface ID3D12VideoMotionEstimator2957{2958CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl;2959};2960296129622963#ifdef COBJMACROS296429652966#define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \2967( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )29682969#define ID3D12VideoMotionEstimator_AddRef(This) \2970( (This)->lpVtbl -> AddRef(This) )29712972#define ID3D12VideoMotionEstimator_Release(This) \2973( (This)->lpVtbl -> Release(This) )297429752976#define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \2977( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )29782979#define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \2980( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )29812982#define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \2983( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )29842985#define ID3D12VideoMotionEstimator_SetName(This,Name) \2986( (This)->lpVtbl -> SetName(This,Name) )298729882989#define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \2990( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )299129922993#if !defined(_WIN32)29942995#define ID3D12VideoMotionEstimator_GetDesc(This) \2996( (This)->lpVtbl -> GetDesc(This) )2997#else2998#define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \2999( (This)->lpVtbl -> GetDesc(This,RetVal) )3000#endif30013002#define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \3003( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )30043005#endif /* COBJMACROS */300630073008#endif /* C style interface */30093010301130123013#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */301430153016/* interface __MIDL_itf_d3d12video_0000_0009 */3017/* [local] */30183019typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC3020{3021UINT NodeMask;3022DXGI_FORMAT InputFormat;3023D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;3024D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;3025D3D12_VIDEO_SIZE_RANGE SizeRange;3026} D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC;3027302830293030extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec;3031extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec;30323033#ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__3034#define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__30353036/* interface ID3D12VideoMotionVectorHeap */3037/* [unique][local][object][uuid] */303830393040EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap;30413042#if defined(__cplusplus) && !defined(CINTERFACE)30433044MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505")3045ID3D12VideoMotionVectorHeap : public ID3D12Pageable3046{3047public:3048#if defined(_MSC_VER) || !defined(_WIN32)3049virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;3050#else3051virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(3052D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal) = 0;3053#endif30543055virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(3056REFIID riid,3057_COM_Outptr_opt_ void **ppProtectedSession) = 0;30583059};306030613062#else /* C style interface */30633064typedef struct ID3D12VideoMotionVectorHeapVtbl3065{3066BEGIN_INTERFACE30673068DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3069HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3070ID3D12VideoMotionVectorHeap * This,3071REFIID riid,3072_COM_Outptr_ void **ppvObject);30733074DECLSPEC_XFGVIRT(IUnknown, AddRef)3075ULONG ( STDMETHODCALLTYPE *AddRef )(3076ID3D12VideoMotionVectorHeap * This);30773078DECLSPEC_XFGVIRT(IUnknown, Release)3079ULONG ( STDMETHODCALLTYPE *Release )(3080ID3D12VideoMotionVectorHeap * This);30813082DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3083HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3084ID3D12VideoMotionVectorHeap * This,3085_In_ REFGUID guid,3086_Inout_ UINT *pDataSize,3087_Out_writes_bytes_opt_( *pDataSize ) void *pData);30883089DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3090HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3091ID3D12VideoMotionVectorHeap * This,3092_In_ REFGUID guid,3093_In_ UINT DataSize,3094_In_reads_bytes_opt_( DataSize ) const void *pData);30953096DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3097HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3098ID3D12VideoMotionVectorHeap * This,3099_In_ REFGUID guid,3100_In_opt_ const IUnknown *pData);31013102DECLSPEC_XFGVIRT(ID3D12Object, SetName)3103HRESULT ( STDMETHODCALLTYPE *SetName )(3104ID3D12VideoMotionVectorHeap * This,3105_In_z_ LPCWSTR Name);31063107DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3108HRESULT ( STDMETHODCALLTYPE *GetDevice )(3109ID3D12VideoMotionVectorHeap * This,3110REFIID riid,3111_COM_Outptr_opt_ void **ppvDevice);31123113DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc)3114#if !defined(_WIN32)3115D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(3116ID3D12VideoMotionVectorHeap * This);31173118#else3119D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(3120ID3D12VideoMotionVectorHeap * This,3121D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal);31223123#endif31243125DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession)3126HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(3127ID3D12VideoMotionVectorHeap * This,3128REFIID riid,3129_COM_Outptr_opt_ void **ppProtectedSession);31303131END_INTERFACE3132} ID3D12VideoMotionVectorHeapVtbl;31333134interface ID3D12VideoMotionVectorHeap3135{3136CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl;3137};3138313931403141#ifdef COBJMACROS314231433144#define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \3145( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )31463147#define ID3D12VideoMotionVectorHeap_AddRef(This) \3148( (This)->lpVtbl -> AddRef(This) )31493150#define ID3D12VideoMotionVectorHeap_Release(This) \3151( (This)->lpVtbl -> Release(This) )315231533154#define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \3155( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )31563157#define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \3158( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )31593160#define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \3161( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )31623163#define ID3D12VideoMotionVectorHeap_SetName(This,Name) \3164( (This)->lpVtbl -> SetName(This,Name) )316531663167#define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \3168( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )316931703171#if !defined(_WIN32)31723173#define ID3D12VideoMotionVectorHeap_GetDesc(This) \3174( (This)->lpVtbl -> GetDesc(This) )3175#else3176#define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \3177( (This)->lpVtbl -> GetDesc(This,RetVal) )3178#endif31793180#define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \3181( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )31823183#endif /* COBJMACROS */318431853186#endif /* C style interface */31873188318931903191#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */319231933194#ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__3195#define __ID3D12VideoDevice1_INTERFACE_DEFINED__31963197/* interface ID3D12VideoDevice1 */3198/* [unique][local][object][uuid] */319932003201EXTERN_C const IID IID_ID3D12VideoDevice1;32023203#if defined(__cplusplus) && !defined(CINTERFACE)32043205MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB")3206ID3D12VideoDevice1 : public ID3D12VideoDevice3207{3208public:3209virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator(3210_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,3211_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3212_In_ REFIID riid,3213_COM_Outptr_ void **ppVideoMotionEstimator) = 0;32143215virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap(3216_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,3217_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3218_In_ REFIID riid,3219_COM_Outptr_ void **ppVideoMotionVectorHeap) = 0;32203221};322232233224#else /* C style interface */32253226typedef struct ID3D12VideoDevice1Vtbl3227{3228BEGIN_INTERFACE32293230DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3231HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3232ID3D12VideoDevice1 * This,3233REFIID riid,3234_COM_Outptr_ void **ppvObject);32353236DECLSPEC_XFGVIRT(IUnknown, AddRef)3237ULONG ( STDMETHODCALLTYPE *AddRef )(3238ID3D12VideoDevice1 * This);32393240DECLSPEC_XFGVIRT(IUnknown, Release)3241ULONG ( STDMETHODCALLTYPE *Release )(3242ID3D12VideoDevice1 * This);32433244DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)3245HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(3246ID3D12VideoDevice1 * This,3247D3D12_FEATURE_VIDEO FeatureVideo,3248_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,3249UINT FeatureSupportDataSize);32503251DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)3252HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(3253ID3D12VideoDevice1 * This,3254_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,3255_In_ REFIID riid,3256_COM_Outptr_ void **ppVideoDecoder);32573258DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)3259HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(3260ID3D12VideoDevice1 * This,3261_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,3262_In_ REFIID riid,3263_COM_Outptr_ void **ppVideoDecoderHeap);32643265DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)3266HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(3267ID3D12VideoDevice1 * This,3268UINT NodeMask,3269_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,3270UINT NumInputStreamDescs,3271_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,3272_In_ REFIID riid,3273_COM_Outptr_ void **ppVideoProcessor);32743275DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)3276HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(3277ID3D12VideoDevice1 * This,3278_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,3279_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3280_In_ REFIID riid,3281_COM_Outptr_ void **ppVideoMotionEstimator);32823283DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)3284HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(3285ID3D12VideoDevice1 * This,3286_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,3287_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3288_In_ REFIID riid,3289_COM_Outptr_ void **ppVideoMotionVectorHeap);32903291END_INTERFACE3292} ID3D12VideoDevice1Vtbl;32933294interface ID3D12VideoDevice13295{3296CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl;3297};3298329933003301#ifdef COBJMACROS330233033304#define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \3305( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )33063307#define ID3D12VideoDevice1_AddRef(This) \3308( (This)->lpVtbl -> AddRef(This) )33093310#define ID3D12VideoDevice1_Release(This) \3311( (This)->lpVtbl -> Release(This) )331233133314#define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \3315( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )33163317#define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \3318( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )33193320#define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \3321( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )33223323#define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \3324( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )332533263327#define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \3328( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )33293330#define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \3331( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )33323333#endif /* COBJMACROS */333433353336#endif /* C style interface */33373338333933403341#endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */334233433344/* interface __MIDL_itf_d3d12video_0000_0011 */3345/* [local] */33463347typedef struct D3D12_RESOURCE_COORDINATE3348{3349UINT64 X;3350UINT Y;3351UINT Z;3352UINT SubresourceIndex;3353} D3D12_RESOURCE_COORDINATE;33543355typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT3356{3357ID3D12VideoMotionVectorHeap *pMotionVectorHeap;3358} D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT;33593360typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT3361{3362ID3D12Resource *pInputTexture2D;3363UINT InputSubresourceIndex;3364ID3D12Resource *pReferenceTexture2D;3365UINT ReferenceSubresourceIndex;3366ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap;3367} D3D12_VIDEO_MOTION_ESTIMATOR_INPUT;33683369typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT3370{3371ID3D12Resource *pMotionVectorTexture2D;3372D3D12_RESOURCE_COORDINATE MotionVectorCoordinate;3373} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT;33743375typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT3376{3377ID3D12VideoMotionVectorHeap *pMotionVectorHeap;3378UINT PixelWidth;3379UINT PixelHeight;3380} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT;3381338233833384extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec;3385extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec;33863387#ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__3388#define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__33893390/* interface ID3D12VideoEncodeCommandList */3391/* [unique][local][object][uuid] */339233933394EXTERN_C const IID IID_ID3D12VideoEncodeCommandList;33953396#if defined(__cplusplus) && !defined(CINTERFACE)33973398MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723")3399ID3D12VideoEncodeCommandList : public ID3D12CommandList3400{3401public:3402virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;34033404virtual HRESULT STDMETHODCALLTYPE Reset(3405_In_ ID3D12CommandAllocator *pAllocator) = 0;34063407virtual void STDMETHODCALLTYPE ClearState( void) = 0;34083409virtual void STDMETHODCALLTYPE ResourceBarrier(3410_In_ UINT NumBarriers,3411_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;34123413virtual void STDMETHODCALLTYPE DiscardResource(3414_In_ ID3D12Resource *pResource,3415_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;34163417virtual void STDMETHODCALLTYPE BeginQuery(3418_In_ ID3D12QueryHeap *pQueryHeap,3419_In_ D3D12_QUERY_TYPE Type,3420_In_ UINT Index) = 0;34213422virtual void STDMETHODCALLTYPE EndQuery(3423_In_ ID3D12QueryHeap *pQueryHeap,3424_In_ D3D12_QUERY_TYPE Type,3425_In_ UINT Index) = 0;34263427virtual void STDMETHODCALLTYPE ResolveQueryData(3428_In_ ID3D12QueryHeap *pQueryHeap,3429_In_ D3D12_QUERY_TYPE Type,3430_In_ UINT StartIndex,3431_In_ UINT NumQueries,3432_In_ ID3D12Resource *pDestinationBuffer,3433_In_ UINT64 AlignedDestinationBufferOffset) = 0;34343435virtual void STDMETHODCALLTYPE SetPredication(3436_In_opt_ ID3D12Resource *pBuffer,3437_In_ UINT64 AlignedBufferOffset,3438_In_ D3D12_PREDICATION_OP Operation) = 0;34393440virtual void STDMETHODCALLTYPE SetMarker(3441UINT Metadata,3442_In_reads_bytes_opt_(Size) const void *pData,3443UINT Size) = 0;34443445virtual void STDMETHODCALLTYPE BeginEvent(3446UINT Metadata,3447_In_reads_bytes_opt_(Size) const void *pData,3448UINT Size) = 0;34493450virtual void STDMETHODCALLTYPE EndEvent( void) = 0;34513452virtual void STDMETHODCALLTYPE EstimateMotion(3453_In_ ID3D12VideoMotionEstimator *pMotionEstimator,3454_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,3455_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0;34563457virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap(3458const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,3459const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0;34603461virtual void STDMETHODCALLTYPE WriteBufferImmediate(3462UINT Count,3463_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,3464_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;34653466virtual void STDMETHODCALLTYPE SetProtectedResourceSession(3467_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;34683469};347034713472#else /* C style interface */34733474typedef struct ID3D12VideoEncodeCommandListVtbl3475{3476BEGIN_INTERFACE34773478DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3479HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3480ID3D12VideoEncodeCommandList * This,3481REFIID riid,3482_COM_Outptr_ void **ppvObject);34833484DECLSPEC_XFGVIRT(IUnknown, AddRef)3485ULONG ( STDMETHODCALLTYPE *AddRef )(3486ID3D12VideoEncodeCommandList * This);34873488DECLSPEC_XFGVIRT(IUnknown, Release)3489ULONG ( STDMETHODCALLTYPE *Release )(3490ID3D12VideoEncodeCommandList * This);34913492DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3493HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3494ID3D12VideoEncodeCommandList * This,3495_In_ REFGUID guid,3496_Inout_ UINT *pDataSize,3497_Out_writes_bytes_opt_( *pDataSize ) void *pData);34983499DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3500HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3501ID3D12VideoEncodeCommandList * This,3502_In_ REFGUID guid,3503_In_ UINT DataSize,3504_In_reads_bytes_opt_( DataSize ) const void *pData);35053506DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3507HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3508ID3D12VideoEncodeCommandList * This,3509_In_ REFGUID guid,3510_In_opt_ const IUnknown *pData);35113512DECLSPEC_XFGVIRT(ID3D12Object, SetName)3513HRESULT ( STDMETHODCALLTYPE *SetName )(3514ID3D12VideoEncodeCommandList * This,3515_In_z_ LPCWSTR Name);35163517DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3518HRESULT ( STDMETHODCALLTYPE *GetDevice )(3519ID3D12VideoEncodeCommandList * This,3520REFIID riid,3521_COM_Outptr_opt_ void **ppvDevice);35223523DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)3524D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(3525ID3D12VideoEncodeCommandList * This);35263527DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)3528HRESULT ( STDMETHODCALLTYPE *Close )(3529ID3D12VideoEncodeCommandList * This);35303531DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)3532HRESULT ( STDMETHODCALLTYPE *Reset )(3533ID3D12VideoEncodeCommandList * This,3534_In_ ID3D12CommandAllocator *pAllocator);35353536DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)3537void ( STDMETHODCALLTYPE *ClearState )(3538ID3D12VideoEncodeCommandList * This);35393540DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)3541void ( STDMETHODCALLTYPE *ResourceBarrier )(3542ID3D12VideoEncodeCommandList * This,3543_In_ UINT NumBarriers,3544_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);35453546DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)3547void ( STDMETHODCALLTYPE *DiscardResource )(3548ID3D12VideoEncodeCommandList * This,3549_In_ ID3D12Resource *pResource,3550_In_opt_ const D3D12_DISCARD_REGION *pRegion);35513552DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)3553void ( STDMETHODCALLTYPE *BeginQuery )(3554ID3D12VideoEncodeCommandList * This,3555_In_ ID3D12QueryHeap *pQueryHeap,3556_In_ D3D12_QUERY_TYPE Type,3557_In_ UINT Index);35583559DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)3560void ( STDMETHODCALLTYPE *EndQuery )(3561ID3D12VideoEncodeCommandList * This,3562_In_ ID3D12QueryHeap *pQueryHeap,3563_In_ D3D12_QUERY_TYPE Type,3564_In_ UINT Index);35653566DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)3567void ( STDMETHODCALLTYPE *ResolveQueryData )(3568ID3D12VideoEncodeCommandList * This,3569_In_ ID3D12QueryHeap *pQueryHeap,3570_In_ D3D12_QUERY_TYPE Type,3571_In_ UINT StartIndex,3572_In_ UINT NumQueries,3573_In_ ID3D12Resource *pDestinationBuffer,3574_In_ UINT64 AlignedDestinationBufferOffset);35753576DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)3577void ( STDMETHODCALLTYPE *SetPredication )(3578ID3D12VideoEncodeCommandList * This,3579_In_opt_ ID3D12Resource *pBuffer,3580_In_ UINT64 AlignedBufferOffset,3581_In_ D3D12_PREDICATION_OP Operation);35823583DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)3584void ( STDMETHODCALLTYPE *SetMarker )(3585ID3D12VideoEncodeCommandList * This,3586UINT Metadata,3587_In_reads_bytes_opt_(Size) const void *pData,3588UINT Size);35893590DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)3591void ( STDMETHODCALLTYPE *BeginEvent )(3592ID3D12VideoEncodeCommandList * This,3593UINT Metadata,3594_In_reads_bytes_opt_(Size) const void *pData,3595UINT Size);35963597DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)3598void ( STDMETHODCALLTYPE *EndEvent )(3599ID3D12VideoEncodeCommandList * This);36003601DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)3602void ( STDMETHODCALLTYPE *EstimateMotion )(3603ID3D12VideoEncodeCommandList * This,3604_In_ ID3D12VideoMotionEstimator *pMotionEstimator,3605_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,3606_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);36073608DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)3609void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(3610ID3D12VideoEncodeCommandList * This,3611const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,3612const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);36133614DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)3615void ( STDMETHODCALLTYPE *WriteBufferImmediate )(3616ID3D12VideoEncodeCommandList * This,3617UINT Count,3618_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,3619_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);36203621DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)3622void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(3623ID3D12VideoEncodeCommandList * This,3624_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);36253626END_INTERFACE3627} ID3D12VideoEncodeCommandListVtbl;36283629interface ID3D12VideoEncodeCommandList3630{3631CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl;3632};3633363436353636#ifdef COBJMACROS363736383639#define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \3640( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )36413642#define ID3D12VideoEncodeCommandList_AddRef(This) \3643( (This)->lpVtbl -> AddRef(This) )36443645#define ID3D12VideoEncodeCommandList_Release(This) \3646( (This)->lpVtbl -> Release(This) )364736483649#define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \3650( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )36513652#define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \3653( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )36543655#define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \3656( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )36573658#define ID3D12VideoEncodeCommandList_SetName(This,Name) \3659( (This)->lpVtbl -> SetName(This,Name) )366036613662#define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \3663( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )366436653666#define ID3D12VideoEncodeCommandList_GetType(This) \3667( (This)->lpVtbl -> GetType(This) )366836693670#define ID3D12VideoEncodeCommandList_Close(This) \3671( (This)->lpVtbl -> Close(This) )36723673#define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \3674( (This)->lpVtbl -> Reset(This,pAllocator) )36753676#define ID3D12VideoEncodeCommandList_ClearState(This) \3677( (This)->lpVtbl -> ClearState(This) )36783679#define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \3680( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )36813682#define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \3683( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )36843685#define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \3686( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )36873688#define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \3689( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )36903691#define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \3692( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )36933694#define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \3695( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )36963697#define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \3698( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )36993700#define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \3701( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )37023703#define ID3D12VideoEncodeCommandList_EndEvent(This) \3704( (This)->lpVtbl -> EndEvent(This) )37053706#define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \3707( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )37083709#define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \3710( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )37113712#define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \3713( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )37143715#define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \3716( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )37173718#endif /* COBJMACROS */371937203721#endif /* C style interface */37223723372437253726#endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */372737283729/* interface __MIDL_itf_d3d12video_0000_0012 */3730/* [local] */37313732typedef3733enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS3734{3735D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0,3736D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x13737} D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS;37383739DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS )3740typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES3741{3742UINT NodeIndex;3743D3D12_VIDEO_DECODE_CONFIGURATION Configuration;3744D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3745} D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES;37463747typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES3748{3749UINT NodeIndex;3750D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3751} D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES;37523753typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES3754{3755UINT NodeIndex;3756D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3757} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES;37583759typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE13760{3761D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;3762BOOL Protected;3763UINT64 MemoryPoolL0Size;3764UINT64 MemoryPoolL1Size;3765} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1;37663767typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE13768{3769UINT NodeMask;3770const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;3771UINT NumInputStreamDescs;3772const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;3773BOOL Protected;3774UINT64 MemoryPoolL0Size;3775UINT64 MemoryPoolL1Size;3776} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1;37773778typedef3779enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE3780{3781D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0,3782D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,3783D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2,3784D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3,3785D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4,3786D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5,3787D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 63788} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE;37893790typedef3791enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE3792{3793D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0,3794D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1,3795D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2,3796D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3,3797D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4,3798D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5,3799D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6,3800D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7,3801D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8,3802D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9,3803D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 103804} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE;38053806typedef3807enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS3808{3809D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0,3810D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1,3811D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x23812} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS;38133814DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS )3815typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT3816{3817UINT NodeIndex;3818UINT CommandCount;3819} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT;38203821typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO3822{3823GUID CommandId;3824LPCWSTR Name;3825D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags;3826} D3D12_VIDEO_EXTENSION_COMMAND_INFO;38273828typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS3829{3830UINT NodeIndex;3831UINT CommandCount;3832_Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos;3833} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS;38343835typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT3836{3837GUID CommandId;3838D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;3839UINT ParameterCount;3840UINT ParameterPacking;3841} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT;38423843typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO3844{3845LPCWSTR Name;3846D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type;3847D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags;3848} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO;38493850typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS3851{3852GUID CommandId;3853D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;3854UINT ParameterCount;3855_Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos;3856} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS;38573858typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT3859{3860UINT NodeIndex;3861GUID CommandId;3862_Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData;3863SIZE_T InputDataSizeInBytes;3864_Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData;3865SIZE_T OutputDataSizeInBytes;3866} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT;38673868typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE3869{3870UINT NodeIndex;3871GUID CommandId;3872_Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters;3873SIZE_T CreationParametersSizeInBytes;3874UINT64 MemoryPoolL0Size;3875UINT64 MemoryPoolL1Size;3876} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE;38773878typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC3879{3880UINT NodeMask;3881GUID CommandId;3882} D3D12_VIDEO_EXTENSION_COMMAND_DESC;3883388438853886extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec;3887extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec;38883889#ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__3890#define __ID3D12VideoDecoder1_INTERFACE_DEFINED__38913892/* interface ID3D12VideoDecoder1 */3893/* [unique][local][object][uuid] */389438953896EXTERN_C const IID IID_ID3D12VideoDecoder1;38973898#if defined(__cplusplus) && !defined(CINTERFACE)38993900MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E")3901ID3D12VideoDecoder1 : public ID3D12VideoDecoder3902{3903public:3904virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(3905REFIID riid,3906_COM_Outptr_opt_ void **ppProtectedSession) = 0;39073908};390939103911#else /* C style interface */39123913typedef struct ID3D12VideoDecoder1Vtbl3914{3915BEGIN_INTERFACE39163917DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3918HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3919ID3D12VideoDecoder1 * This,3920REFIID riid,3921_COM_Outptr_ void **ppvObject);39223923DECLSPEC_XFGVIRT(IUnknown, AddRef)3924ULONG ( STDMETHODCALLTYPE *AddRef )(3925ID3D12VideoDecoder1 * This);39263927DECLSPEC_XFGVIRT(IUnknown, Release)3928ULONG ( STDMETHODCALLTYPE *Release )(3929ID3D12VideoDecoder1 * This);39303931DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3932HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3933ID3D12VideoDecoder1 * This,3934_In_ REFGUID guid,3935_Inout_ UINT *pDataSize,3936_Out_writes_bytes_opt_( *pDataSize ) void *pData);39373938DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3939HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3940ID3D12VideoDecoder1 * This,3941_In_ REFGUID guid,3942_In_ UINT DataSize,3943_In_reads_bytes_opt_( DataSize ) const void *pData);39443945DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3946HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3947ID3D12VideoDecoder1 * This,3948_In_ REFGUID guid,3949_In_opt_ const IUnknown *pData);39503951DECLSPEC_XFGVIRT(ID3D12Object, SetName)3952HRESULT ( STDMETHODCALLTYPE *SetName )(3953ID3D12VideoDecoder1 * This,3954_In_z_ LPCWSTR Name);39553956DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3957HRESULT ( STDMETHODCALLTYPE *GetDevice )(3958ID3D12VideoDecoder1 * This,3959REFIID riid,3960_COM_Outptr_opt_ void **ppvDevice);39613962DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)3963#if !defined(_WIN32)3964D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(3965ID3D12VideoDecoder1 * This);39663967#else3968D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(3969ID3D12VideoDecoder1 * This,3970D3D12_VIDEO_DECODER_DESC * RetVal);39713972#endif39733974DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession)3975HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(3976ID3D12VideoDecoder1 * This,3977REFIID riid,3978_COM_Outptr_opt_ void **ppProtectedSession);39793980END_INTERFACE3981} ID3D12VideoDecoder1Vtbl;39823983interface ID3D12VideoDecoder13984{3985CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl;3986};3987398839893990#ifdef COBJMACROS399139923993#define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \3994( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )39953996#define ID3D12VideoDecoder1_AddRef(This) \3997( (This)->lpVtbl -> AddRef(This) )39983999#define ID3D12VideoDecoder1_Release(This) \4000( (This)->lpVtbl -> Release(This) )400140024003#define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \4004( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )40054006#define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \4007( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )40084009#define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \4010( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )40114012#define ID3D12VideoDecoder1_SetName(This,Name) \4013( (This)->lpVtbl -> SetName(This,Name) )401440154016#define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \4017( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )401840194020#if !defined(_WIN32)40214022#define ID3D12VideoDecoder1_GetDesc(This) \4023( (This)->lpVtbl -> GetDesc(This) )4024#else4025#define ID3D12VideoDecoder1_GetDesc(This,RetVal) \4026( (This)->lpVtbl -> GetDesc(This,RetVal) )4027#endif402840294030#define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4031( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )40324033#endif /* COBJMACROS */403440354036#endif /* C style interface */40374038403940404041#endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */404240434044#ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__4045#define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__40464047/* interface ID3D12VideoDecoderHeap1 */4048/* [unique][local][object][uuid] */404940504051EXTERN_C const IID IID_ID3D12VideoDecoderHeap1;40524053#if defined(__cplusplus) && !defined(CINTERFACE)40544055MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26")4056ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap4057{4058public:4059virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4060REFIID riid,4061_COM_Outptr_opt_ void **ppProtectedSession) = 0;40624063};406440654066#else /* C style interface */40674068typedef struct ID3D12VideoDecoderHeap1Vtbl4069{4070BEGIN_INTERFACE40714072DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4073HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4074ID3D12VideoDecoderHeap1 * This,4075REFIID riid,4076_COM_Outptr_ void **ppvObject);40774078DECLSPEC_XFGVIRT(IUnknown, AddRef)4079ULONG ( STDMETHODCALLTYPE *AddRef )(4080ID3D12VideoDecoderHeap1 * This);40814082DECLSPEC_XFGVIRT(IUnknown, Release)4083ULONG ( STDMETHODCALLTYPE *Release )(4084ID3D12VideoDecoderHeap1 * This);40854086DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4087HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4088ID3D12VideoDecoderHeap1 * This,4089_In_ REFGUID guid,4090_Inout_ UINT *pDataSize,4091_Out_writes_bytes_opt_( *pDataSize ) void *pData);40924093DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4094HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4095ID3D12VideoDecoderHeap1 * This,4096_In_ REFGUID guid,4097_In_ UINT DataSize,4098_In_reads_bytes_opt_( DataSize ) const void *pData);40994100DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4101HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4102ID3D12VideoDecoderHeap1 * This,4103_In_ REFGUID guid,4104_In_opt_ const IUnknown *pData);41054106DECLSPEC_XFGVIRT(ID3D12Object, SetName)4107HRESULT ( STDMETHODCALLTYPE *SetName )(4108ID3D12VideoDecoderHeap1 * This,4109_In_z_ LPCWSTR Name);41104111DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4112HRESULT ( STDMETHODCALLTYPE *GetDevice )(4113ID3D12VideoDecoderHeap1 * This,4114REFIID riid,4115_COM_Outptr_opt_ void **ppvDevice);41164117DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)4118#if !defined(_WIN32)4119D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(4120ID3D12VideoDecoderHeap1 * This);41214122#else4123D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(4124ID3D12VideoDecoderHeap1 * This,4125D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);41264127#endif41284129DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession)4130HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4131ID3D12VideoDecoderHeap1 * This,4132REFIID riid,4133_COM_Outptr_opt_ void **ppProtectedSession);41344135END_INTERFACE4136} ID3D12VideoDecoderHeap1Vtbl;41374138interface ID3D12VideoDecoderHeap14139{4140CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl;4141};4142414341444145#ifdef COBJMACROS414641474148#define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \4149( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )41504151#define ID3D12VideoDecoderHeap1_AddRef(This) \4152( (This)->lpVtbl -> AddRef(This) )41534154#define ID3D12VideoDecoderHeap1_Release(This) \4155( (This)->lpVtbl -> Release(This) )415641574158#define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \4159( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )41604161#define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \4162( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )41634164#define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \4165( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )41664167#define ID3D12VideoDecoderHeap1_SetName(This,Name) \4168( (This)->lpVtbl -> SetName(This,Name) )416941704171#define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \4172( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )417341744175#if !defined(_WIN32)41764177#define ID3D12VideoDecoderHeap1_GetDesc(This) \4178( (This)->lpVtbl -> GetDesc(This) )4179#else4180#define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \4181( (This)->lpVtbl -> GetDesc(This,RetVal) )4182#endif418341844185#define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4186( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )41874188#endif /* COBJMACROS */418941904191#endif /* C style interface */41924193419441954196#endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */419741984199#ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__4200#define __ID3D12VideoProcessor1_INTERFACE_DEFINED__42014202/* interface ID3D12VideoProcessor1 */4203/* [unique][local][object][uuid] */420442054206EXTERN_C const IID IID_ID3D12VideoProcessor1;42074208#if defined(__cplusplus) && !defined(CINTERFACE)42094210MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C")4211ID3D12VideoProcessor1 : public ID3D12VideoProcessor4212{4213public:4214virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4215REFIID riid,4216_COM_Outptr_opt_ void **ppProtectedSession) = 0;42174218};421942204221#else /* C style interface */42224223typedef struct ID3D12VideoProcessor1Vtbl4224{4225BEGIN_INTERFACE42264227DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4228HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4229ID3D12VideoProcessor1 * This,4230REFIID riid,4231_COM_Outptr_ void **ppvObject);42324233DECLSPEC_XFGVIRT(IUnknown, AddRef)4234ULONG ( STDMETHODCALLTYPE *AddRef )(4235ID3D12VideoProcessor1 * This);42364237DECLSPEC_XFGVIRT(IUnknown, Release)4238ULONG ( STDMETHODCALLTYPE *Release )(4239ID3D12VideoProcessor1 * This);42404241DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4242HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4243ID3D12VideoProcessor1 * This,4244_In_ REFGUID guid,4245_Inout_ UINT *pDataSize,4246_Out_writes_bytes_opt_( *pDataSize ) void *pData);42474248DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4249HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4250ID3D12VideoProcessor1 * This,4251_In_ REFGUID guid,4252_In_ UINT DataSize,4253_In_reads_bytes_opt_( DataSize ) const void *pData);42544255DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4256HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4257ID3D12VideoProcessor1 * This,4258_In_ REFGUID guid,4259_In_opt_ const IUnknown *pData);42604261DECLSPEC_XFGVIRT(ID3D12Object, SetName)4262HRESULT ( STDMETHODCALLTYPE *SetName )(4263ID3D12VideoProcessor1 * This,4264_In_z_ LPCWSTR Name);42654266DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4267HRESULT ( STDMETHODCALLTYPE *GetDevice )(4268ID3D12VideoProcessor1 * This,4269REFIID riid,4270_COM_Outptr_opt_ void **ppvDevice);42714272DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)4273UINT ( STDMETHODCALLTYPE *GetNodeMask )(4274ID3D12VideoProcessor1 * This);42754276DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)4277UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(4278ID3D12VideoProcessor1 * This);42794280DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)4281HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(4282ID3D12VideoProcessor1 * This,4283UINT NumInputStreamDescs,4284_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);42854286DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)4287#if !defined(_WIN32)4288D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(4289ID3D12VideoProcessor1 * This);42904291#else4292D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(4293ID3D12VideoProcessor1 * This,4294D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);42954296#endif42974298DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession)4299HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4300ID3D12VideoProcessor1 * This,4301REFIID riid,4302_COM_Outptr_opt_ void **ppProtectedSession);43034304END_INTERFACE4305} ID3D12VideoProcessor1Vtbl;43064307interface ID3D12VideoProcessor14308{4309CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl;4310};4311431243134314#ifdef COBJMACROS431543164317#define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \4318( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )43194320#define ID3D12VideoProcessor1_AddRef(This) \4321( (This)->lpVtbl -> AddRef(This) )43224323#define ID3D12VideoProcessor1_Release(This) \4324( (This)->lpVtbl -> Release(This) )432543264327#define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \4328( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )43294330#define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \4331( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )43324333#define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \4334( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )43354336#define ID3D12VideoProcessor1_SetName(This,Name) \4337( (This)->lpVtbl -> SetName(This,Name) )433843394340#define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \4341( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )4342434343444345#define ID3D12VideoProcessor1_GetNodeMask(This) \4346( (This)->lpVtbl -> GetNodeMask(This) )43474348#define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \4349( (This)->lpVtbl -> GetNumInputStreamDescs(This) )43504351#define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \4352( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )4353#if !defined(_WIN32)43544355#define ID3D12VideoProcessor1_GetOutputStreamDesc(This) \4356( (This)->lpVtbl -> GetOutputStreamDesc(This) )4357#else4358#define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \4359( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )4360#endif436143624363#define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4364( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )43654366#endif /* COBJMACROS */436743684369#endif /* C style interface */43704371437243734374#endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */437543764377#ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__4378#define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__43794380/* interface ID3D12VideoExtensionCommand */4381/* [unique][local][object][uuid] */438243834384EXTERN_C const IID IID_ID3D12VideoExtensionCommand;43854386#if defined(__cplusplus) && !defined(CINTERFACE)43874388MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4")4389ID3D12VideoExtensionCommand : public ID3D12Pageable4390{4391public:4392#if defined(_MSC_VER) || !defined(_WIN32)4393virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0;4394#else4395virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC *STDMETHODCALLTYPE GetDesc(4396D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal) = 0;4397#endif43984399virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4400REFIID riid,4401_COM_Outptr_opt_ void **ppProtectedSession) = 0;44024403};440444054406#else /* C style interface */44074408typedef struct ID3D12VideoExtensionCommandVtbl4409{4410BEGIN_INTERFACE44114412DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4413HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4414ID3D12VideoExtensionCommand * This,4415REFIID riid,4416_COM_Outptr_ void **ppvObject);44174418DECLSPEC_XFGVIRT(IUnknown, AddRef)4419ULONG ( STDMETHODCALLTYPE *AddRef )(4420ID3D12VideoExtensionCommand * This);44214422DECLSPEC_XFGVIRT(IUnknown, Release)4423ULONG ( STDMETHODCALLTYPE *Release )(4424ID3D12VideoExtensionCommand * This);44254426DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4427HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4428ID3D12VideoExtensionCommand * This,4429_In_ REFGUID guid,4430_Inout_ UINT *pDataSize,4431_Out_writes_bytes_opt_( *pDataSize ) void *pData);44324433DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4434HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4435ID3D12VideoExtensionCommand * This,4436_In_ REFGUID guid,4437_In_ UINT DataSize,4438_In_reads_bytes_opt_( DataSize ) const void *pData);44394440DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4441HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4442ID3D12VideoExtensionCommand * This,4443_In_ REFGUID guid,4444_In_opt_ const IUnknown *pData);44454446DECLSPEC_XFGVIRT(ID3D12Object, SetName)4447HRESULT ( STDMETHODCALLTYPE *SetName )(4448ID3D12VideoExtensionCommand * This,4449_In_z_ LPCWSTR Name);44504451DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4452HRESULT ( STDMETHODCALLTYPE *GetDevice )(4453ID3D12VideoExtensionCommand * This,4454REFIID riid,4455_COM_Outptr_opt_ void **ppvDevice);44564457DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc)4458#if !defined(_WIN32)4459D3D12_VIDEO_EXTENSION_COMMAND_DESC ( STDMETHODCALLTYPE *GetDesc )(4460ID3D12VideoExtensionCommand * This);44614462#else4463D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )(4464ID3D12VideoExtensionCommand * This,4465D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal);44664467#endif44684469DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession)4470HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4471ID3D12VideoExtensionCommand * This,4472REFIID riid,4473_COM_Outptr_opt_ void **ppProtectedSession);44744475END_INTERFACE4476} ID3D12VideoExtensionCommandVtbl;44774478interface ID3D12VideoExtensionCommand4479{4480CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl;4481};4482448344844485#ifdef COBJMACROS448644874488#define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \4489( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )44904491#define ID3D12VideoExtensionCommand_AddRef(This) \4492( (This)->lpVtbl -> AddRef(This) )44934494#define ID3D12VideoExtensionCommand_Release(This) \4495( (This)->lpVtbl -> Release(This) )449644974498#define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \4499( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )45004501#define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \4502( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )45034504#define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \4505( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )45064507#define ID3D12VideoExtensionCommand_SetName(This,Name) \4508( (This)->lpVtbl -> SetName(This,Name) )450945104511#define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \4512( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )451345144515#if !defined(_WIN32)45164517#define ID3D12VideoExtensionCommand_GetDesc(This) \4518( (This)->lpVtbl -> GetDesc(This) )4519#else4520#define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \4521( (This)->lpVtbl -> GetDesc(This,RetVal) )4522#endif45234524#define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \4525( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )45264527#endif /* COBJMACROS */452845294530#endif /* C style interface */45314532453345344535#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */453645374538#ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__4539#define __ID3D12VideoDevice2_INTERFACE_DEFINED__45404541/* interface ID3D12VideoDevice2 */4542/* [unique][local][object][uuid] */454345444545EXTERN_C const IID IID_ID3D12VideoDevice2;45464547#if defined(__cplusplus) && !defined(CINTERFACE)45484549MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513")4550ID3D12VideoDevice2 : public ID3D12VideoDevice14551{4552public:4553virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1(4554_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4555_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4556_In_ REFIID riid,4557_COM_Outptr_ void **ppVideoDecoder) = 0;45584559virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1(4560_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4561_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4562_In_ REFIID riid,4563_COM_Outptr_ void **ppVideoDecoderHeap) = 0;45644565virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1(4566UINT NodeMask,4567_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4568UINT NumInputStreamDescs,4569_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4570_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4571_In_ REFIID riid,4572_COM_Outptr_ void **ppVideoProcessor) = 0;45734574virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand(4575_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,4576_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,4577SIZE_T CreationParametersDataSizeInBytes,4578_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4579_In_ REFIID riid,4580_COM_Outptr_ void **ppVideoExtensionCommand) = 0;45814582virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand(4583_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4584_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4585SIZE_T ExecutionParametersSizeInBytes,4586_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,4587SIZE_T OutputDataSizeInBytes) = 0;45884589};459045914592#else /* C style interface */45934594typedef struct ID3D12VideoDevice2Vtbl4595{4596BEGIN_INTERFACE45974598DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4599HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4600ID3D12VideoDevice2 * This,4601REFIID riid,4602_COM_Outptr_ void **ppvObject);46034604DECLSPEC_XFGVIRT(IUnknown, AddRef)4605ULONG ( STDMETHODCALLTYPE *AddRef )(4606ID3D12VideoDevice2 * This);46074608DECLSPEC_XFGVIRT(IUnknown, Release)4609ULONG ( STDMETHODCALLTYPE *Release )(4610ID3D12VideoDevice2 * This);46114612DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)4613HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(4614ID3D12VideoDevice2 * This,4615D3D12_FEATURE_VIDEO FeatureVideo,4616_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,4617UINT FeatureSupportDataSize);46184619DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)4620HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(4621ID3D12VideoDevice2 * This,4622_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4623_In_ REFIID riid,4624_COM_Outptr_ void **ppVideoDecoder);46254626DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)4627HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(4628ID3D12VideoDevice2 * This,4629_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4630_In_ REFIID riid,4631_COM_Outptr_ void **ppVideoDecoderHeap);46324633DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)4634HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(4635ID3D12VideoDevice2 * This,4636UINT NodeMask,4637_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4638UINT NumInputStreamDescs,4639_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4640_In_ REFIID riid,4641_COM_Outptr_ void **ppVideoProcessor);46424643DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)4644HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(4645ID3D12VideoDevice2 * This,4646_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,4647_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4648_In_ REFIID riid,4649_COM_Outptr_ void **ppVideoMotionEstimator);46504651DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)4652HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(4653ID3D12VideoDevice2 * This,4654_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,4655_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4656_In_ REFIID riid,4657_COM_Outptr_ void **ppVideoMotionVectorHeap);46584659DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)4660HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(4661ID3D12VideoDevice2 * This,4662_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4663_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4664_In_ REFIID riid,4665_COM_Outptr_ void **ppVideoDecoder);46664667DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)4668HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(4669ID3D12VideoDevice2 * This,4670_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4671_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4672_In_ REFIID riid,4673_COM_Outptr_ void **ppVideoDecoderHeap);46744675DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)4676HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(4677ID3D12VideoDevice2 * This,4678UINT NodeMask,4679_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4680UINT NumInputStreamDescs,4681_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4682_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4683_In_ REFIID riid,4684_COM_Outptr_ void **ppVideoProcessor);46854686DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)4687HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(4688ID3D12VideoDevice2 * This,4689_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,4690_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,4691SIZE_T CreationParametersDataSizeInBytes,4692_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4693_In_ REFIID riid,4694_COM_Outptr_ void **ppVideoExtensionCommand);46954696DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)4697HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(4698ID3D12VideoDevice2 * This,4699_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4700_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4701SIZE_T ExecutionParametersSizeInBytes,4702_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,4703SIZE_T OutputDataSizeInBytes);47044705END_INTERFACE4706} ID3D12VideoDevice2Vtbl;47074708interface ID3D12VideoDevice24709{4710CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl;4711};4712471347144715#ifdef COBJMACROS471647174718#define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \4719( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )47204721#define ID3D12VideoDevice2_AddRef(This) \4722( (This)->lpVtbl -> AddRef(This) )47234724#define ID3D12VideoDevice2_Release(This) \4725( (This)->lpVtbl -> Release(This) )472647274728#define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \4729( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )47304731#define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \4732( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )47334734#define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \4735( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )47364737#define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \4738( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )473947404741#define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \4742( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )47434744#define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \4745( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )474647474748#define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \4749( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )47504751#define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \4752( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )47534754#define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \4755( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )47564757#define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \4758( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )47594760#define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \4761( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )47624763#endif /* COBJMACROS */476447654766#endif /* C style interface */47674768476947704771#endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */477247734774#ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__4775#define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__47764777/* interface ID3D12VideoDecodeCommandList2 */4778/* [unique][local][object][uuid] */477947804781EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2;47824783#if defined(__cplusplus) && !defined(CINTERFACE)47844785MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729")4786ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList14787{4788public:4789virtual void STDMETHODCALLTYPE SetProtectedResourceSession(4790_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;47914792virtual void STDMETHODCALLTYPE InitializeExtensionCommand(4793_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4794_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,4795SIZE_T InitializationParametersSizeInBytes) = 0;47964797virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(4798_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4799_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4800SIZE_T ExecutionParametersSizeInBytes) = 0;48014802};480348044805#else /* C style interface */48064807typedef struct ID3D12VideoDecodeCommandList2Vtbl4808{4809BEGIN_INTERFACE48104811DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4812HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4813ID3D12VideoDecodeCommandList2 * This,4814REFIID riid,4815_COM_Outptr_ void **ppvObject);48164817DECLSPEC_XFGVIRT(IUnknown, AddRef)4818ULONG ( STDMETHODCALLTYPE *AddRef )(4819ID3D12VideoDecodeCommandList2 * This);48204821DECLSPEC_XFGVIRT(IUnknown, Release)4822ULONG ( STDMETHODCALLTYPE *Release )(4823ID3D12VideoDecodeCommandList2 * This);48244825DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4826HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4827ID3D12VideoDecodeCommandList2 * This,4828_In_ REFGUID guid,4829_Inout_ UINT *pDataSize,4830_Out_writes_bytes_opt_( *pDataSize ) void *pData);48314832DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4833HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4834ID3D12VideoDecodeCommandList2 * This,4835_In_ REFGUID guid,4836_In_ UINT DataSize,4837_In_reads_bytes_opt_( DataSize ) const void *pData);48384839DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4840HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4841ID3D12VideoDecodeCommandList2 * This,4842_In_ REFGUID guid,4843_In_opt_ const IUnknown *pData);48444845DECLSPEC_XFGVIRT(ID3D12Object, SetName)4846HRESULT ( STDMETHODCALLTYPE *SetName )(4847ID3D12VideoDecodeCommandList2 * This,4848_In_z_ LPCWSTR Name);48494850DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4851HRESULT ( STDMETHODCALLTYPE *GetDevice )(4852ID3D12VideoDecodeCommandList2 * This,4853REFIID riid,4854_COM_Outptr_opt_ void **ppvDevice);48554856DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)4857D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(4858ID3D12VideoDecodeCommandList2 * This);48594860DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)4861HRESULT ( STDMETHODCALLTYPE *Close )(4862ID3D12VideoDecodeCommandList2 * This);48634864DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)4865HRESULT ( STDMETHODCALLTYPE *Reset )(4866ID3D12VideoDecodeCommandList2 * This,4867_In_ ID3D12CommandAllocator *pAllocator);48684869DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)4870void ( STDMETHODCALLTYPE *ClearState )(4871ID3D12VideoDecodeCommandList2 * This);48724873DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)4874void ( STDMETHODCALLTYPE *ResourceBarrier )(4875ID3D12VideoDecodeCommandList2 * This,4876_In_ UINT NumBarriers,4877_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);48784879DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)4880void ( STDMETHODCALLTYPE *DiscardResource )(4881ID3D12VideoDecodeCommandList2 * This,4882_In_ ID3D12Resource *pResource,4883_In_opt_ const D3D12_DISCARD_REGION *pRegion);48844885DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)4886void ( STDMETHODCALLTYPE *BeginQuery )(4887ID3D12VideoDecodeCommandList2 * This,4888_In_ ID3D12QueryHeap *pQueryHeap,4889_In_ D3D12_QUERY_TYPE Type,4890_In_ UINT Index);48914892DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)4893void ( STDMETHODCALLTYPE *EndQuery )(4894ID3D12VideoDecodeCommandList2 * This,4895_In_ ID3D12QueryHeap *pQueryHeap,4896_In_ D3D12_QUERY_TYPE Type,4897_In_ UINT Index);48984899DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)4900void ( STDMETHODCALLTYPE *ResolveQueryData )(4901ID3D12VideoDecodeCommandList2 * This,4902_In_ ID3D12QueryHeap *pQueryHeap,4903_In_ D3D12_QUERY_TYPE Type,4904_In_ UINT StartIndex,4905_In_ UINT NumQueries,4906_In_ ID3D12Resource *pDestinationBuffer,4907_In_ UINT64 AlignedDestinationBufferOffset);49084909DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)4910void ( STDMETHODCALLTYPE *SetPredication )(4911ID3D12VideoDecodeCommandList2 * This,4912_In_opt_ ID3D12Resource *pBuffer,4913_In_ UINT64 AlignedBufferOffset,4914_In_ D3D12_PREDICATION_OP Operation);49154916DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)4917void ( STDMETHODCALLTYPE *SetMarker )(4918ID3D12VideoDecodeCommandList2 * This,4919UINT Metadata,4920_In_reads_bytes_opt_(Size) const void *pData,4921UINT Size);49224923DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)4924void ( STDMETHODCALLTYPE *BeginEvent )(4925ID3D12VideoDecodeCommandList2 * This,4926UINT Metadata,4927_In_reads_bytes_opt_(Size) const void *pData,4928UINT Size);49294930DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)4931void ( STDMETHODCALLTYPE *EndEvent )(4932ID3D12VideoDecodeCommandList2 * This);49334934DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)4935void ( STDMETHODCALLTYPE *DecodeFrame )(4936ID3D12VideoDecodeCommandList2 * This,4937_In_ ID3D12VideoDecoder *pDecoder,4938_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,4939_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);49404941DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)4942void ( STDMETHODCALLTYPE *WriteBufferImmediate )(4943ID3D12VideoDecodeCommandList2 * This,4944UINT Count,4945_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,4946_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);49474948DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)4949void ( STDMETHODCALLTYPE *DecodeFrame1 )(4950ID3D12VideoDecodeCommandList2 * This,4951_In_ ID3D12VideoDecoder *pDecoder,4952_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,4953_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);49544955DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)4956void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(4957ID3D12VideoDecodeCommandList2 * This,4958_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);49594960DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)4961void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(4962ID3D12VideoDecodeCommandList2 * This,4963_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4964_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,4965SIZE_T InitializationParametersSizeInBytes);49664967DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)4968void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(4969ID3D12VideoDecodeCommandList2 * This,4970_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4971_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4972SIZE_T ExecutionParametersSizeInBytes);49734974END_INTERFACE4975} ID3D12VideoDecodeCommandList2Vtbl;49764977interface ID3D12VideoDecodeCommandList24978{4979CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl;4980};4981498249834984#ifdef COBJMACROS498549864987#define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \4988( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )49894990#define ID3D12VideoDecodeCommandList2_AddRef(This) \4991( (This)->lpVtbl -> AddRef(This) )49924993#define ID3D12VideoDecodeCommandList2_Release(This) \4994( (This)->lpVtbl -> Release(This) )499549964997#define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \4998( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )49995000#define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \5001( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )50025003#define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \5004( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )50055006#define ID3D12VideoDecodeCommandList2_SetName(This,Name) \5007( (This)->lpVtbl -> SetName(This,Name) )500850095010#define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \5011( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )501250135014#define ID3D12VideoDecodeCommandList2_GetType(This) \5015( (This)->lpVtbl -> GetType(This) )501650175018#define ID3D12VideoDecodeCommandList2_Close(This) \5019( (This)->lpVtbl -> Close(This) )50205021#define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \5022( (This)->lpVtbl -> Reset(This,pAllocator) )50235024#define ID3D12VideoDecodeCommandList2_ClearState(This) \5025( (This)->lpVtbl -> ClearState(This) )50265027#define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \5028( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )50295030#define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \5031( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )50325033#define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \5034( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )50355036#define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \5037( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )50385039#define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5040( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )50415042#define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5043( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )50445045#define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \5046( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )50475048#define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \5049( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )50505051#define ID3D12VideoDecodeCommandList2_EndEvent(This) \5052( (This)->lpVtbl -> EndEvent(This) )50535054#define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \5055( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )50565057#define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \5058( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )505950605061#define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \5062( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )506350645065#define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \5066( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )50675068#define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5069( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )50705071#define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5072( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )50735074#endif /* COBJMACROS */507550765077#endif /* C style interface */50785079508050815082#endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */508350845085#ifndef __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__5086#define __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__50875088/* interface ID3D12VideoDecodeCommandList3 */5089/* [unique][local][object][uuid] */509050915092EXTERN_C const IID IID_ID3D12VideoDecodeCommandList3;50935094#if defined(__cplusplus) && !defined(CINTERFACE)50955096MIDL_INTERFACE("2aee8c37-9562-42da-8abf-61efeb2e4513")5097ID3D12VideoDecodeCommandList3 : public ID3D12VideoDecodeCommandList25098{5099public:5100virtual void STDMETHODCALLTYPE Barrier(5101UINT32 NumBarrierGroups,5102_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;51035104};510551065107#else /* C style interface */51085109typedef struct ID3D12VideoDecodeCommandList3Vtbl5110{5111BEGIN_INTERFACE51125113DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5114HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5115ID3D12VideoDecodeCommandList3 * This,5116REFIID riid,5117_COM_Outptr_ void **ppvObject);51185119DECLSPEC_XFGVIRT(IUnknown, AddRef)5120ULONG ( STDMETHODCALLTYPE *AddRef )(5121ID3D12VideoDecodeCommandList3 * This);51225123DECLSPEC_XFGVIRT(IUnknown, Release)5124ULONG ( STDMETHODCALLTYPE *Release )(5125ID3D12VideoDecodeCommandList3 * This);51265127DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5128HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5129ID3D12VideoDecodeCommandList3 * This,5130_In_ REFGUID guid,5131_Inout_ UINT *pDataSize,5132_Out_writes_bytes_opt_( *pDataSize ) void *pData);51335134DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5135HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5136ID3D12VideoDecodeCommandList3 * This,5137_In_ REFGUID guid,5138_In_ UINT DataSize,5139_In_reads_bytes_opt_( DataSize ) const void *pData);51405141DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5142HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5143ID3D12VideoDecodeCommandList3 * This,5144_In_ REFGUID guid,5145_In_opt_ const IUnknown *pData);51465147DECLSPEC_XFGVIRT(ID3D12Object, SetName)5148HRESULT ( STDMETHODCALLTYPE *SetName )(5149ID3D12VideoDecodeCommandList3 * This,5150_In_z_ LPCWSTR Name);51515152DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5153HRESULT ( STDMETHODCALLTYPE *GetDevice )(5154ID3D12VideoDecodeCommandList3 * This,5155REFIID riid,5156_COM_Outptr_opt_ void **ppvDevice);51575158DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5159D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5160ID3D12VideoDecodeCommandList3 * This);51615162DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)5163HRESULT ( STDMETHODCALLTYPE *Close )(5164ID3D12VideoDecodeCommandList3 * This);51655166DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)5167HRESULT ( STDMETHODCALLTYPE *Reset )(5168ID3D12VideoDecodeCommandList3 * This,5169_In_ ID3D12CommandAllocator *pAllocator);51705171DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)5172void ( STDMETHODCALLTYPE *ClearState )(5173ID3D12VideoDecodeCommandList3 * This);51745175DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)5176void ( STDMETHODCALLTYPE *ResourceBarrier )(5177ID3D12VideoDecodeCommandList3 * This,5178_In_ UINT NumBarriers,5179_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);51805181DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)5182void ( STDMETHODCALLTYPE *DiscardResource )(5183ID3D12VideoDecodeCommandList3 * This,5184_In_ ID3D12Resource *pResource,5185_In_opt_ const D3D12_DISCARD_REGION *pRegion);51865187DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)5188void ( STDMETHODCALLTYPE *BeginQuery )(5189ID3D12VideoDecodeCommandList3 * This,5190_In_ ID3D12QueryHeap *pQueryHeap,5191_In_ D3D12_QUERY_TYPE Type,5192_In_ UINT Index);51935194DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)5195void ( STDMETHODCALLTYPE *EndQuery )(5196ID3D12VideoDecodeCommandList3 * This,5197_In_ ID3D12QueryHeap *pQueryHeap,5198_In_ D3D12_QUERY_TYPE Type,5199_In_ UINT Index);52005201DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)5202void ( STDMETHODCALLTYPE *ResolveQueryData )(5203ID3D12VideoDecodeCommandList3 * This,5204_In_ ID3D12QueryHeap *pQueryHeap,5205_In_ D3D12_QUERY_TYPE Type,5206_In_ UINT StartIndex,5207_In_ UINT NumQueries,5208_In_ ID3D12Resource *pDestinationBuffer,5209_In_ UINT64 AlignedDestinationBufferOffset);52105211DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)5212void ( STDMETHODCALLTYPE *SetPredication )(5213ID3D12VideoDecodeCommandList3 * This,5214_In_opt_ ID3D12Resource *pBuffer,5215_In_ UINT64 AlignedBufferOffset,5216_In_ D3D12_PREDICATION_OP Operation);52175218DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)5219void ( STDMETHODCALLTYPE *SetMarker )(5220ID3D12VideoDecodeCommandList3 * This,5221UINT Metadata,5222_In_reads_bytes_opt_(Size) const void *pData,5223UINT Size);52245225DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)5226void ( STDMETHODCALLTYPE *BeginEvent )(5227ID3D12VideoDecodeCommandList3 * This,5228UINT Metadata,5229_In_reads_bytes_opt_(Size) const void *pData,5230UINT Size);52315232DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)5233void ( STDMETHODCALLTYPE *EndEvent )(5234ID3D12VideoDecodeCommandList3 * This);52355236DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)5237void ( STDMETHODCALLTYPE *DecodeFrame )(5238ID3D12VideoDecodeCommandList3 * This,5239_In_ ID3D12VideoDecoder *pDecoder,5240_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5241_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);52425243DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)5244void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5245ID3D12VideoDecodeCommandList3 * This,5246UINT Count,5247_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5248_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);52495250DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)5251void ( STDMETHODCALLTYPE *DecodeFrame1 )(5252ID3D12VideoDecodeCommandList3 * This,5253_In_ ID3D12VideoDecoder *pDecoder,5254_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,5255_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);52565257DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)5258void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5259ID3D12VideoDecodeCommandList3 * This,5260_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);52615262DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)5263void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5264ID3D12VideoDecodeCommandList3 * This,5265_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5266_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5267SIZE_T InitializationParametersSizeInBytes);52685269DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)5270void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5271ID3D12VideoDecodeCommandList3 * This,5272_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5273_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5274SIZE_T ExecutionParametersSizeInBytes);52755276DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList3, Barrier)5277void ( STDMETHODCALLTYPE *Barrier )(5278ID3D12VideoDecodeCommandList3 * This,5279UINT32 NumBarrierGroups,5280_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);52815282END_INTERFACE5283} ID3D12VideoDecodeCommandList3Vtbl;52845285interface ID3D12VideoDecodeCommandList35286{5287CONST_VTBL struct ID3D12VideoDecodeCommandList3Vtbl *lpVtbl;5288};5289529052915292#ifdef COBJMACROS529352945295#define ID3D12VideoDecodeCommandList3_QueryInterface(This,riid,ppvObject) \5296( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )52975298#define ID3D12VideoDecodeCommandList3_AddRef(This) \5299( (This)->lpVtbl -> AddRef(This) )53005301#define ID3D12VideoDecodeCommandList3_Release(This) \5302( (This)->lpVtbl -> Release(This) )530353045305#define ID3D12VideoDecodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \5306( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )53075308#define ID3D12VideoDecodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \5309( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )53105311#define ID3D12VideoDecodeCommandList3_SetPrivateDataInterface(This,guid,pData) \5312( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )53135314#define ID3D12VideoDecodeCommandList3_SetName(This,Name) \5315( (This)->lpVtbl -> SetName(This,Name) )531653175318#define ID3D12VideoDecodeCommandList3_GetDevice(This,riid,ppvDevice) \5319( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )532053215322#define ID3D12VideoDecodeCommandList3_GetType(This) \5323( (This)->lpVtbl -> GetType(This) )532453255326#define ID3D12VideoDecodeCommandList3_Close(This) \5327( (This)->lpVtbl -> Close(This) )53285329#define ID3D12VideoDecodeCommandList3_Reset(This,pAllocator) \5330( (This)->lpVtbl -> Reset(This,pAllocator) )53315332#define ID3D12VideoDecodeCommandList3_ClearState(This) \5333( (This)->lpVtbl -> ClearState(This) )53345335#define ID3D12VideoDecodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \5336( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )53375338#define ID3D12VideoDecodeCommandList3_DiscardResource(This,pResource,pRegion) \5339( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )53405341#define ID3D12VideoDecodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \5342( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )53435344#define ID3D12VideoDecodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \5345( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )53465347#define ID3D12VideoDecodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5348( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )53495350#define ID3D12VideoDecodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5351( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )53525353#define ID3D12VideoDecodeCommandList3_SetMarker(This,Metadata,pData,Size) \5354( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )53555356#define ID3D12VideoDecodeCommandList3_BeginEvent(This,Metadata,pData,Size) \5357( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )53585359#define ID3D12VideoDecodeCommandList3_EndEvent(This) \5360( (This)->lpVtbl -> EndEvent(This) )53615362#define ID3D12VideoDecodeCommandList3_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \5363( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )53645365#define ID3D12VideoDecodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \5366( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )536753685369#define ID3D12VideoDecodeCommandList3_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \5370( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )537153725373#define ID3D12VideoDecodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \5374( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )53755376#define ID3D12VideoDecodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5377( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )53785379#define ID3D12VideoDecodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5380( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )538153825383#define ID3D12VideoDecodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \5384( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )53855386#endif /* COBJMACROS */538753885389#endif /* C style interface */53905391539253935394#endif /* __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ */539553965397#ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__5398#define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__53995400/* interface ID3D12VideoProcessCommandList2 */5401/* [unique][local][object][uuid] */540254035404EXTERN_C const IID IID_ID3D12VideoProcessCommandList2;54055406#if defined(__cplusplus) && !defined(CINTERFACE)54075408MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4")5409ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList15410{5411public:5412virtual void STDMETHODCALLTYPE SetProtectedResourceSession(5413_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;54145415virtual void STDMETHODCALLTYPE InitializeExtensionCommand(5416_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5417_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5418SIZE_T InitializationParametersSizeInBytes) = 0;54195420virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(5421_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5422_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5423SIZE_T ExecutionParametersSizeInBytes) = 0;54245425};542654275428#else /* C style interface */54295430typedef struct ID3D12VideoProcessCommandList2Vtbl5431{5432BEGIN_INTERFACE54335434DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5435HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5436ID3D12VideoProcessCommandList2 * This,5437REFIID riid,5438_COM_Outptr_ void **ppvObject);54395440DECLSPEC_XFGVIRT(IUnknown, AddRef)5441ULONG ( STDMETHODCALLTYPE *AddRef )(5442ID3D12VideoProcessCommandList2 * This);54435444DECLSPEC_XFGVIRT(IUnknown, Release)5445ULONG ( STDMETHODCALLTYPE *Release )(5446ID3D12VideoProcessCommandList2 * This);54475448DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5449HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5450ID3D12VideoProcessCommandList2 * This,5451_In_ REFGUID guid,5452_Inout_ UINT *pDataSize,5453_Out_writes_bytes_opt_( *pDataSize ) void *pData);54545455DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5456HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5457ID3D12VideoProcessCommandList2 * This,5458_In_ REFGUID guid,5459_In_ UINT DataSize,5460_In_reads_bytes_opt_( DataSize ) const void *pData);54615462DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5463HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5464ID3D12VideoProcessCommandList2 * This,5465_In_ REFGUID guid,5466_In_opt_ const IUnknown *pData);54675468DECLSPEC_XFGVIRT(ID3D12Object, SetName)5469HRESULT ( STDMETHODCALLTYPE *SetName )(5470ID3D12VideoProcessCommandList2 * This,5471_In_z_ LPCWSTR Name);54725473DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5474HRESULT ( STDMETHODCALLTYPE *GetDevice )(5475ID3D12VideoProcessCommandList2 * This,5476REFIID riid,5477_COM_Outptr_opt_ void **ppvDevice);54785479DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5480D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5481ID3D12VideoProcessCommandList2 * This);54825483DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)5484HRESULT ( STDMETHODCALLTYPE *Close )(5485ID3D12VideoProcessCommandList2 * This);54865487DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)5488HRESULT ( STDMETHODCALLTYPE *Reset )(5489ID3D12VideoProcessCommandList2 * This,5490_In_ ID3D12CommandAllocator *pAllocator);54915492DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)5493void ( STDMETHODCALLTYPE *ClearState )(5494ID3D12VideoProcessCommandList2 * This);54955496DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)5497void ( STDMETHODCALLTYPE *ResourceBarrier )(5498ID3D12VideoProcessCommandList2 * This,5499_In_ UINT NumBarriers,5500_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);55015502DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)5503void ( STDMETHODCALLTYPE *DiscardResource )(5504ID3D12VideoProcessCommandList2 * This,5505_In_ ID3D12Resource *pResource,5506_In_opt_ const D3D12_DISCARD_REGION *pRegion);55075508DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)5509void ( STDMETHODCALLTYPE *BeginQuery )(5510ID3D12VideoProcessCommandList2 * This,5511_In_ ID3D12QueryHeap *pQueryHeap,5512_In_ D3D12_QUERY_TYPE Type,5513_In_ UINT Index);55145515DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)5516void ( STDMETHODCALLTYPE *EndQuery )(5517ID3D12VideoProcessCommandList2 * This,5518_In_ ID3D12QueryHeap *pQueryHeap,5519_In_ D3D12_QUERY_TYPE Type,5520_In_ UINT Index);55215522DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)5523void ( STDMETHODCALLTYPE *ResolveQueryData )(5524ID3D12VideoProcessCommandList2 * This,5525_In_ ID3D12QueryHeap *pQueryHeap,5526_In_ D3D12_QUERY_TYPE Type,5527_In_ UINT StartIndex,5528_In_ UINT NumQueries,5529_In_ ID3D12Resource *pDestinationBuffer,5530_In_ UINT64 AlignedDestinationBufferOffset);55315532DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)5533void ( STDMETHODCALLTYPE *SetPredication )(5534ID3D12VideoProcessCommandList2 * This,5535_In_opt_ ID3D12Resource *pBuffer,5536_In_ UINT64 AlignedBufferOffset,5537_In_ D3D12_PREDICATION_OP Operation);55385539DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)5540void ( STDMETHODCALLTYPE *SetMarker )(5541ID3D12VideoProcessCommandList2 * This,5542UINT Metadata,5543_In_reads_bytes_opt_(Size) const void *pData,5544UINT Size);55455546DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)5547void ( STDMETHODCALLTYPE *BeginEvent )(5548ID3D12VideoProcessCommandList2 * This,5549UINT Metadata,5550_In_reads_bytes_opt_(Size) const void *pData,5551UINT Size);55525553DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)5554void ( STDMETHODCALLTYPE *EndEvent )(5555ID3D12VideoProcessCommandList2 * This);55565557DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)5558void ( STDMETHODCALLTYPE *ProcessFrames )(5559ID3D12VideoProcessCommandList2 * This,5560_In_ ID3D12VideoProcessor *pVideoProcessor,5561_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5562UINT NumInputStreams,5563_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);55645565DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)5566void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5567ID3D12VideoProcessCommandList2 * This,5568UINT Count,5569_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5570_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);55715572DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)5573void ( STDMETHODCALLTYPE *ProcessFrames1 )(5574ID3D12VideoProcessCommandList2 * This,5575_In_ ID3D12VideoProcessor *pVideoProcessor,5576_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5577UINT NumInputStreams,5578_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);55795580DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)5581void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5582ID3D12VideoProcessCommandList2 * This,5583_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);55845585DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)5586void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5587ID3D12VideoProcessCommandList2 * This,5588_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5589_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5590SIZE_T InitializationParametersSizeInBytes);55915592DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)5593void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5594ID3D12VideoProcessCommandList2 * This,5595_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5596_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5597SIZE_T ExecutionParametersSizeInBytes);55985599END_INTERFACE5600} ID3D12VideoProcessCommandList2Vtbl;56015602interface ID3D12VideoProcessCommandList25603{5604CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl;5605};5606560756085609#ifdef COBJMACROS561056115612#define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \5613( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )56145615#define ID3D12VideoProcessCommandList2_AddRef(This) \5616( (This)->lpVtbl -> AddRef(This) )56175618#define ID3D12VideoProcessCommandList2_Release(This) \5619( (This)->lpVtbl -> Release(This) )562056215622#define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \5623( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )56245625#define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \5626( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )56275628#define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \5629( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )56305631#define ID3D12VideoProcessCommandList2_SetName(This,Name) \5632( (This)->lpVtbl -> SetName(This,Name) )563356345635#define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \5636( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )563756385639#define ID3D12VideoProcessCommandList2_GetType(This) \5640( (This)->lpVtbl -> GetType(This) )564156425643#define ID3D12VideoProcessCommandList2_Close(This) \5644( (This)->lpVtbl -> Close(This) )56455646#define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \5647( (This)->lpVtbl -> Reset(This,pAllocator) )56485649#define ID3D12VideoProcessCommandList2_ClearState(This) \5650( (This)->lpVtbl -> ClearState(This) )56515652#define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \5653( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )56545655#define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \5656( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )56575658#define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \5659( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )56605661#define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \5662( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )56635664#define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5665( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )56665667#define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5668( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )56695670#define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \5671( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )56725673#define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \5674( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )56755676#define ID3D12VideoProcessCommandList2_EndEvent(This) \5677( (This)->lpVtbl -> EndEvent(This) )56785679#define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5680( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )56815682#define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \5683( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )568456855686#define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5687( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )568856895690#define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \5691( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )56925693#define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5694( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )56955696#define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5697( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )56985699#endif /* COBJMACROS */570057015702#endif /* C style interface */57035704570557065707#endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */570857095710#ifndef __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__5711#define __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__57125713/* interface ID3D12VideoProcessCommandList3 */5714/* [unique][local][object][uuid] */571557165717EXTERN_C const IID IID_ID3D12VideoProcessCommandList3;57185719#if defined(__cplusplus) && !defined(CINTERFACE)57205721MIDL_INTERFACE("1a0a4ca4-9f08-40ce-9558-b411fd2666ff")5722ID3D12VideoProcessCommandList3 : public ID3D12VideoProcessCommandList25723{5724public:5725virtual void STDMETHODCALLTYPE Barrier(5726UINT32 NumBarrierGroups,5727_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;57285729};573057315732#else /* C style interface */57335734typedef struct ID3D12VideoProcessCommandList3Vtbl5735{5736BEGIN_INTERFACE57375738DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5739HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5740ID3D12VideoProcessCommandList3 * This,5741REFIID riid,5742_COM_Outptr_ void **ppvObject);57435744DECLSPEC_XFGVIRT(IUnknown, AddRef)5745ULONG ( STDMETHODCALLTYPE *AddRef )(5746ID3D12VideoProcessCommandList3 * This);57475748DECLSPEC_XFGVIRT(IUnknown, Release)5749ULONG ( STDMETHODCALLTYPE *Release )(5750ID3D12VideoProcessCommandList3 * This);57515752DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5753HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5754ID3D12VideoProcessCommandList3 * This,5755_In_ REFGUID guid,5756_Inout_ UINT *pDataSize,5757_Out_writes_bytes_opt_( *pDataSize ) void *pData);57585759DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5760HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5761ID3D12VideoProcessCommandList3 * This,5762_In_ REFGUID guid,5763_In_ UINT DataSize,5764_In_reads_bytes_opt_( DataSize ) const void *pData);57655766DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5767HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5768ID3D12VideoProcessCommandList3 * This,5769_In_ REFGUID guid,5770_In_opt_ const IUnknown *pData);57715772DECLSPEC_XFGVIRT(ID3D12Object, SetName)5773HRESULT ( STDMETHODCALLTYPE *SetName )(5774ID3D12VideoProcessCommandList3 * This,5775_In_z_ LPCWSTR Name);57765777DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5778HRESULT ( STDMETHODCALLTYPE *GetDevice )(5779ID3D12VideoProcessCommandList3 * This,5780REFIID riid,5781_COM_Outptr_opt_ void **ppvDevice);57825783DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5784D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5785ID3D12VideoProcessCommandList3 * This);57865787DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)5788HRESULT ( STDMETHODCALLTYPE *Close )(5789ID3D12VideoProcessCommandList3 * This);57905791DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)5792HRESULT ( STDMETHODCALLTYPE *Reset )(5793ID3D12VideoProcessCommandList3 * This,5794_In_ ID3D12CommandAllocator *pAllocator);57955796DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)5797void ( STDMETHODCALLTYPE *ClearState )(5798ID3D12VideoProcessCommandList3 * This);57995800DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)5801void ( STDMETHODCALLTYPE *ResourceBarrier )(5802ID3D12VideoProcessCommandList3 * This,5803_In_ UINT NumBarriers,5804_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);58055806DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)5807void ( STDMETHODCALLTYPE *DiscardResource )(5808ID3D12VideoProcessCommandList3 * This,5809_In_ ID3D12Resource *pResource,5810_In_opt_ const D3D12_DISCARD_REGION *pRegion);58115812DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)5813void ( STDMETHODCALLTYPE *BeginQuery )(5814ID3D12VideoProcessCommandList3 * This,5815_In_ ID3D12QueryHeap *pQueryHeap,5816_In_ D3D12_QUERY_TYPE Type,5817_In_ UINT Index);58185819DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)5820void ( STDMETHODCALLTYPE *EndQuery )(5821ID3D12VideoProcessCommandList3 * This,5822_In_ ID3D12QueryHeap *pQueryHeap,5823_In_ D3D12_QUERY_TYPE Type,5824_In_ UINT Index);58255826DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)5827void ( STDMETHODCALLTYPE *ResolveQueryData )(5828ID3D12VideoProcessCommandList3 * This,5829_In_ ID3D12QueryHeap *pQueryHeap,5830_In_ D3D12_QUERY_TYPE Type,5831_In_ UINT StartIndex,5832_In_ UINT NumQueries,5833_In_ ID3D12Resource *pDestinationBuffer,5834_In_ UINT64 AlignedDestinationBufferOffset);58355836DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)5837void ( STDMETHODCALLTYPE *SetPredication )(5838ID3D12VideoProcessCommandList3 * This,5839_In_opt_ ID3D12Resource *pBuffer,5840_In_ UINT64 AlignedBufferOffset,5841_In_ D3D12_PREDICATION_OP Operation);58425843DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)5844void ( STDMETHODCALLTYPE *SetMarker )(5845ID3D12VideoProcessCommandList3 * This,5846UINT Metadata,5847_In_reads_bytes_opt_(Size) const void *pData,5848UINT Size);58495850DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)5851void ( STDMETHODCALLTYPE *BeginEvent )(5852ID3D12VideoProcessCommandList3 * This,5853UINT Metadata,5854_In_reads_bytes_opt_(Size) const void *pData,5855UINT Size);58565857DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)5858void ( STDMETHODCALLTYPE *EndEvent )(5859ID3D12VideoProcessCommandList3 * This);58605861DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)5862void ( STDMETHODCALLTYPE *ProcessFrames )(5863ID3D12VideoProcessCommandList3 * This,5864_In_ ID3D12VideoProcessor *pVideoProcessor,5865_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5866UINT NumInputStreams,5867_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);58685869DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)5870void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5871ID3D12VideoProcessCommandList3 * This,5872UINT Count,5873_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5874_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);58755876DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)5877void ( STDMETHODCALLTYPE *ProcessFrames1 )(5878ID3D12VideoProcessCommandList3 * This,5879_In_ ID3D12VideoProcessor *pVideoProcessor,5880_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5881UINT NumInputStreams,5882_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);58835884DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)5885void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5886ID3D12VideoProcessCommandList3 * This,5887_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);58885889DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)5890void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5891ID3D12VideoProcessCommandList3 * This,5892_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5893_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5894SIZE_T InitializationParametersSizeInBytes);58955896DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)5897void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5898ID3D12VideoProcessCommandList3 * This,5899_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5900_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5901SIZE_T ExecutionParametersSizeInBytes);59025903DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList3, Barrier)5904void ( STDMETHODCALLTYPE *Barrier )(5905ID3D12VideoProcessCommandList3 * This,5906UINT32 NumBarrierGroups,5907_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);59085909END_INTERFACE5910} ID3D12VideoProcessCommandList3Vtbl;59115912interface ID3D12VideoProcessCommandList35913{5914CONST_VTBL struct ID3D12VideoProcessCommandList3Vtbl *lpVtbl;5915};5916591759185919#ifdef COBJMACROS592059215922#define ID3D12VideoProcessCommandList3_QueryInterface(This,riid,ppvObject) \5923( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )59245925#define ID3D12VideoProcessCommandList3_AddRef(This) \5926( (This)->lpVtbl -> AddRef(This) )59275928#define ID3D12VideoProcessCommandList3_Release(This) \5929( (This)->lpVtbl -> Release(This) )593059315932#define ID3D12VideoProcessCommandList3_GetPrivateData(This,guid,pDataSize,pData) \5933( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )59345935#define ID3D12VideoProcessCommandList3_SetPrivateData(This,guid,DataSize,pData) \5936( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )59375938#define ID3D12VideoProcessCommandList3_SetPrivateDataInterface(This,guid,pData) \5939( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )59405941#define ID3D12VideoProcessCommandList3_SetName(This,Name) \5942( (This)->lpVtbl -> SetName(This,Name) )594359445945#define ID3D12VideoProcessCommandList3_GetDevice(This,riid,ppvDevice) \5946( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )594759485949#define ID3D12VideoProcessCommandList3_GetType(This) \5950( (This)->lpVtbl -> GetType(This) )595159525953#define ID3D12VideoProcessCommandList3_Close(This) \5954( (This)->lpVtbl -> Close(This) )59555956#define ID3D12VideoProcessCommandList3_Reset(This,pAllocator) \5957( (This)->lpVtbl -> Reset(This,pAllocator) )59585959#define ID3D12VideoProcessCommandList3_ClearState(This) \5960( (This)->lpVtbl -> ClearState(This) )59615962#define ID3D12VideoProcessCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \5963( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )59645965#define ID3D12VideoProcessCommandList3_DiscardResource(This,pResource,pRegion) \5966( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )59675968#define ID3D12VideoProcessCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \5969( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )59705971#define ID3D12VideoProcessCommandList3_EndQuery(This,pQueryHeap,Type,Index) \5972( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )59735974#define ID3D12VideoProcessCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5975( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )59765977#define ID3D12VideoProcessCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5978( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )59795980#define ID3D12VideoProcessCommandList3_SetMarker(This,Metadata,pData,Size) \5981( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )59825983#define ID3D12VideoProcessCommandList3_BeginEvent(This,Metadata,pData,Size) \5984( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )59855986#define ID3D12VideoProcessCommandList3_EndEvent(This) \5987( (This)->lpVtbl -> EndEvent(This) )59885989#define ID3D12VideoProcessCommandList3_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5990( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )59915992#define ID3D12VideoProcessCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \5993( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )599459955996#define ID3D12VideoProcessCommandList3_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5997( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )599859996000#define ID3D12VideoProcessCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \6001( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )60026003#define ID3D12VideoProcessCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \6004( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )60056006#define ID3D12VideoProcessCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \6007( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )600860096010#define ID3D12VideoProcessCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \6011( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )60126013#endif /* COBJMACROS */601460156016#endif /* C style interface */60176018601960206021#endif /* __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ */602260236024#ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__6025#define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__60266027/* interface ID3D12VideoEncodeCommandList1 */6028/* [unique][local][object][uuid] */602960306031EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1;60326033#if defined(__cplusplus) && !defined(CINTERFACE)60346035MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc")6036ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList6037{6038public:6039virtual void STDMETHODCALLTYPE InitializeExtensionCommand(6040_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6041_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,6042SIZE_T InitializationParametersSizeInBytes) = 0;60436044virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(6045_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6046_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,6047SIZE_T ExecutionParametersSizeInBytes) = 0;60486049};605060516052#else /* C style interface */60536054typedef struct ID3D12VideoEncodeCommandList1Vtbl6055{6056BEGIN_INTERFACE60576058DECLSPEC_XFGVIRT(IUnknown, QueryInterface)6059HRESULT ( STDMETHODCALLTYPE *QueryInterface )(6060ID3D12VideoEncodeCommandList1 * This,6061REFIID riid,6062_COM_Outptr_ void **ppvObject);60636064DECLSPEC_XFGVIRT(IUnknown, AddRef)6065ULONG ( STDMETHODCALLTYPE *AddRef )(6066ID3D12VideoEncodeCommandList1 * This);60676068DECLSPEC_XFGVIRT(IUnknown, Release)6069ULONG ( STDMETHODCALLTYPE *Release )(6070ID3D12VideoEncodeCommandList1 * This);60716072DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)6073HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(6074ID3D12VideoEncodeCommandList1 * This,6075_In_ REFGUID guid,6076_Inout_ UINT *pDataSize,6077_Out_writes_bytes_opt_( *pDataSize ) void *pData);60786079DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)6080HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(6081ID3D12VideoEncodeCommandList1 * This,6082_In_ REFGUID guid,6083_In_ UINT DataSize,6084_In_reads_bytes_opt_( DataSize ) const void *pData);60856086DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)6087HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(6088ID3D12VideoEncodeCommandList1 * This,6089_In_ REFGUID guid,6090_In_opt_ const IUnknown *pData);60916092DECLSPEC_XFGVIRT(ID3D12Object, SetName)6093HRESULT ( STDMETHODCALLTYPE *SetName )(6094ID3D12VideoEncodeCommandList1 * This,6095_In_z_ LPCWSTR Name);60966097DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)6098HRESULT ( STDMETHODCALLTYPE *GetDevice )(6099ID3D12VideoEncodeCommandList1 * This,6100REFIID riid,6101_COM_Outptr_opt_ void **ppvDevice);61026103DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)6104D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(6105ID3D12VideoEncodeCommandList1 * This);61066107DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)6108HRESULT ( STDMETHODCALLTYPE *Close )(6109ID3D12VideoEncodeCommandList1 * This);61106111DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)6112HRESULT ( STDMETHODCALLTYPE *Reset )(6113ID3D12VideoEncodeCommandList1 * This,6114_In_ ID3D12CommandAllocator *pAllocator);61156116DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)6117void ( STDMETHODCALLTYPE *ClearState )(6118ID3D12VideoEncodeCommandList1 * This);61196120DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)6121void ( STDMETHODCALLTYPE *ResourceBarrier )(6122ID3D12VideoEncodeCommandList1 * This,6123_In_ UINT NumBarriers,6124_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);61256126DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)6127void ( STDMETHODCALLTYPE *DiscardResource )(6128ID3D12VideoEncodeCommandList1 * This,6129_In_ ID3D12Resource *pResource,6130_In_opt_ const D3D12_DISCARD_REGION *pRegion);61316132DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)6133void ( STDMETHODCALLTYPE *BeginQuery )(6134ID3D12VideoEncodeCommandList1 * This,6135_In_ ID3D12QueryHeap *pQueryHeap,6136_In_ D3D12_QUERY_TYPE Type,6137_In_ UINT Index);61386139DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)6140void ( STDMETHODCALLTYPE *EndQuery )(6141ID3D12VideoEncodeCommandList1 * This,6142_In_ ID3D12QueryHeap *pQueryHeap,6143_In_ D3D12_QUERY_TYPE Type,6144_In_ UINT Index);61456146DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)6147void ( STDMETHODCALLTYPE *ResolveQueryData )(6148ID3D12VideoEncodeCommandList1 * This,6149_In_ ID3D12QueryHeap *pQueryHeap,6150_In_ D3D12_QUERY_TYPE Type,6151_In_ UINT StartIndex,6152_In_ UINT NumQueries,6153_In_ ID3D12Resource *pDestinationBuffer,6154_In_ UINT64 AlignedDestinationBufferOffset);61556156DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)6157void ( STDMETHODCALLTYPE *SetPredication )(6158ID3D12VideoEncodeCommandList1 * This,6159_In_opt_ ID3D12Resource *pBuffer,6160_In_ UINT64 AlignedBufferOffset,6161_In_ D3D12_PREDICATION_OP Operation);61626163DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)6164void ( STDMETHODCALLTYPE *SetMarker )(6165ID3D12VideoEncodeCommandList1 * This,6166UINT Metadata,6167_In_reads_bytes_opt_(Size) const void *pData,6168UINT Size);61696170DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)6171void ( STDMETHODCALLTYPE *BeginEvent )(6172ID3D12VideoEncodeCommandList1 * This,6173UINT Metadata,6174_In_reads_bytes_opt_(Size) const void *pData,6175UINT Size);61766177DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)6178void ( STDMETHODCALLTYPE *EndEvent )(6179ID3D12VideoEncodeCommandList1 * This);61806181DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)6182void ( STDMETHODCALLTYPE *EstimateMotion )(6183ID3D12VideoEncodeCommandList1 * This,6184_In_ ID3D12VideoMotionEstimator *pMotionEstimator,6185_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,6186_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);61876188DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)6189void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(6190ID3D12VideoEncodeCommandList1 * This,6191const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,6192const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);61936194DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)6195void ( STDMETHODCALLTYPE *WriteBufferImmediate )(6196ID3D12VideoEncodeCommandList1 * This,6197UINT Count,6198_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,6199_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);62006201DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)6202void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(6203ID3D12VideoEncodeCommandList1 * This,6204_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);62056206DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)6207void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(6208ID3D12VideoEncodeCommandList1 * This,6209_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6210_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,6211SIZE_T InitializationParametersSizeInBytes);62126213DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)6214void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(6215ID3D12VideoEncodeCommandList1 * This,6216_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6217_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,6218SIZE_T ExecutionParametersSizeInBytes);62196220END_INTERFACE6221} ID3D12VideoEncodeCommandList1Vtbl;62226223interface ID3D12VideoEncodeCommandList16224{6225CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl;6226};6227622862296230#ifdef COBJMACROS623162326233#define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \6234( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )62356236#define ID3D12VideoEncodeCommandList1_AddRef(This) \6237( (This)->lpVtbl -> AddRef(This) )62386239#define ID3D12VideoEncodeCommandList1_Release(This) \6240( (This)->lpVtbl -> Release(This) )624162426243#define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \6244( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )62456246#define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \6247( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )62486249#define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \6250( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )62516252#define ID3D12VideoEncodeCommandList1_SetName(This,Name) \6253( (This)->lpVtbl -> SetName(This,Name) )625462556256#define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \6257( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )625862596260#define ID3D12VideoEncodeCommandList1_GetType(This) \6261( (This)->lpVtbl -> GetType(This) )626262636264#define ID3D12VideoEncodeCommandList1_Close(This) \6265( (This)->lpVtbl -> Close(This) )62666267#define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \6268( (This)->lpVtbl -> Reset(This,pAllocator) )62696270#define ID3D12VideoEncodeCommandList1_ClearState(This) \6271( (This)->lpVtbl -> ClearState(This) )62726273#define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \6274( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )62756276#define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \6277( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )62786279#define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \6280( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )62816282#define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \6283( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )62846285#define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \6286( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )62876288#define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \6289( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )62906291#define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \6292( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )62936294#define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \6295( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )62966297#define ID3D12VideoEncodeCommandList1_EndEvent(This) \6298( (This)->lpVtbl -> EndEvent(This) )62996300#define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \6301( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )63026303#define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \6304( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )63056306#define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \6307( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )63086309#define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \6310( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )631163126313#define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \6314( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )63156316#define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \6317( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )63186319#endif /* COBJMACROS */632063216322#endif /* C style interface */63236324632563266327#endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */632863296330/* interface __MIDL_itf_d3d12video_0000_0022 */6331/* [local] */63326333DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);6334DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);6335DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6336DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);6337DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);6338DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);6339DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6340DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6341DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);6342DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);6343DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);6344DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);6345DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4);6346DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29);6347DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f);6348DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb);6349DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee);6350DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33);6351DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c);6352DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c);6353DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01);6354DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d);6355DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);6356DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);6357DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);6358DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);6359DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);6360DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);6361DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);6362DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);6363DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_420, 0x725cb506, 0xc29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x4);6364DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd);6365DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_444, 0xd95161f9, 0xd44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97);6366DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d);6367DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac);6368DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21);6369DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65);6370typedef6371enum D3D12_VIDEO_ENCODER_AV1_PROFILE6372{6373D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0,6374D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1,6375D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 26376} D3D12_VIDEO_ENCODER_AV1_PROFILE;63776378typedef6379enum D3D12_VIDEO_ENCODER_AV1_LEVELS6380{6381D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0,6382D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1,6383D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2,6384D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3,6385D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4,6386D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5,6387D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6,6388D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7,6389D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8,6390D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9,6391D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10,6392D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11,6393D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12,6394D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13,6395D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14,6396D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15,6397D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16,6398D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17,6399D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18,6400D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19,6401D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20,6402D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21,6403D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22,6404D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 236405} D3D12_VIDEO_ENCODER_AV1_LEVELS;64066407typedef6408enum D3D12_VIDEO_ENCODER_AV1_TIER6409{6410D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0,6411D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 16412} D3D12_VIDEO_ENCODER_AV1_TIER;64136414typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS6415{6416D3D12_VIDEO_ENCODER_AV1_LEVELS Level;6417D3D12_VIDEO_ENCODER_AV1_TIER Tier;6418} D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS;64196420typedef6421enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS6422{6423D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0,6424D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1,6425D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2,6426D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4,6427D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8,6428D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10,6429D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20,6430D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40,6431D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80,6432D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100,6433D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200,6434D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400,6435D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800,6436D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000,6437D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000,6438D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000,6439D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000,6440D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000,6441D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000,6442D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000,6443D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000,6444D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000,6445D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000,6446D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000,6447D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000,6448D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000,6449D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x20000006450} D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS;64516452DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS)6453typedef6454enum D3D12_VIDEO_ENCODER_AV1_TX_MODE6455{6456D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0,6457D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1,6458D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 26459} D3D12_VIDEO_ENCODER_AV1_TX_MODE;64606461typedef6462enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS6463{6464D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0,6465D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 ) ,6466D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST ) ,6467D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT )6468} D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS;64696470DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS)6471typedef6472enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS6473{6474D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0,6475D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1,6476D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2,6477D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3,6478D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 46479} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS;64806481typedef6482enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS6483{6484D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0,6485D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP ) ,6486D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH ) ,6487D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP ) ,6488D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR ) ,6489D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE )6490} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS;64916492DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS)6493typedef6494enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE6495{6496D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0,6497D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1,6498D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2,6499D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3,6500D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 46501} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE;65026503typedef6504enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE6505{6506D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0,6507D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1,6508D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2,6509D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3,6510D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4,6511D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5,6512D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6,6513D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7,6514D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 86515} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE;65166517typedef6518enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS6519{6520D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0,6521D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED ) ,6522D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q ) ,6523D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V ) ,6524D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H ) ,6525D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U ) ,6526D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V ) ,6527D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME ) ,6528D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP ) ,6529D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV )6530} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS;65316532DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS)6533typedef6534enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE6535{6536D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0,6537D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1,6538D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2,6539D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 36540} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE;65416542typedef6543enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE6544{6545D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0,6546D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1,6547D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2,6548D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3,6549D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 46550} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE;65516552typedef6553enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS6554{6555D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0,6556D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1,6557D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2,6558D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4,6559D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x86560} D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS;65616562DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS)6563typedef6564enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION6565{6566D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0,6567D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1,6568D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2,6569D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 36570} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION;65716572typedef6573enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS6574{6575D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0,6576D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY ) ,6577D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION ) ,6578D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM ) ,6579D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE )6580} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS;65816582DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS)6583typedef6584enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS6585{6586D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0,6587D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1,6588D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2,6589D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4,6590D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8,6591D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10,6592D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20,6593D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40,6594D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80,6595D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x1006596} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS;65976598DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS)6599typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT6600{6601D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags;6602D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags;6603D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters;6604D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[ 3 ][ 3 ];6605D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes;6606D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[ 4 ];6607D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize;6608D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags;6609UINT MaxTemporalLayers;6610UINT MaxSpatialLayers;6611} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT;66126613typedef6614enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE6615{6616D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0,6617D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1,6618D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2,6619D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 36620} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE;66216622typedef6623enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS6624{6625D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0,6626D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME ) ,6627D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME ) ,6628D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME ) ,6629D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME )6630} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS;66316632DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS)6633typedef6634enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE6635{6636D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0,6637D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 16638} D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE;66396640typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT6641{6642D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode;6643UINT MaxUniqueReferencesPerFrame;6644D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes;6645D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags;6646} D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT;66476648typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION6649{6650D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags;6651UINT OrderHintBitsMinus1;6652} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION;66536654typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE6655{6656UINT IntraDistance;6657UINT InterFramePeriod;6658} D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE;66596660typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO6661{6662D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType;6663INT TransformationMatrix[ 8 ];6664BOOL InvalidAffineSet;6665} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO;66666667typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR6668{6669UINT ReconstructedPictureResourceIndex;6670UINT TemporalLayerIndexPlus1;6671UINT SpatialLayerIndexPlus1;6672D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;6673D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo;6674UINT OrderHint;6675UINT PictureIndex;6676} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR;66776678typedef6679enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS6680{6681D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0,6682D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1,6683D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2,6684D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4,6685D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8,6686D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10,6687D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20,6688D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40,6689D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80,6690D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100,6691D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200,6692D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400,6693D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800,6694D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000,6695D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000,6696D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x40006697} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS;66986699DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS)6700typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG6701{6702D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[ 3 ];6703D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[ 3 ];6704} D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG;67056706typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA6707{6708UINT64 EnabledFeatures;6709INT64 FeatureValue[ 8 ];6710} D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA;67116712typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG6713{6714UINT64 UpdateMap;6715UINT64 TemporalUpdate;6716UINT64 UpdateData;6717UINT64 NumSegments;6718D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[ 8 ];6719} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG;67206721typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP6722{6723UINT SegmentsMapByteSize;6724UINT8 *pSegmentsMap;6725} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP;67266727typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG6728{6729UINT64 LoopFilterLevel[ 2 ];6730UINT64 LoopFilterLevelU;6731UINT64 LoopFilterLevelV;6732UINT64 LoopFilterSharpnessLevel;6733UINT64 LoopFilterDeltaEnabled;6734UINT64 UpdateRefDelta;6735INT64 RefDeltas[ 8 ];6736UINT64 UpdateModeDelta;6737INT64 ModeDeltas[ 2 ];6738} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG;67396740typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG6741{6742UINT64 DeltaLFPresent;6743UINT64 DeltaLFMulti;6744UINT64 DeltaLFRes;6745} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG;67466747typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG6748{6749UINT64 BaseQIndex;6750INT64 YDCDeltaQ;6751INT64 UDCDeltaQ;6752INT64 UACDeltaQ;6753INT64 VDCDeltaQ;6754INT64 VACDeltaQ;6755UINT64 UsingQMatrix;6756UINT64 QMY;6757UINT64 QMU;6758UINT64 QMV;6759} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG;67606761typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG6762{6763UINT64 DeltaQPresent;6764UINT64 DeltaQRes;6765} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG;67666767typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG6768{6769UINT64 CdefBits;6770UINT64 CdefDampingMinus3;6771UINT64 CdefYPriStrength[ 8 ];6772UINT64 CdefUVPriStrength[ 8 ];6773UINT64 CdefYSecStrength[ 8 ];6774UINT64 CdefUVSecStrength[ 8 ];6775} D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG;67766777typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA6778{6779D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags;6780D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;6781D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType;6782D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter;6783D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig;6784D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode;6785UINT SuperResDenominator;6786UINT OrderHint;6787UINT PictureIndex;6788UINT TemporalLayerIndexPlus1;6789UINT SpatialLayerIndexPlus1;6790D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[ 8 ];6791UINT ReferenceIndices[ 7 ];6792UINT PrimaryRefFrame;6793UINT RefreshFrameFlags;6794D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;6795D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;6796D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;6797D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;6798D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;6799UINT QPMapValuesCount;6800_Field_size_full_(QPMapValuesCount) INT16 *pRateControlQPMap;6801D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation;6802D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap;6803} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA;68046805typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES6806{6807UINT64 RowCount;6808UINT64 ColCount;6809UINT64 RowHeights[ 64 ];6810UINT64 ColWidths[ 64 ];6811UINT64 ContextUpdateTileId;6812} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES;68136814typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES6815{6816UINT64 CompoundPredictionType;6817D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;6818D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;6819D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;6820D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;6821D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;6822D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig;6823UINT64 PrimaryRefFrame;6824UINT64 ReferenceIndices[ 7 ];6825} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES;68266827typedef6828enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE6829{6830D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0,6831D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1,6832D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2,6833D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3,6834D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 46835} D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE;68366837typedef6838enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS6839{6840D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0,6841D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1,6842D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2,6843D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4,6844D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8,6845D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10,6846D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20,6847D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40,6848D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80,6849D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_SPATIAL_ADAPTIVE_QP = 0x1006850} D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS;68516852DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS)6853typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP6854{6855UINT ConstantQP_FullIntracodedFrame;6856UINT ConstantQP_InterPredictedFrame_PrevRefOnly;6857UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;6858} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP;68596860typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP16861{6862UINT ConstantQP_FullIntracodedFrame;6863UINT ConstantQP_InterPredictedFrame_PrevRefOnly;6864UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;6865UINT QualityVsSpeed;6866} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1;68676868typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR6869{6870UINT InitialQP;6871UINT MinQP;6872UINT MaxQP;6873UINT64 MaxFrameBitSize;6874UINT64 TargetBitRate;6875UINT64 VBVCapacity;6876UINT64 InitialVBVFullness;6877} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR;68786879typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR16880{6881UINT InitialQP;6882UINT MinQP;6883UINT MaxQP;6884UINT64 MaxFrameBitSize;6885UINT64 TargetBitRate;6886UINT64 VBVCapacity;6887UINT64 InitialVBVFullness;6888UINT QualityVsSpeed;6889} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1;68906891typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR6892{6893UINT InitialQP;6894UINT MinQP;6895UINT MaxQP;6896UINT64 MaxFrameBitSize;6897UINT64 TargetAvgBitRate;6898UINT64 PeakBitRate;6899UINT64 VBVCapacity;6900UINT64 InitialVBVFullness;6901} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR;69026903typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR16904{6905UINT InitialQP;6906UINT MinQP;6907UINT MaxQP;6908UINT64 MaxFrameBitSize;6909UINT64 TargetAvgBitRate;6910UINT64 PeakBitRate;6911UINT64 VBVCapacity;6912UINT64 InitialVBVFullness;6913UINT QualityVsSpeed;6914} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1;69156916typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR6917{6918UINT InitialQP;6919UINT MinQP;6920UINT MaxQP;6921UINT64 MaxFrameBitSize;6922UINT64 TargetAvgBitRate;6923UINT64 PeakBitRate;6924UINT ConstantQualityTarget;6925} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR;69266927typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR16928{6929UINT InitialQP;6930UINT MinQP;6931UINT MaxQP;6932UINT64 MaxFrameBitSize;6933UINT64 TargetAvgBitRate;6934UINT64 PeakBitRate;6935UINT ConstantQualityTarget;6936UINT64 VBVCapacity;6937UINT64 InitialVBVFullness;6938UINT QualityVsSpeed;6939} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1;69406941typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP6942{6943UINT QualityVsSpeed;6944} D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP;69456946typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS6947{6948UINT DataSize;6949union6950{6951const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP *pConfiguration_CQP;6952const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR *pConfiguration_CBR;6953const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR *pConfiguration_VBR;6954const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR *pConfiguration_QVBR;6955const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 *pConfiguration_CQP1;6956const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 *pConfiguration_CBR1;6957const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 *pConfiguration_VBR1;6958const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 *pConfiguration_QVBR1;6959const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP *pConfiguration_AbsoluteQPMap;6960} ;6961} D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS;69626963typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL6964{6965D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode;6966D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags;6967D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams;6968DXGI_RATIONAL TargetFrameRate;6969} D3D12_VIDEO_ENCODER_RATE_CONTROL;69706971typedef6972enum D3D12_VIDEO_ENCODER_CODEC6973{6974D3D12_VIDEO_ENCODER_CODEC_H264 = 0,6975D3D12_VIDEO_ENCODER_CODEC_HEVC = 1,6976D3D12_VIDEO_ENCODER_CODEC_AV1 = 26977} D3D12_VIDEO_ENCODER_CODEC;69786979typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC6980{6981UINT NodeIndex;6982D3D12_VIDEO_ENCODER_CODEC Codec;6983BOOL IsSupported;6984} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC;69856986typedef6987enum D3D12_VIDEO_ENCODER_PROFILE_H2646988{6989D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0,6990D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1,6991D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 26992} D3D12_VIDEO_ENCODER_PROFILE_H264;69936994typedef6995enum D3D12_VIDEO_ENCODER_PROFILE_HEVC6996{6997D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0,6998D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1,6999D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12 = 2,7000D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_422 = 3,7001D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_422 = 4,7002D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN_444 = 5,7003D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_444 = 6,7004D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_444 = 7,7005D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN16_444 = 87006} D3D12_VIDEO_ENCODER_PROFILE_HEVC;70077008typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC7009{7010UINT DataSize;7011union7012{7013D3D12_VIDEO_ENCODER_PROFILE_H264 *pH264Profile;7014D3D12_VIDEO_ENCODER_PROFILE_HEVC *pHEVCProfile;7015D3D12_VIDEO_ENCODER_AV1_PROFILE *pAV1Profile;7016} ;7017} D3D12_VIDEO_ENCODER_PROFILE_DESC;70187019typedef7020enum D3D12_VIDEO_ENCODER_LEVELS_H2647021{7022D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0,7023D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1,7024D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2,7025D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3,7026D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4,7027D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5,7028D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6,7029D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7,7030D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8,7031D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9,7032D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10,7033D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11,7034D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12,7035D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13,7036D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14,7037D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15,7038D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16,7039D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17,7040D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18,7041D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 197042} D3D12_VIDEO_ENCODER_LEVELS_H264;70437044typedef7045enum D3D12_VIDEO_ENCODER_TIER_HEVC7046{7047D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0,7048D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 17049} D3D12_VIDEO_ENCODER_TIER_HEVC;70507051typedef7052enum D3D12_VIDEO_ENCODER_LEVELS_HEVC7053{7054D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0,7055D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1,7056D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2,7057D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3,7058D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4,7059D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5,7060D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6,7061D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7,7062D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8,7063D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9,7064D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10,7065D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11,7066D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 127067} D3D12_VIDEO_ENCODER_LEVELS_HEVC;70687069typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC7070{7071D3D12_VIDEO_ENCODER_LEVELS_HEVC Level;7072D3D12_VIDEO_ENCODER_TIER_HEVC Tier;7073} D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC;70747075typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING7076{7077UINT DataSize;7078union7079{7080D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting;7081D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting;7082D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS *pAV1LevelSetting;7083} ;7084} D3D12_VIDEO_ENCODER_LEVEL_SETTING;70857086typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL7087{7088UINT NodeIndex;7089D3D12_VIDEO_ENCODER_CODEC Codec;7090D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7091BOOL IsSupported;7092D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel;7093D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel;7094} D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL;70957096typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC7097{7098UINT Width;7099UINT Height;7100} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC;71017102typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC7103{7104UINT WidthRatio;7105UINT HeightRatio;7106} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC;71077108typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT7109{7110UINT NodeIndex;7111D3D12_VIDEO_ENCODER_CODEC Codec;7112UINT ResolutionRatiosCount;7113} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT;71147115typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION7116{7117UINT NodeIndex;7118D3D12_VIDEO_ENCODER_CODEC Codec;7119UINT ResolutionRatiosCount;7120BOOL IsSupported;7121D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported;7122D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported;7123UINT ResolutionWidthMultipleRequirement;7124UINT ResolutionHeightMultipleRequirement;7125_Field_size_full_(ResolutionRatiosCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC *pResolutionRatios;7126} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION;71277128typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT7129{7130UINT NodeIndex;7131D3D12_VIDEO_ENCODER_CODEC Codec;7132D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7133DXGI_FORMAT Format;7134BOOL IsSupported;7135} D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT;71367137typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE7138{7139UINT NodeIndex;7140D3D12_VIDEO_ENCODER_CODEC Codec;7141D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode;7142BOOL IsSupported;7143} D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE;71447145typedef7146enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE7147{7148D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0,7149D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 17150} D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE;71517152typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE7153{7154UINT NodeIndex;7155D3D12_VIDEO_ENCODER_CODEC Codec;7156D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7157D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7158D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode;7159BOOL IsSupported;7160} D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE;71617162typedef7163enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE7164{7165D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0,7166D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1,7167D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2,7168D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3,7169D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4,7170D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5,7171D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6,7172D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_AUTO = 77173} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;71747175typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE7176{7177UINT NodeIndex;7178D3D12_VIDEO_ENCODER_CODEC Codec;7179D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7180D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7181D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;7182BOOL IsSupported;7183} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;71847185typedef7186enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS7187{7188D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0,7189D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1,7190D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2,7191D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4,7192D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8,7193D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10,7194D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20,7195D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40,7196D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x807197} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS;71987199DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS)7200typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT7201{7202BOOL Use128SuperBlocks;7203D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration;7204D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags;7205UINT MinTileRows;7206UINT MaxTileRows;7207UINT MinTileCols;7208UINT MaxTileCols;7209UINT MinTileWidth;7210UINT MaxTileWidth;7211UINT MinTileArea;7212UINT MaxTileArea;7213UINT TileSizeBytesMinus1;7214} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;72157216typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT7217{7218UINT DataSize;7219union7220{7221D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT *pAV1Support;7222} ;7223} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;72247225typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG7226{7227UINT NodeIndex;7228D3D12_VIDEO_ENCODER_CODEC Codec;7229D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7230D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7231D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;7232D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution;7233D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport;7234BOOL IsSupported;7235} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG;72367237typedef7238enum D3D12_VIDEO_ENCODER_HEAP_FLAGS7239{7240D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0,7241D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS = 0x1,7242D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_SINGLE_BUFFER = 0x2,7243D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_DIRTY_REGIONS = 0x4,7244D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_RATE_CONTROL_FRAME_ANALYSIS = 0x87245} D3D12_VIDEO_ENCODER_HEAP_FLAGS;72467247DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS)7248typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC7249{7250UINT NodeMask;7251D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags;7252D3D12_VIDEO_ENCODER_CODEC EncodeCodec;7253D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;7254D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel;7255UINT ResolutionsListCount;7256_Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7257} D3D12_VIDEO_ENCODER_HEAP_DESC;72587259typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE7260{7261D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc;7262BOOL IsSupported;7263UINT64 MemoryPoolL0Size;7264UINT64 MemoryPoolL1Size;7265} D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE;72667267typedef7268enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS7269{7270D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0,7271D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1,7272D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,7273D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4,7274D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8,7275D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10,7276D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20,7277D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40,7278D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x807279} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS;72807281DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS)7282typedef7283enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES7284{7285D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0,7286D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1,7287D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2,7288D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3,7289D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4,7290D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5,7291D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 67292} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES;72937294typedef7295enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS7296{7297D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0,7298D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED ) ,7299D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_1_DISABLE_ALL_SLICE_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES ) ,7300D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS ) ,7301D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_3_USE_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING ) ,7302D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_4_DISABLE_CHROMA_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES ) ,7303D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES ) ,7304D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING )7305} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS;73067307DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS)7308typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H2647309{7310D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags;7311D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes;7312} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264;73137314typedef7315enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS7316{7317D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0,7318D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1,7319D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,7320D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4,7321D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8,7322D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10,7323D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20,7324D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40,7325D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80,7326D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100,7327D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x200,7328D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_SUPPORT = 0x400,7329D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_REQUIRED = 0x800,7330D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_SUPPORT = 0x1000,7331D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_REQUIRED = 0x2000,7332D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_SUPPORT = 0x4000,7333D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_REQUIRED = 0x8000,7334D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_SUPPORT = 0x10000,7335D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_REQUIRED = 0x20000,7336D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_SUPPORT = 0x40000,7337D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_REQUIRED = 0x80000,7338D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_SUPPORT = 0x100000,7339D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_REQUIRED = 0x200000,7340D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_SUPPORT = 0x400000,7341D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_REQUIRED = 0x800000,7342D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_SUPPORT = 0x1000000,7343D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_REQUIRED = 0x2000000,7344D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_SUPPORT = 0x4000000,7345D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_REQUIRED = 0x8000000,7346D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_SUPPORT = 0x10000000,7347D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_REQUIRED = 0x20000000,7348D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_SUPPORT = 0x40000000,7349D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_REQUIRED = 0x800000007350} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS;73517352DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS)7353typedef7354enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE7355{7356D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0,7357D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1,7358D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2,7359D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 37360} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE;73617362typedef7363enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE7364{7365D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0,7366D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1,7367D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2,7368D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 37369} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE;73707371typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC7372{7373D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags;7374D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;7375D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;7376D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;7377D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;7378UCHAR max_transform_hierarchy_depth_inter;7379UCHAR max_transform_hierarchy_depth_intra;7380} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC;73817382typedef7383enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS17384{7385D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_NONE = 0,7386D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_SUPPORT = 0x1,7387D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_REQUIRED = 0x27388} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1;73897390DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1)7391typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC17392{7393D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags;7394D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;7395D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;7396D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;7397D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;7398UCHAR max_transform_hierarchy_depth_inter;7399UCHAR max_transform_hierarchy_depth_intra;7400UINT allowed_diff_cu_chroma_qp_offset_depth_values;7401UINT allowed_log2_sao_offset_scale_luma_values;7402UINT allowed_log2_sao_offset_scale_chroma_values;7403UINT allowed_log2_max_transform_skip_block_size_minus2_values;7404UINT allowed_chroma_qp_offset_list_len_minus1_values;7405UINT allowed_cb_qp_offset_list_values[ 6 ];7406UINT allowed_cr_qp_offset_list_values[ 6 ];7407D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 SupportFlags1;7408} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1;74097410typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT7411{7412UINT DataSize;7413union7414{7415D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 *pH264Support;7416D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC *pHEVCSupport;7417D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 *pHEVCSupport1;7418D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT *pAV1Support;7419} ;7420} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;74217422typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT7423{7424UINT NodeIndex;7425D3D12_VIDEO_ENCODER_CODEC Codec;7426D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7427BOOL IsSupported;7428D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits;7429} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;74307431typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H2647432{7433UINT MaxL0ReferencesForP;7434UINT MaxL0ReferencesForB;7435UINT MaxL1ReferencesForB;7436UINT MaxLongTermReferences;7437UINT MaxDPBCapacity;7438} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264;74397440typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC7441{7442UINT MaxL0ReferencesForP;7443UINT MaxL0ReferencesForB;7444UINT MaxL1ReferencesForB;7445UINT MaxLongTermReferences;7446UINT MaxDPBCapacity;7447} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC;74487449typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT7450{7451UINT DataSize;7452union7453{7454D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 *pH264Support;7455D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC *pHEVCSupport;7456D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT *pAV1Support;7457} ;7458} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;74597460typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT7461{7462UINT NodeIndex;7463D3D12_VIDEO_ENCODER_CODEC Codec;7464D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7465BOOL IsSupported;7466D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport;7467} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;74687469typedef7470enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS7471{7472D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0,7473D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1,7474D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2,7475D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4,7476D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8,7477D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10,7478D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20,7479D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40,7480D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80,7481D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100,7482D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200,7483D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400,7484D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800,7485D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000,7486D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000,7487D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000,7488D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000,7489D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_QP_MAP_METADATA_AVAILABLE = 0x10000,7490D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_SATD_MAP_METADATA_AVAILABLE = 0x20000,7491D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_RC_BIT_ALLOCATION_MAP_METADATA_AVAILABLE = 0x40000,7492D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS_AVAILABLE = 0x80000,7493D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_SINGLE_BUFFER_AVAILABLE = 0x100000,7494D3D12_VIDEO_ENCODER_SUPPORT_FLAG_FRAME_PSNR_METADATA_AVAILABLE = 0x200000,7495D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGIONS_PSNR_METADATA_AVAILABLE = 0x400000,7496D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_SPATIAL_ADAPTIVE_QP_AVAILABLE = 0x8000007497} D3D12_VIDEO_ENCODER_SUPPORT_FLAGS;74987499DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS)7500typedef7501enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS7502{7503D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0,7504D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1,7505D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2,7506D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4,7507D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x87508} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS;75097510DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS)7511typedef7512enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES7513{7514D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0,7515D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1,7516D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 27517} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES;75187519typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H2647520{7521D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags;7522D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig;7523D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig;7524} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264;75257526typedef7527enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS7528{7529D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0,7530D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1,7531D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2,7532D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4,7533D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8,7534D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10,7535D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20,7536D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40,7537D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_ROTATION = 0x80,7538D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT = 0x100,7539D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_IMPLICIT_RDPCM = 0x200,7540D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXPLICIT_RDPCM = 0x400,7541D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING = 0x800,7542D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_INTRA_SMOOTHING_DISABLED = 0x1000,7543D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_HIGH_PRECISION_OFFSETS = 0x2000,7544D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION = 0x4000,7545D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT = 0x8000,7546D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_SEPARATE_COLOUR_PLANE = 0x100007547} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS;75487549DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS)7550typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC7551{7552D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags;7553D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;7554D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;7555D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;7556D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;7557UCHAR max_transform_hierarchy_depth_inter;7558UCHAR max_transform_hierarchy_depth_intra;7559} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC;75607561typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION7562{7563UINT DataSize;7564union7565{7566D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 *pH264Config;7567D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC *pHEVCConfig;7568D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION *pAV1Config;7569} ;7570} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION;75717572typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH7573{7574D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode;7575UINT IntraRefreshDuration;7576} D3D12_VIDEO_ENCODER_INTRA_REFRESH;75777578typedef7579enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE7580{7581D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0,7582D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1,7583D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2,7584D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3,7585D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 47586} D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE;75877588typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS7589{7590UINT MaxSubregionsNumber;7591UINT MaxIntraRefreshFrameDuration;7592UINT SubregionBlockPixelsSize;7593UINT QPMapRegionPixelsSize;7594} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS;75957596typedef7597enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS7598{7599D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0,7600D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1,7601D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8,7602D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10,7603D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20,7604D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40,7605D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80,7606D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100,7607D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200,7608D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800,7609D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000,7610D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000,7611D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000,7612D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000,7613D3D12_VIDEO_ENCODER_VALIDATION_FLAG_FRAME_ANALYSIS_NOT_SUPPORTED = 0x100007614} D3D12_VIDEO_ENCODER_VALIDATION_FLAGS;76157616DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS)7617typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H2647618{7619UINT GOPLength;7620UINT PPicturePeriod;7621UCHAR pic_order_cnt_type;7622UCHAR log2_max_frame_num_minus4;7623UCHAR log2_max_pic_order_cnt_lsb_minus4;7624} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264;76257626typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC7627{7628UINT GOPLength;7629UINT PPicturePeriod;7630UCHAR log2_max_pic_order_cnt_lsb_minus4;7631} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC;76327633typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE7634{7635UINT DataSize;7636union7637{7638D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 *pH264GroupOfPictures;7639D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC *pHEVCGroupOfPictures;7640D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE *pAV1SequenceStructure;7641} ;7642} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE;76437644typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT7645{7646UINT NodeIndex;7647D3D12_VIDEO_ENCODER_CODEC Codec;7648DXGI_FORMAT InputFormat;7649D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7650D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;7651D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;7652D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;7653D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;7654UINT ResolutionsListCount;7655const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7656UINT MaxReferenceFramesInDPB;7657D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;7658D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;7659D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;7660D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;7661_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;7662} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT;76637664typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES7665{7666union7667{7668UINT MaxBytesPerSlice;7669UINT NumberOfCodingUnitsPerSlice;7670UINT NumberOfRowsPerSlice;7671UINT NumberOfSlicesPerFrame;7672} ;7673} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES;76747675typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA7676{7677UINT DataSize;7678union7679{7680const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_H264;7681const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_HEVC;7682const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES *pTilesPartition_AV1;7683} ;7684} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA;76857686typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT17687{7688UINT NodeIndex;7689D3D12_VIDEO_ENCODER_CODEC Codec;7690DXGI_FORMAT InputFormat;7691D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7692D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;7693D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;7694D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;7695D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;7696UINT ResolutionsListCount;7697const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7698UINT MaxReferenceFramesInDPB;7699D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;7700D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;7701D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;7702D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;7703_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;7704D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;7705UINT MaxQualityVsSpeed;7706} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1;77077708typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS7709{7710UINT NodeIndex;7711D3D12_VIDEO_ENCODER_CODEC Codec;7712D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7713DXGI_FORMAT InputFormat;7714D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;7715BOOL IsSupported;7716UINT CompressedBitstreamBufferAccessAlignment;7717UINT EncoderMetadataBufferAccessAlignment;7718UINT MaxEncoderOutputMetadataBufferSize;7719} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS;77207721typedef7722enum D3D12_VIDEO_ENCODER_FLAGS7723{7724D3D12_VIDEO_ENCODER_FLAG_NONE = 07725} D3D12_VIDEO_ENCODER_FLAGS;77267727DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS)7728typedef struct D3D12_VIDEO_ENCODER_DESC7729{7730UINT NodeMask;7731D3D12_VIDEO_ENCODER_FLAGS Flags;7732D3D12_VIDEO_ENCODER_CODEC EncodeCodec;7733D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;7734DXGI_FORMAT InputFormat;7735D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7736D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision;7737} D3D12_VIDEO_ENCODER_DESC;7738773977407741extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_c_ifspec;7742extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_s_ifspec;77437744#ifndef __ID3D12VideoEncoder_INTERFACE_DEFINED__7745#define __ID3D12VideoEncoder_INTERFACE_DEFINED__77467747/* interface ID3D12VideoEncoder */7748/* [unique][local][object][uuid] */774977507751EXTERN_C const IID IID_ID3D12VideoEncoder;77527753#if defined(__cplusplus) && !defined(CINTERFACE)77547755MIDL_INTERFACE("2E0D212D-8DF9-44A6-A770-BB289B182737")7756ID3D12VideoEncoder : public ID3D12Pageable7757{7758public:7759virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;77607761virtual D3D12_VIDEO_ENCODER_FLAGS STDMETHODCALLTYPE GetEncoderFlags( void) = 0;77627763virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;77647765virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(7766_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;77677768virtual HRESULT STDMETHODCALLTYPE GetCodecConfiguration(7769_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig) = 0;77707771virtual DXGI_FORMAT STDMETHODCALLTYPE GetInputFormat( void) = 0;77727773virtual D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE STDMETHODCALLTYPE GetMaxMotionEstimationPrecision( void) = 0;77747775};777677777778#else /* C style interface */77797780typedef struct ID3D12VideoEncoderVtbl7781{7782BEGIN_INTERFACE77837784DECLSPEC_XFGVIRT(IUnknown, QueryInterface)7785HRESULT ( STDMETHODCALLTYPE *QueryInterface )(7786ID3D12VideoEncoder * This,7787REFIID riid,7788_COM_Outptr_ void **ppvObject);77897790DECLSPEC_XFGVIRT(IUnknown, AddRef)7791ULONG ( STDMETHODCALLTYPE *AddRef )(7792ID3D12VideoEncoder * This);77937794DECLSPEC_XFGVIRT(IUnknown, Release)7795ULONG ( STDMETHODCALLTYPE *Release )(7796ID3D12VideoEncoder * This);77977798DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)7799HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(7800ID3D12VideoEncoder * This,7801_In_ REFGUID guid,7802_Inout_ UINT *pDataSize,7803_Out_writes_bytes_opt_( *pDataSize ) void *pData);78047805DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)7806HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(7807ID3D12VideoEncoder * This,7808_In_ REFGUID guid,7809_In_ UINT DataSize,7810_In_reads_bytes_opt_( DataSize ) const void *pData);78117812DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)7813HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(7814ID3D12VideoEncoder * This,7815_In_ REFGUID guid,7816_In_opt_ const IUnknown *pData);78177818DECLSPEC_XFGVIRT(ID3D12Object, SetName)7819HRESULT ( STDMETHODCALLTYPE *SetName )(7820ID3D12VideoEncoder * This,7821_In_z_ LPCWSTR Name);78227823DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)7824HRESULT ( STDMETHODCALLTYPE *GetDevice )(7825ID3D12VideoEncoder * This,7826REFIID riid,7827_COM_Outptr_opt_ void **ppvDevice);78287829DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetNodeMask)7830UINT ( STDMETHODCALLTYPE *GetNodeMask )(7831ID3D12VideoEncoder * This);78327833DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetEncoderFlags)7834D3D12_VIDEO_ENCODER_FLAGS ( STDMETHODCALLTYPE *GetEncoderFlags )(7835ID3D12VideoEncoder * This);78367837DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodec)7838D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(7839ID3D12VideoEncoder * This);78407841DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecProfile)7842HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(7843ID3D12VideoEncoder * This,7844_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);78457846DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecConfiguration)7847HRESULT ( STDMETHODCALLTYPE *GetCodecConfiguration )(7848ID3D12VideoEncoder * This,7849_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig);78507851DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetInputFormat)7852DXGI_FORMAT ( STDMETHODCALLTYPE *GetInputFormat )(7853ID3D12VideoEncoder * This);78547855DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetMaxMotionEstimationPrecision)7856D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE ( STDMETHODCALLTYPE *GetMaxMotionEstimationPrecision )(7857ID3D12VideoEncoder * This);78587859END_INTERFACE7860} ID3D12VideoEncoderVtbl;78617862interface ID3D12VideoEncoder7863{7864CONST_VTBL struct ID3D12VideoEncoderVtbl *lpVtbl;7865};7866786778687869#ifdef COBJMACROS787078717872#define ID3D12VideoEncoder_QueryInterface(This,riid,ppvObject) \7873( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )78747875#define ID3D12VideoEncoder_AddRef(This) \7876( (This)->lpVtbl -> AddRef(This) )78777878#define ID3D12VideoEncoder_Release(This) \7879( (This)->lpVtbl -> Release(This) )788078817882#define ID3D12VideoEncoder_GetPrivateData(This,guid,pDataSize,pData) \7883( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )78847885#define ID3D12VideoEncoder_SetPrivateData(This,guid,DataSize,pData) \7886( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )78877888#define ID3D12VideoEncoder_SetPrivateDataInterface(This,guid,pData) \7889( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )78907891#define ID3D12VideoEncoder_SetName(This,Name) \7892( (This)->lpVtbl -> SetName(This,Name) )789378947895#define ID3D12VideoEncoder_GetDevice(This,riid,ppvDevice) \7896( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )7897789878997900#define ID3D12VideoEncoder_GetNodeMask(This) \7901( (This)->lpVtbl -> GetNodeMask(This) )79027903#define ID3D12VideoEncoder_GetEncoderFlags(This) \7904( (This)->lpVtbl -> GetEncoderFlags(This) )79057906#define ID3D12VideoEncoder_GetCodec(This) \7907( (This)->lpVtbl -> GetCodec(This) )79087909#define ID3D12VideoEncoder_GetCodecProfile(This,dstProfile) \7910( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )79117912#define ID3D12VideoEncoder_GetCodecConfiguration(This,dstCodecConfig) \7913( (This)->lpVtbl -> GetCodecConfiguration(This,dstCodecConfig) )79147915#define ID3D12VideoEncoder_GetInputFormat(This) \7916( (This)->lpVtbl -> GetInputFormat(This) )79177918#define ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(This) \7919( (This)->lpVtbl -> GetMaxMotionEstimationPrecision(This) )79207921#endif /* COBJMACROS */792279237924#endif /* C style interface */79257926792779287929#endif /* __ID3D12VideoEncoder_INTERFACE_DEFINED__ */793079317932#ifndef __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__7933#define __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__79347935/* interface ID3D12VideoEncoderHeap */7936/* [unique][local][object][uuid] */793779387939EXTERN_C const IID IID_ID3D12VideoEncoderHeap;79407941#if defined(__cplusplus) && !defined(CINTERFACE)79427943MIDL_INTERFACE("22B35D96-876A-44C0-B25E-FB8C9C7F1C4A")7944ID3D12VideoEncoderHeap : public ID3D12Pageable7945{7946public:7947virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;79487949virtual D3D12_VIDEO_ENCODER_HEAP_FLAGS STDMETHODCALLTYPE GetEncoderHeapFlags( void) = 0;79507951virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;79527953virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(7954_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;79557956virtual HRESULT STDMETHODCALLTYPE GetCodecLevel(7957_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel) = 0;79587959virtual UINT STDMETHODCALLTYPE GetResolutionListCount( void) = 0;79607961virtual HRESULT STDMETHODCALLTYPE GetResolutionList(7962const UINT ResolutionsListCount,7963_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList) = 0;79647965};796679677968#else /* C style interface */79697970typedef struct ID3D12VideoEncoderHeapVtbl7971{7972BEGIN_INTERFACE79737974DECLSPEC_XFGVIRT(IUnknown, QueryInterface)7975HRESULT ( STDMETHODCALLTYPE *QueryInterface )(7976ID3D12VideoEncoderHeap * This,7977REFIID riid,7978_COM_Outptr_ void **ppvObject);79797980DECLSPEC_XFGVIRT(IUnknown, AddRef)7981ULONG ( STDMETHODCALLTYPE *AddRef )(7982ID3D12VideoEncoderHeap * This);79837984DECLSPEC_XFGVIRT(IUnknown, Release)7985ULONG ( STDMETHODCALLTYPE *Release )(7986ID3D12VideoEncoderHeap * This);79877988DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)7989HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(7990ID3D12VideoEncoderHeap * This,7991_In_ REFGUID guid,7992_Inout_ UINT *pDataSize,7993_Out_writes_bytes_opt_( *pDataSize ) void *pData);79947995DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)7996HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(7997ID3D12VideoEncoderHeap * This,7998_In_ REFGUID guid,7999_In_ UINT DataSize,8000_In_reads_bytes_opt_( DataSize ) const void *pData);80018002DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)8003HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(8004ID3D12VideoEncoderHeap * This,8005_In_ REFGUID guid,8006_In_opt_ const IUnknown *pData);80078008DECLSPEC_XFGVIRT(ID3D12Object, SetName)8009HRESULT ( STDMETHODCALLTYPE *SetName )(8010ID3D12VideoEncoderHeap * This,8011_In_z_ LPCWSTR Name);80128013DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)8014HRESULT ( STDMETHODCALLTYPE *GetDevice )(8015ID3D12VideoEncoderHeap * This,8016REFIID riid,8017_COM_Outptr_opt_ void **ppvDevice);80188019DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask)8020UINT ( STDMETHODCALLTYPE *GetNodeMask )(8021ID3D12VideoEncoderHeap * This);80228023DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags)8024D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )(8025ID3D12VideoEncoderHeap * This);80268027DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec)8028D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(8029ID3D12VideoEncoderHeap * This);80308031DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile)8032HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(8033ID3D12VideoEncoderHeap * This,8034_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);80358036DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel)8037HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )(8038ID3D12VideoEncoderHeap * This,8039_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel);80408041DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount)8042UINT ( STDMETHODCALLTYPE *GetResolutionListCount )(8043ID3D12VideoEncoderHeap * This);80448045DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList)8046HRESULT ( STDMETHODCALLTYPE *GetResolutionList )(8047ID3D12VideoEncoderHeap * This,8048const UINT ResolutionsListCount,8049_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList);80508051END_INTERFACE8052} ID3D12VideoEncoderHeapVtbl;80538054interface ID3D12VideoEncoderHeap8055{8056CONST_VTBL struct ID3D12VideoEncoderHeapVtbl *lpVtbl;8057};8058805980608061#ifdef COBJMACROS806280638064#define ID3D12VideoEncoderHeap_QueryInterface(This,riid,ppvObject) \8065( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )80668067#define ID3D12VideoEncoderHeap_AddRef(This) \8068( (This)->lpVtbl -> AddRef(This) )80698070#define ID3D12VideoEncoderHeap_Release(This) \8071( (This)->lpVtbl -> Release(This) )807280738074#define ID3D12VideoEncoderHeap_GetPrivateData(This,guid,pDataSize,pData) \8075( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )80768077#define ID3D12VideoEncoderHeap_SetPrivateData(This,guid,DataSize,pData) \8078( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )80798080#define ID3D12VideoEncoderHeap_SetPrivateDataInterface(This,guid,pData) \8081( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )80828083#define ID3D12VideoEncoderHeap_SetName(This,Name) \8084( (This)->lpVtbl -> SetName(This,Name) )808580868087#define ID3D12VideoEncoderHeap_GetDevice(This,riid,ppvDevice) \8088( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )8089809080918092#define ID3D12VideoEncoderHeap_GetNodeMask(This) \8093( (This)->lpVtbl -> GetNodeMask(This) )80948095#define ID3D12VideoEncoderHeap_GetEncoderHeapFlags(This) \8096( (This)->lpVtbl -> GetEncoderHeapFlags(This) )80978098#define ID3D12VideoEncoderHeap_GetCodec(This) \8099( (This)->lpVtbl -> GetCodec(This) )81008101#define ID3D12VideoEncoderHeap_GetCodecProfile(This,dstProfile) \8102( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )81038104#define ID3D12VideoEncoderHeap_GetCodecLevel(This,dstLevel) \8105( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) )81068107#define ID3D12VideoEncoderHeap_GetResolutionListCount(This) \8108( (This)->lpVtbl -> GetResolutionListCount(This) )81098110#define ID3D12VideoEncoderHeap_GetResolutionList(This,ResolutionsListCount,pResolutionList) \8111( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) )81128113#endif /* COBJMACROS */811481158116#endif /* C style interface */81178118811981208121#endif /* __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ */812281238124#ifndef __ID3D12VideoDevice3_INTERFACE_DEFINED__8125#define __ID3D12VideoDevice3_INTERFACE_DEFINED__81268127/* interface ID3D12VideoDevice3 */8128/* [unique][local][object][uuid] */812981308131EXTERN_C const IID IID_ID3D12VideoDevice3;81328133#if defined(__cplusplus) && !defined(CINTERFACE)81348135MIDL_INTERFACE("4243ADB4-3A32-4666-973C-0CCC5625DC44")8136ID3D12VideoDevice3 : public ID3D12VideoDevice28137{8138public:8139virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoder(8140_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,8141_In_ REFIID riid,8142_COM_Outptr_ void **ppVideoEncoder) = 0;81438144virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap(8145_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,8146_In_ REFIID riid,8147_COM_Outptr_ void **ppVideoEncoderHeap) = 0;81488149};815081518152#else /* C style interface */81538154typedef struct ID3D12VideoDevice3Vtbl8155{8156BEGIN_INTERFACE81578158DECLSPEC_XFGVIRT(IUnknown, QueryInterface)8159HRESULT ( STDMETHODCALLTYPE *QueryInterface )(8160ID3D12VideoDevice3 * This,8161REFIID riid,8162_COM_Outptr_ void **ppvObject);81638164DECLSPEC_XFGVIRT(IUnknown, AddRef)8165ULONG ( STDMETHODCALLTYPE *AddRef )(8166ID3D12VideoDevice3 * This);81678168DECLSPEC_XFGVIRT(IUnknown, Release)8169ULONG ( STDMETHODCALLTYPE *Release )(8170ID3D12VideoDevice3 * This);81718172DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)8173HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(8174ID3D12VideoDevice3 * This,8175D3D12_FEATURE_VIDEO FeatureVideo,8176_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,8177UINT FeatureSupportDataSize);81788179DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)8180HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(8181ID3D12VideoDevice3 * This,8182_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,8183_In_ REFIID riid,8184_COM_Outptr_ void **ppVideoDecoder);81858186DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)8187HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(8188ID3D12VideoDevice3 * This,8189_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,8190_In_ REFIID riid,8191_COM_Outptr_ void **ppVideoDecoderHeap);81928193DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)8194HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(8195ID3D12VideoDevice3 * This,8196UINT NodeMask,8197_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,8198UINT NumInputStreamDescs,8199_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,8200_In_ REFIID riid,8201_COM_Outptr_ void **ppVideoProcessor);82028203DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)8204HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(8205ID3D12VideoDevice3 * This,8206_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,8207_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8208_In_ REFIID riid,8209_COM_Outptr_ void **ppVideoMotionEstimator);82108211DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)8212HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(8213ID3D12VideoDevice3 * This,8214_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,8215_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8216_In_ REFIID riid,8217_COM_Outptr_ void **ppVideoMotionVectorHeap);82188219DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)8220HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(8221ID3D12VideoDevice3 * This,8222_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,8223_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8224_In_ REFIID riid,8225_COM_Outptr_ void **ppVideoDecoder);82268227DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)8228HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(8229ID3D12VideoDevice3 * This,8230_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,8231_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8232_In_ REFIID riid,8233_COM_Outptr_ void **ppVideoDecoderHeap);82348235DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)8236HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(8237ID3D12VideoDevice3 * This,8238UINT NodeMask,8239_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,8240UINT NumInputStreamDescs,8241_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,8242_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8243_In_ REFIID riid,8244_COM_Outptr_ void **ppVideoProcessor);82458246DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)8247HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(8248ID3D12VideoDevice3 * This,8249_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,8250_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,8251SIZE_T CreationParametersDataSizeInBytes,8252_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8253_In_ REFIID riid,8254_COM_Outptr_ void **ppVideoExtensionCommand);82558256DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)8257HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(8258ID3D12VideoDevice3 * This,8259_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8260_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,8261SIZE_T ExecutionParametersSizeInBytes,8262_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,8263SIZE_T OutputDataSizeInBytes);82648265DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder)8266HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )(8267ID3D12VideoDevice3 * This,8268_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,8269_In_ REFIID riid,8270_COM_Outptr_ void **ppVideoEncoder);82718272DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap)8273HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )(8274ID3D12VideoDevice3 * This,8275_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,8276_In_ REFIID riid,8277_COM_Outptr_ void **ppVideoEncoderHeap);82788279END_INTERFACE8280} ID3D12VideoDevice3Vtbl;82818282interface ID3D12VideoDevice38283{8284CONST_VTBL struct ID3D12VideoDevice3Vtbl *lpVtbl;8285};8286828782888289#ifdef COBJMACROS829082918292#define ID3D12VideoDevice3_QueryInterface(This,riid,ppvObject) \8293( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )82948295#define ID3D12VideoDevice3_AddRef(This) \8296( (This)->lpVtbl -> AddRef(This) )82978298#define ID3D12VideoDevice3_Release(This) \8299( (This)->lpVtbl -> Release(This) )830083018302#define ID3D12VideoDevice3_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \8303( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )83048305#define ID3D12VideoDevice3_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \8306( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )83078308#define ID3D12VideoDevice3_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \8309( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )83108311#define ID3D12VideoDevice3_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \8312( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )831383148315#define ID3D12VideoDevice3_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \8316( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )83178318#define ID3D12VideoDevice3_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \8319( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )832083218322#define ID3D12VideoDevice3_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \8323( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )83248325#define ID3D12VideoDevice3_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \8326( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )83278328#define ID3D12VideoDevice3_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \8329( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )83308331#define ID3D12VideoDevice3_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \8332( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )83338334#define ID3D12VideoDevice3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \8335( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )833683378338#define ID3D12VideoDevice3_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \8339( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) )83408341#define ID3D12VideoDevice3_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \8342( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) )83438344#endif /* COBJMACROS */834583468347#endif /* C style interface */83488349835083518352#endif /* __ID3D12VideoDevice3_INTERFACE_DEFINED__ */835383548355/* interface __MIDL_itf_d3d12video_0000_0025 */8356/* [local] */83578358typedef8359enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H2648360{8361D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0,8362D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1,8363D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2,8364D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 38365} D3D12_VIDEO_ENCODER_FRAME_TYPE_H264;83668367typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H2648368{8369UINT ReconstructedPictureResourceIndex;8370BOOL IsLongTermReference;8371UINT LongTermPictureIdx;8372UINT PictureOrderCountNumber;8373UINT FrameDecodingOrderNumber;8374UINT TemporalLayerIndex;8375} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264;83768377typedef8378enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS8379{8380D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0,8381D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1,8382D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x28383} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS;83848385DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS)8386typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION8387{8388UCHAR memory_management_control_operation;8389UINT difference_of_pic_nums_minus1;8390UINT long_term_pic_num;8391UINT long_term_frame_idx;8392UINT max_long_term_frame_idx_plus1;8393} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION;83948395typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION8396{8397UCHAR modification_of_pic_nums_idc;8398UINT abs_diff_pic_num_minus1;8399UINT long_term_pic_num;8400} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION;84018402typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H2648403{8404D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags;8405D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType;8406UINT pic_parameter_set_id;8407UINT idr_pic_id;8408UINT PictureOrderCountNumber;8409UINT FrameDecodingOrderNumber;8410UINT TemporalLayerIndex;8411UINT List0ReferenceFramesCount;8412_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;8413UINT List1ReferenceFramesCount;8414_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;8415UINT ReferenceFramesReconPictureDescriptorsCount;8416_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 *pReferenceFramesReconPictureDescriptors;8417UCHAR adaptive_ref_pic_marking_mode_flag;8418UINT RefPicMarkingOperationsCommandsCount;8419_Field_size_full_(RefPicMarkingOperationsCommandsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION *pRefPicMarkingOperationsCommands;8420UINT List0RefPicModificationsCount;8421_Field_size_full_(List0RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList0RefPicModifications;8422UINT List1RefPicModificationsCount;8423_Field_size_full_(List1RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList1RefPicModifications;8424UINT QPMapValuesCount;8425_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;8426} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264;84278428typedef8429enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC8430{8431D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0,8432D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1,8433D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2,8434D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 38435} D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC;84368437typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC8438{8439UINT ReconstructedPictureResourceIndex;8440BOOL IsRefUsedByCurrentPic;8441BOOL IsLongTermReference;8442UINT PictureOrderCountNumber;8443UINT TemporalLayerIndex;8444} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC;84458446typedef8447enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS8448{8449D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0,8450D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1,8451D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2,8452D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CROSS_COMPONENT_PREDICTION = 0x4,8453D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CHROMA_QP_OFFSET_LIST = 0x88454} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS;84558456DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS)8457typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC8458{8459D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags;8460D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType;8461UINT slice_pic_parameter_set_id;8462UINT PictureOrderCountNumber;8463UINT TemporalLayerIndex;8464UINT List0ReferenceFramesCount;8465_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;8466UINT List1ReferenceFramesCount;8467_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;8468UINT ReferenceFramesReconPictureDescriptorsCount;8469_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors;8470UINT List0RefPicModificationsCount;8471_Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications;8472UINT List1RefPicModificationsCount;8473_Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications;8474UINT QPMapValuesCount;8475_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;8476} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC;84778478typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC18479{8480D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags;8481D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType;8482UINT slice_pic_parameter_set_id;8483UINT PictureOrderCountNumber;8484UINT TemporalLayerIndex;8485UINT List0ReferenceFramesCount;8486_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;8487UINT List1ReferenceFramesCount;8488_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;8489UINT ReferenceFramesReconPictureDescriptorsCount;8490_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors;8491UINT List0RefPicModificationsCount;8492_Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications;8493UINT List1RefPicModificationsCount;8494_Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications;8495UINT QPMapValuesCount;8496_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;8497UCHAR diff_cu_chroma_qp_offset_depth;8498UCHAR log2_sao_offset_scale_luma;8499UCHAR log2_sao_offset_scale_chroma;8500UCHAR log2_max_transform_skip_block_size_minus2;8501UCHAR chroma_qp_offset_list_len_minus1;8502CHAR cb_qp_offset_list[ 6 ];8503CHAR cr_qp_offset_list[ 6 ];8504} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1;85058506typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA8507{8508UINT DataSize;8509union8510{8511D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData;8512D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC *pHEVCPicData;8513D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 *pHEVCPicData1;8514D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData;8515} ;8516} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA;85178518typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES8519{8520UINT NumTexture2Ds;8521_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;8522_Field_size_full_(NumTexture2Ds) UINT *pSubresources;8523} D3D12_VIDEO_ENCODE_REFERENCE_FRAMES;85248525typedef8526enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS8527{8528D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0,8529D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1,8530D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_QUANTIZATION_MATRIX_INPUT = 0x2,8531D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_DIRTY_REGIONS_INPUT = 0x4,8532D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_MOTION_VECTORS_INPUT = 0x88533} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS;85348535DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS)8536typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC8537{8538UINT IntraRefreshFrameIndex;8539D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;8540D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;8541D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;8542} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;85438544typedef8545enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS8546{8547D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0,8548D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1,8549D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2,8550D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4,8551D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8,8552D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x108553} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS;85548555DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS)8556typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC8557{8558D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags;8559D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig;8560D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;8561D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;8562D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode;8563D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;8564D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;8565} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;85668567typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS8568{8569D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc;8570D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc;8571ID3D12Resource *pInputFrame;8572UINT InputFrameSubresource;8573UINT CurrentFrameBitstreamMetadataSize;8574} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS;85758576typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM8577{8578ID3D12Resource *pBuffer;8579UINT64 FrameStartOffset;8580} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM;85818582typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE8583{8584ID3D12Resource *pReconstructedPicture;8585UINT ReconstructedPictureSubresource;8586} D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE;85878588typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA8589{8590UINT64 bSize;8591UINT64 bStartOffset;8592UINT64 bHeaderSize;8593} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA;85948595typedef8596enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS8597{8598D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0,8599D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1,8600D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2,8601D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4,8602D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8,8603D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x108604} D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS;86058606DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS)8607typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS8608{8609UINT64 AverageQP;8610UINT64 IntraCodingUnitsCount;8611UINT64 InterCodingUnitsCount;8612UINT64 SkipCodingUnitsCount;8613UINT64 AverageMotionEstimationXDirection;8614UINT64 AverageMotionEstimationYDirection;8615} D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS;86168617typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA8618{8619UINT64 EncodeErrorFlags;8620D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats;8621UINT64 EncodedBitstreamWrittenBytesCount;8622UINT64 WrittenSubregionsCount;8623} D3D12_VIDEO_ENCODER_OUTPUT_METADATA;86248625typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER8626{8627ID3D12Resource *pBuffer;8628UINT64 Offset;8629} D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER;86308631typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS8632{8633D3D12_VIDEO_ENCODER_CODEC EncoderCodec;8634D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile;8635DXGI_FORMAT EncoderInputFormat;8636D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution;8637D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata;8638} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS;86398640typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS8641{8642D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata;8643} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS;86448645typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS8646{8647D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream;8648D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture;8649D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata;8650} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS;8651865286538654extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_c_ifspec;8655extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_s_ifspec;86568657#ifndef __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__8658#define __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__86598660/* interface ID3D12VideoEncodeCommandList2 */8661/* [unique][local][object][uuid] */866286638664EXTERN_C const IID IID_ID3D12VideoEncodeCommandList2;86658666#if defined(__cplusplus) && !defined(CINTERFACE)86678668MIDL_INTERFACE("895491e2-e701-46a9-9a1f-8d3480ed867a")8669ID3D12VideoEncodeCommandList2 : public ID3D12VideoEncodeCommandList18670{8671public:8672virtual void STDMETHODCALLTYPE EncodeFrame(8673_In_ ID3D12VideoEncoder *pEncoder,8674_In_ ID3D12VideoEncoderHeap *pHeap,8675_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,8676_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments) = 0;86778678virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata(8679_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,8680_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments) = 0;86818682};868386848685#else /* C style interface */86868687typedef struct ID3D12VideoEncodeCommandList2Vtbl8688{8689BEGIN_INTERFACE86908691DECLSPEC_XFGVIRT(IUnknown, QueryInterface)8692HRESULT ( STDMETHODCALLTYPE *QueryInterface )(8693ID3D12VideoEncodeCommandList2 * This,8694REFIID riid,8695_COM_Outptr_ void **ppvObject);86968697DECLSPEC_XFGVIRT(IUnknown, AddRef)8698ULONG ( STDMETHODCALLTYPE *AddRef )(8699ID3D12VideoEncodeCommandList2 * This);87008701DECLSPEC_XFGVIRT(IUnknown, Release)8702ULONG ( STDMETHODCALLTYPE *Release )(8703ID3D12VideoEncodeCommandList2 * This);87048705DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)8706HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(8707ID3D12VideoEncodeCommandList2 * This,8708_In_ REFGUID guid,8709_Inout_ UINT *pDataSize,8710_Out_writes_bytes_opt_( *pDataSize ) void *pData);87118712DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)8713HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(8714ID3D12VideoEncodeCommandList2 * This,8715_In_ REFGUID guid,8716_In_ UINT DataSize,8717_In_reads_bytes_opt_( DataSize ) const void *pData);87188719DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)8720HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(8721ID3D12VideoEncodeCommandList2 * This,8722_In_ REFGUID guid,8723_In_opt_ const IUnknown *pData);87248725DECLSPEC_XFGVIRT(ID3D12Object, SetName)8726HRESULT ( STDMETHODCALLTYPE *SetName )(8727ID3D12VideoEncodeCommandList2 * This,8728_In_z_ LPCWSTR Name);87298730DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)8731HRESULT ( STDMETHODCALLTYPE *GetDevice )(8732ID3D12VideoEncodeCommandList2 * This,8733REFIID riid,8734_COM_Outptr_opt_ void **ppvDevice);87358736DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)8737D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(8738ID3D12VideoEncodeCommandList2 * This);87398740DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)8741HRESULT ( STDMETHODCALLTYPE *Close )(8742ID3D12VideoEncodeCommandList2 * This);87438744DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)8745HRESULT ( STDMETHODCALLTYPE *Reset )(8746ID3D12VideoEncodeCommandList2 * This,8747_In_ ID3D12CommandAllocator *pAllocator);87488749DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)8750void ( STDMETHODCALLTYPE *ClearState )(8751ID3D12VideoEncodeCommandList2 * This);87528753DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)8754void ( STDMETHODCALLTYPE *ResourceBarrier )(8755ID3D12VideoEncodeCommandList2 * This,8756_In_ UINT NumBarriers,8757_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);87588759DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)8760void ( STDMETHODCALLTYPE *DiscardResource )(8761ID3D12VideoEncodeCommandList2 * This,8762_In_ ID3D12Resource *pResource,8763_In_opt_ const D3D12_DISCARD_REGION *pRegion);87648765DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)8766void ( STDMETHODCALLTYPE *BeginQuery )(8767ID3D12VideoEncodeCommandList2 * This,8768_In_ ID3D12QueryHeap *pQueryHeap,8769_In_ D3D12_QUERY_TYPE Type,8770_In_ UINT Index);87718772DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)8773void ( STDMETHODCALLTYPE *EndQuery )(8774ID3D12VideoEncodeCommandList2 * This,8775_In_ ID3D12QueryHeap *pQueryHeap,8776_In_ D3D12_QUERY_TYPE Type,8777_In_ UINT Index);87788779DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)8780void ( STDMETHODCALLTYPE *ResolveQueryData )(8781ID3D12VideoEncodeCommandList2 * This,8782_In_ ID3D12QueryHeap *pQueryHeap,8783_In_ D3D12_QUERY_TYPE Type,8784_In_ UINT StartIndex,8785_In_ UINT NumQueries,8786_In_ ID3D12Resource *pDestinationBuffer,8787_In_ UINT64 AlignedDestinationBufferOffset);87888789DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)8790void ( STDMETHODCALLTYPE *SetPredication )(8791ID3D12VideoEncodeCommandList2 * This,8792_In_opt_ ID3D12Resource *pBuffer,8793_In_ UINT64 AlignedBufferOffset,8794_In_ D3D12_PREDICATION_OP Operation);87958796DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)8797void ( STDMETHODCALLTYPE *SetMarker )(8798ID3D12VideoEncodeCommandList2 * This,8799UINT Metadata,8800_In_reads_bytes_opt_(Size) const void *pData,8801UINT Size);88028803DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)8804void ( STDMETHODCALLTYPE *BeginEvent )(8805ID3D12VideoEncodeCommandList2 * This,8806UINT Metadata,8807_In_reads_bytes_opt_(Size) const void *pData,8808UINT Size);88098810DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)8811void ( STDMETHODCALLTYPE *EndEvent )(8812ID3D12VideoEncodeCommandList2 * This);88138814DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)8815void ( STDMETHODCALLTYPE *EstimateMotion )(8816ID3D12VideoEncodeCommandList2 * This,8817_In_ ID3D12VideoMotionEstimator *pMotionEstimator,8818_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,8819_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);88208821DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)8822void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(8823ID3D12VideoEncodeCommandList2 * This,8824const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,8825const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);88268827DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)8828void ( STDMETHODCALLTYPE *WriteBufferImmediate )(8829ID3D12VideoEncodeCommandList2 * This,8830UINT Count,8831_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,8832_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);88338834DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)8835void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(8836ID3D12VideoEncodeCommandList2 * This,8837_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);88388839DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)8840void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(8841ID3D12VideoEncodeCommandList2 * This,8842_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8843_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,8844SIZE_T InitializationParametersSizeInBytes);88458846DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)8847void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(8848ID3D12VideoEncodeCommandList2 * This,8849_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8850_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,8851SIZE_T ExecutionParametersSizeInBytes);88528853DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)8854void ( STDMETHODCALLTYPE *EncodeFrame )(8855ID3D12VideoEncodeCommandList2 * This,8856_In_ ID3D12VideoEncoder *pEncoder,8857_In_ ID3D12VideoEncoderHeap *pHeap,8858_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,8859_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);88608861DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)8862void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(8863ID3D12VideoEncodeCommandList2 * This,8864_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,8865_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);88668867END_INTERFACE8868} ID3D12VideoEncodeCommandList2Vtbl;88698870interface ID3D12VideoEncodeCommandList28871{8872CONST_VTBL struct ID3D12VideoEncodeCommandList2Vtbl *lpVtbl;8873};8874887588768877#ifdef COBJMACROS887888798880#define ID3D12VideoEncodeCommandList2_QueryInterface(This,riid,ppvObject) \8881( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )88828883#define ID3D12VideoEncodeCommandList2_AddRef(This) \8884( (This)->lpVtbl -> AddRef(This) )88858886#define ID3D12VideoEncodeCommandList2_Release(This) \8887( (This)->lpVtbl -> Release(This) )888888898890#define ID3D12VideoEncodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \8891( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )88928893#define ID3D12VideoEncodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \8894( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )88958896#define ID3D12VideoEncodeCommandList2_SetPrivateDataInterface(This,guid,pData) \8897( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )88988899#define ID3D12VideoEncodeCommandList2_SetName(This,Name) \8900( (This)->lpVtbl -> SetName(This,Name) )890189028903#define ID3D12VideoEncodeCommandList2_GetDevice(This,riid,ppvDevice) \8904( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )890589068907#define ID3D12VideoEncodeCommandList2_GetType(This) \8908( (This)->lpVtbl -> GetType(This) )890989108911#define ID3D12VideoEncodeCommandList2_Close(This) \8912( (This)->lpVtbl -> Close(This) )89138914#define ID3D12VideoEncodeCommandList2_Reset(This,pAllocator) \8915( (This)->lpVtbl -> Reset(This,pAllocator) )89168917#define ID3D12VideoEncodeCommandList2_ClearState(This) \8918( (This)->lpVtbl -> ClearState(This) )89198920#define ID3D12VideoEncodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \8921( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )89228923#define ID3D12VideoEncodeCommandList2_DiscardResource(This,pResource,pRegion) \8924( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )89258926#define ID3D12VideoEncodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \8927( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )89288929#define ID3D12VideoEncodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \8930( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )89318932#define ID3D12VideoEncodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \8933( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )89348935#define ID3D12VideoEncodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \8936( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )89378938#define ID3D12VideoEncodeCommandList2_SetMarker(This,Metadata,pData,Size) \8939( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )89408941#define ID3D12VideoEncodeCommandList2_BeginEvent(This,Metadata,pData,Size) \8942( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )89438944#define ID3D12VideoEncodeCommandList2_EndEvent(This) \8945( (This)->lpVtbl -> EndEvent(This) )89468947#define ID3D12VideoEncodeCommandList2_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \8948( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )89498950#define ID3D12VideoEncodeCommandList2_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \8951( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )89528953#define ID3D12VideoEncodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \8954( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )89558956#define ID3D12VideoEncodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \8957( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )895889598960#define ID3D12VideoEncodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \8961( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )89628963#define ID3D12VideoEncodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \8964( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )896589668967#define ID3D12VideoEncodeCommandList2_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \8968( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )89698970#define ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \8971( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )89728973#endif /* COBJMACROS */897489758976#endif /* C style interface */89778978897989808981#endif /* __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ */898289838984#ifndef __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__8985#define __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__89868987/* interface ID3D12VideoEncodeCommandList3 */8988/* [unique][local][object][uuid] */898989908991EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3;89928993#if defined(__cplusplus) && !defined(CINTERFACE)89948995MIDL_INTERFACE("7f027b22-1515-4e85-aa0d-026486580576")8996ID3D12VideoEncodeCommandList3 : public ID3D12VideoEncodeCommandList28997{8998public:8999virtual void STDMETHODCALLTYPE Barrier(9000UINT32 NumBarrierGroups,9001_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;90029003};900490059006#else /* C style interface */90079008typedef struct ID3D12VideoEncodeCommandList3Vtbl9009{9010BEGIN_INTERFACE90119012DECLSPEC_XFGVIRT(IUnknown, QueryInterface)9013HRESULT ( STDMETHODCALLTYPE *QueryInterface )(9014ID3D12VideoEncodeCommandList3 * This,9015REFIID riid,9016_COM_Outptr_ void **ppvObject);90179018DECLSPEC_XFGVIRT(IUnknown, AddRef)9019ULONG ( STDMETHODCALLTYPE *AddRef )(9020ID3D12VideoEncodeCommandList3 * This);90219022DECLSPEC_XFGVIRT(IUnknown, Release)9023ULONG ( STDMETHODCALLTYPE *Release )(9024ID3D12VideoEncodeCommandList3 * This);90259026DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)9027HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(9028ID3D12VideoEncodeCommandList3 * This,9029_In_ REFGUID guid,9030_Inout_ UINT *pDataSize,9031_Out_writes_bytes_opt_( *pDataSize ) void *pData);90329033DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)9034HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(9035ID3D12VideoEncodeCommandList3 * This,9036_In_ REFGUID guid,9037_In_ UINT DataSize,9038_In_reads_bytes_opt_( DataSize ) const void *pData);90399040DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)9041HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(9042ID3D12VideoEncodeCommandList3 * This,9043_In_ REFGUID guid,9044_In_opt_ const IUnknown *pData);90459046DECLSPEC_XFGVIRT(ID3D12Object, SetName)9047HRESULT ( STDMETHODCALLTYPE *SetName )(9048ID3D12VideoEncodeCommandList3 * This,9049_In_z_ LPCWSTR Name);90509051DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)9052HRESULT ( STDMETHODCALLTYPE *GetDevice )(9053ID3D12VideoEncodeCommandList3 * This,9054REFIID riid,9055_COM_Outptr_opt_ void **ppvDevice);90569057DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)9058D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(9059ID3D12VideoEncodeCommandList3 * This);90609061DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)9062HRESULT ( STDMETHODCALLTYPE *Close )(9063ID3D12VideoEncodeCommandList3 * This);90649065DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)9066HRESULT ( STDMETHODCALLTYPE *Reset )(9067ID3D12VideoEncodeCommandList3 * This,9068_In_ ID3D12CommandAllocator *pAllocator);90699070DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)9071void ( STDMETHODCALLTYPE *ClearState )(9072ID3D12VideoEncodeCommandList3 * This);90739074DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)9075void ( STDMETHODCALLTYPE *ResourceBarrier )(9076ID3D12VideoEncodeCommandList3 * This,9077_In_ UINT NumBarriers,9078_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);90799080DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)9081void ( STDMETHODCALLTYPE *DiscardResource )(9082ID3D12VideoEncodeCommandList3 * This,9083_In_ ID3D12Resource *pResource,9084_In_opt_ const D3D12_DISCARD_REGION *pRegion);90859086DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)9087void ( STDMETHODCALLTYPE *BeginQuery )(9088ID3D12VideoEncodeCommandList3 * This,9089_In_ ID3D12QueryHeap *pQueryHeap,9090_In_ D3D12_QUERY_TYPE Type,9091_In_ UINT Index);90929093DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)9094void ( STDMETHODCALLTYPE *EndQuery )(9095ID3D12VideoEncodeCommandList3 * This,9096_In_ ID3D12QueryHeap *pQueryHeap,9097_In_ D3D12_QUERY_TYPE Type,9098_In_ UINT Index);90999100DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)9101void ( STDMETHODCALLTYPE *ResolveQueryData )(9102ID3D12VideoEncodeCommandList3 * This,9103_In_ ID3D12QueryHeap *pQueryHeap,9104_In_ D3D12_QUERY_TYPE Type,9105_In_ UINT StartIndex,9106_In_ UINT NumQueries,9107_In_ ID3D12Resource *pDestinationBuffer,9108_In_ UINT64 AlignedDestinationBufferOffset);91099110DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)9111void ( STDMETHODCALLTYPE *SetPredication )(9112ID3D12VideoEncodeCommandList3 * This,9113_In_opt_ ID3D12Resource *pBuffer,9114_In_ UINT64 AlignedBufferOffset,9115_In_ D3D12_PREDICATION_OP Operation);91169117DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)9118void ( STDMETHODCALLTYPE *SetMarker )(9119ID3D12VideoEncodeCommandList3 * This,9120UINT Metadata,9121_In_reads_bytes_opt_(Size) const void *pData,9122UINT Size);91239124DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)9125void ( STDMETHODCALLTYPE *BeginEvent )(9126ID3D12VideoEncodeCommandList3 * This,9127UINT Metadata,9128_In_reads_bytes_opt_(Size) const void *pData,9129UINT Size);91309131DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)9132void ( STDMETHODCALLTYPE *EndEvent )(9133ID3D12VideoEncodeCommandList3 * This);91349135DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)9136void ( STDMETHODCALLTYPE *EstimateMotion )(9137ID3D12VideoEncodeCommandList3 * This,9138_In_ ID3D12VideoMotionEstimator *pMotionEstimator,9139_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,9140_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);91419142DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)9143void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(9144ID3D12VideoEncodeCommandList3 * This,9145const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,9146const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);91479148DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)9149void ( STDMETHODCALLTYPE *WriteBufferImmediate )(9150ID3D12VideoEncodeCommandList3 * This,9151UINT Count,9152_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,9153_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);91549155DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)9156void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(9157ID3D12VideoEncodeCommandList3 * This,9158_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);91599160DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)9161void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(9162ID3D12VideoEncodeCommandList3 * This,9163_In_ ID3D12VideoExtensionCommand *pExtensionCommand,9164_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,9165SIZE_T InitializationParametersSizeInBytes);91669167DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)9168void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(9169ID3D12VideoEncodeCommandList3 * This,9170_In_ ID3D12VideoExtensionCommand *pExtensionCommand,9171_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,9172SIZE_T ExecutionParametersSizeInBytes);91739174DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)9175void ( STDMETHODCALLTYPE *EncodeFrame )(9176ID3D12VideoEncodeCommandList3 * This,9177_In_ ID3D12VideoEncoder *pEncoder,9178_In_ ID3D12VideoEncoderHeap *pHeap,9179_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,9180_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);91819182DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)9183void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(9184ID3D12VideoEncodeCommandList3 * This,9185_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,9186_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);91879188DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier)9189void ( STDMETHODCALLTYPE *Barrier )(9190ID3D12VideoEncodeCommandList3 * This,9191UINT32 NumBarrierGroups,9192_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);91939194END_INTERFACE9195} ID3D12VideoEncodeCommandList3Vtbl;91969197interface ID3D12VideoEncodeCommandList39198{9199CONST_VTBL struct ID3D12VideoEncodeCommandList3Vtbl *lpVtbl;9200};9201920292039204#ifdef COBJMACROS920592069207#define ID3D12VideoEncodeCommandList3_QueryInterface(This,riid,ppvObject) \9208( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )92099210#define ID3D12VideoEncodeCommandList3_AddRef(This) \9211( (This)->lpVtbl -> AddRef(This) )92129213#define ID3D12VideoEncodeCommandList3_Release(This) \9214( (This)->lpVtbl -> Release(This) )921592169217#define ID3D12VideoEncodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \9218( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )92199220#define ID3D12VideoEncodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \9221( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )92229223#define ID3D12VideoEncodeCommandList3_SetPrivateDataInterface(This,guid,pData) \9224( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )92259226#define ID3D12VideoEncodeCommandList3_SetName(This,Name) \9227( (This)->lpVtbl -> SetName(This,Name) )922892299230#define ID3D12VideoEncodeCommandList3_GetDevice(This,riid,ppvDevice) \9231( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )923292339234#define ID3D12VideoEncodeCommandList3_GetType(This) \9235( (This)->lpVtbl -> GetType(This) )923692379238#define ID3D12VideoEncodeCommandList3_Close(This) \9239( (This)->lpVtbl -> Close(This) )92409241#define ID3D12VideoEncodeCommandList3_Reset(This,pAllocator) \9242( (This)->lpVtbl -> Reset(This,pAllocator) )92439244#define ID3D12VideoEncodeCommandList3_ClearState(This) \9245( (This)->lpVtbl -> ClearState(This) )92469247#define ID3D12VideoEncodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \9248( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )92499250#define ID3D12VideoEncodeCommandList3_DiscardResource(This,pResource,pRegion) \9251( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )92529253#define ID3D12VideoEncodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \9254( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )92559256#define ID3D12VideoEncodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \9257( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )92589259#define ID3D12VideoEncodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \9260( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )92619262#define ID3D12VideoEncodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \9263( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )92649265#define ID3D12VideoEncodeCommandList3_SetMarker(This,Metadata,pData,Size) \9266( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )92679268#define ID3D12VideoEncodeCommandList3_BeginEvent(This,Metadata,pData,Size) \9269( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )92709271#define ID3D12VideoEncodeCommandList3_EndEvent(This) \9272( (This)->lpVtbl -> EndEvent(This) )92739274#define ID3D12VideoEncodeCommandList3_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \9275( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )92769277#define ID3D12VideoEncodeCommandList3_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \9278( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )92799280#define ID3D12VideoEncodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \9281( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )92829283#define ID3D12VideoEncodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \9284( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )928592869287#define ID3D12VideoEncodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \9288( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )92899290#define ID3D12VideoEncodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \9291( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )929292939294#define ID3D12VideoEncodeCommandList3_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \9295( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )92969297#define ID3D12VideoEncodeCommandList3_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \9298( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )929993009301#define ID3D12VideoEncodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \9302( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )93039304#endif /* COBJMACROS */930593069307#endif /* C style interface */93089309931093119312#endif /* __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ */931393149315/* interface __MIDL_itf_d3d12video_0000_0027 */9316/* [local] */93179318typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC19319{9320UINT NodeMask;9321D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags;9322D3D12_VIDEO_ENCODER_CODEC EncodeCodec;9323D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;9324D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel;9325UINT ResolutionsListCount;9326_Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;9327UINT Pow2DownscaleFactor;9328} D3D12_VIDEO_ENCODER_HEAP_DESC1;9329933093319332extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec;9333extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec;93349335#ifndef __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__9336#define __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__93379338/* interface ID3D12VideoEncoderHeap1 */9339/* [unique][local][object][uuid] */934093419342EXTERN_C const IID IID_ID3D12VideoEncoderHeap1;93439344#if defined(__cplusplus) && !defined(CINTERFACE)93459346MIDL_INTERFACE("ea8f1968-4aa0-43a4-9d30-ba86ec84d4f9")9347ID3D12VideoEncoderHeap1 : public ID3D12VideoEncoderHeap9348{9349public:9350virtual UINT STDMETHODCALLTYPE GetPow2DownscaleFactor( void) = 0;93519352};935393549355#else /* C style interface */93569357typedef struct ID3D12VideoEncoderHeap1Vtbl9358{9359BEGIN_INTERFACE93609361DECLSPEC_XFGVIRT(IUnknown, QueryInterface)9362HRESULT ( STDMETHODCALLTYPE *QueryInterface )(9363ID3D12VideoEncoderHeap1 * This,9364REFIID riid,9365_COM_Outptr_ void **ppvObject);93669367DECLSPEC_XFGVIRT(IUnknown, AddRef)9368ULONG ( STDMETHODCALLTYPE *AddRef )(9369ID3D12VideoEncoderHeap1 * This);93709371DECLSPEC_XFGVIRT(IUnknown, Release)9372ULONG ( STDMETHODCALLTYPE *Release )(9373ID3D12VideoEncoderHeap1 * This);93749375DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)9376HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(9377ID3D12VideoEncoderHeap1 * This,9378_In_ REFGUID guid,9379_Inout_ UINT *pDataSize,9380_Out_writes_bytes_opt_( *pDataSize ) void *pData);93819382DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)9383HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(9384ID3D12VideoEncoderHeap1 * This,9385_In_ REFGUID guid,9386_In_ UINT DataSize,9387_In_reads_bytes_opt_( DataSize ) const void *pData);93889389DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)9390HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(9391ID3D12VideoEncoderHeap1 * This,9392_In_ REFGUID guid,9393_In_opt_ const IUnknown *pData);93949395DECLSPEC_XFGVIRT(ID3D12Object, SetName)9396HRESULT ( STDMETHODCALLTYPE *SetName )(9397ID3D12VideoEncoderHeap1 * This,9398_In_z_ LPCWSTR Name);93999400DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)9401HRESULT ( STDMETHODCALLTYPE *GetDevice )(9402ID3D12VideoEncoderHeap1 * This,9403REFIID riid,9404_COM_Outptr_opt_ void **ppvDevice);94059406DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask)9407UINT ( STDMETHODCALLTYPE *GetNodeMask )(9408ID3D12VideoEncoderHeap1 * This);94099410DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags)9411D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )(9412ID3D12VideoEncoderHeap1 * This);94139414DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec)9415D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(9416ID3D12VideoEncoderHeap1 * This);94179418DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile)9419HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(9420ID3D12VideoEncoderHeap1 * This,9421_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);94229423DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel)9424HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )(9425ID3D12VideoEncoderHeap1 * This,9426_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel);94279428DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount)9429UINT ( STDMETHODCALLTYPE *GetResolutionListCount )(9430ID3D12VideoEncoderHeap1 * This);94319432DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList)9433HRESULT ( STDMETHODCALLTYPE *GetResolutionList )(9434ID3D12VideoEncoderHeap1 * This,9435const UINT ResolutionsListCount,9436_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList);94379438DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap1, GetPow2DownscaleFactor)9439UINT ( STDMETHODCALLTYPE *GetPow2DownscaleFactor )(9440ID3D12VideoEncoderHeap1 * This);94419442END_INTERFACE9443} ID3D12VideoEncoderHeap1Vtbl;94449445interface ID3D12VideoEncoderHeap19446{9447CONST_VTBL struct ID3D12VideoEncoderHeap1Vtbl *lpVtbl;9448};9449945094519452#ifdef COBJMACROS945394549455#define ID3D12VideoEncoderHeap1_QueryInterface(This,riid,ppvObject) \9456( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )94579458#define ID3D12VideoEncoderHeap1_AddRef(This) \9459( (This)->lpVtbl -> AddRef(This) )94609461#define ID3D12VideoEncoderHeap1_Release(This) \9462( (This)->lpVtbl -> Release(This) )946394649465#define ID3D12VideoEncoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \9466( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )94679468#define ID3D12VideoEncoderHeap1_SetPrivateData(This,guid,DataSize,pData) \9469( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )94709471#define ID3D12VideoEncoderHeap1_SetPrivateDataInterface(This,guid,pData) \9472( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )94739474#define ID3D12VideoEncoderHeap1_SetName(This,Name) \9475( (This)->lpVtbl -> SetName(This,Name) )947694779478#define ID3D12VideoEncoderHeap1_GetDevice(This,riid,ppvDevice) \9479( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )9480948194829483#define ID3D12VideoEncoderHeap1_GetNodeMask(This) \9484( (This)->lpVtbl -> GetNodeMask(This) )94859486#define ID3D12VideoEncoderHeap1_GetEncoderHeapFlags(This) \9487( (This)->lpVtbl -> GetEncoderHeapFlags(This) )94889489#define ID3D12VideoEncoderHeap1_GetCodec(This) \9490( (This)->lpVtbl -> GetCodec(This) )94919492#define ID3D12VideoEncoderHeap1_GetCodecProfile(This,dstProfile) \9493( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )94949495#define ID3D12VideoEncoderHeap1_GetCodecLevel(This,dstLevel) \9496( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) )94979498#define ID3D12VideoEncoderHeap1_GetResolutionListCount(This) \9499( (This)->lpVtbl -> GetResolutionListCount(This) )95009501#define ID3D12VideoEncoderHeap1_GetResolutionList(This,ResolutionsListCount,pResolutionList) \9502( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) )950395049505#define ID3D12VideoEncoderHeap1_GetPow2DownscaleFactor(This) \9506( (This)->lpVtbl -> GetPow2DownscaleFactor(This) )95079508#endif /* COBJMACROS */950995109511#endif /* C style interface */95129513951495159516#endif /* __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__ */951795189519#ifndef __ID3D12VideoDevice4_INTERFACE_DEFINED__9520#define __ID3D12VideoDevice4_INTERFACE_DEFINED__95219522/* interface ID3D12VideoDevice4 */9523/* [unique][local][object][uuid] */952495259526EXTERN_C const IID IID_ID3D12VideoDevice4;95279528#if defined(__cplusplus) && !defined(CINTERFACE)95299530MIDL_INTERFACE("e59ad09e-f1ae-42bb-8983-9f6e5586c4eb")9531ID3D12VideoDevice4 : public ID3D12VideoDevice39532{9533public:9534virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap1(9535_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC1 *pDesc,9536_In_ REFIID riid,9537_COM_Outptr_ void **ppVideoEncoderHeap) = 0;95389539};954095419542#else /* C style interface */95439544typedef struct ID3D12VideoDevice4Vtbl9545{9546BEGIN_INTERFACE95479548DECLSPEC_XFGVIRT(IUnknown, QueryInterface)9549HRESULT ( STDMETHODCALLTYPE *QueryInterface )(9550ID3D12VideoDevice4 * This,9551REFIID riid,9552_COM_Outptr_ void **ppvObject);95539554DECLSPEC_XFGVIRT(IUnknown, AddRef)9555ULONG ( STDMETHODCALLTYPE *AddRef )(9556ID3D12VideoDevice4 * This);95579558DECLSPEC_XFGVIRT(IUnknown, Release)9559ULONG ( STDMETHODCALLTYPE *Release )(9560ID3D12VideoDevice4 * This);95619562DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)9563HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(9564ID3D12VideoDevice4 * This,9565D3D12_FEATURE_VIDEO FeatureVideo,9566_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,9567UINT FeatureSupportDataSize);95689569DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)9570HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(9571ID3D12VideoDevice4 * This,9572_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,9573_In_ REFIID riid,9574_COM_Outptr_ void **ppVideoDecoder);95759576DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)9577HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(9578ID3D12VideoDevice4 * This,9579_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,9580_In_ REFIID riid,9581_COM_Outptr_ void **ppVideoDecoderHeap);95829583DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)9584HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(9585ID3D12VideoDevice4 * This,9586UINT NodeMask,9587_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,9588UINT NumInputStreamDescs,9589_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,9590_In_ REFIID riid,9591_COM_Outptr_ void **ppVideoProcessor);95929593DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)9594HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(9595ID3D12VideoDevice4 * This,9596_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,9597_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9598_In_ REFIID riid,9599_COM_Outptr_ void **ppVideoMotionEstimator);96009601DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)9602HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(9603ID3D12VideoDevice4 * This,9604_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,9605_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9606_In_ REFIID riid,9607_COM_Outptr_ void **ppVideoMotionVectorHeap);96089609DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)9610HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(9611ID3D12VideoDevice4 * This,9612_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,9613_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9614_In_ REFIID riid,9615_COM_Outptr_ void **ppVideoDecoder);96169617DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)9618HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(9619ID3D12VideoDevice4 * This,9620_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,9621_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9622_In_ REFIID riid,9623_COM_Outptr_ void **ppVideoDecoderHeap);96249625DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)9626HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(9627ID3D12VideoDevice4 * This,9628UINT NodeMask,9629_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,9630UINT NumInputStreamDescs,9631_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,9632_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9633_In_ REFIID riid,9634_COM_Outptr_ void **ppVideoProcessor);96359636DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)9637HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(9638ID3D12VideoDevice4 * This,9639_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,9640_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,9641SIZE_T CreationParametersDataSizeInBytes,9642_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,9643_In_ REFIID riid,9644_COM_Outptr_ void **ppVideoExtensionCommand);96459646DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)9647HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(9648ID3D12VideoDevice4 * This,9649_In_ ID3D12VideoExtensionCommand *pExtensionCommand,9650_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,9651SIZE_T ExecutionParametersSizeInBytes,9652_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,9653SIZE_T OutputDataSizeInBytes);96549655DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder)9656HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )(9657ID3D12VideoDevice4 * This,9658_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,9659_In_ REFIID riid,9660_COM_Outptr_ void **ppVideoEncoder);96619662DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap)9663HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )(9664ID3D12VideoDevice4 * This,9665_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,9666_In_ REFIID riid,9667_COM_Outptr_ void **ppVideoEncoderHeap);96689669DECLSPEC_XFGVIRT(ID3D12VideoDevice4, CreateVideoEncoderHeap1)9670HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap1 )(9671ID3D12VideoDevice4 * This,9672_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC1 *pDesc,9673_In_ REFIID riid,9674_COM_Outptr_ void **ppVideoEncoderHeap);96759676END_INTERFACE9677} ID3D12VideoDevice4Vtbl;96789679interface ID3D12VideoDevice49680{9681CONST_VTBL struct ID3D12VideoDevice4Vtbl *lpVtbl;9682};9683968496859686#ifdef COBJMACROS968796889689#define ID3D12VideoDevice4_QueryInterface(This,riid,ppvObject) \9690( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )96919692#define ID3D12VideoDevice4_AddRef(This) \9693( (This)->lpVtbl -> AddRef(This) )96949695#define ID3D12VideoDevice4_Release(This) \9696( (This)->lpVtbl -> Release(This) )969796989699#define ID3D12VideoDevice4_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \9700( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )97019702#define ID3D12VideoDevice4_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \9703( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )97049705#define ID3D12VideoDevice4_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \9706( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )97079708#define ID3D12VideoDevice4_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \9709( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )971097119712#define ID3D12VideoDevice4_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \9713( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )97149715#define ID3D12VideoDevice4_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \9716( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )971797189719#define ID3D12VideoDevice4_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \9720( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )97219722#define ID3D12VideoDevice4_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \9723( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )97249725#define ID3D12VideoDevice4_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \9726( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )97279728#define ID3D12VideoDevice4_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \9729( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )97309731#define ID3D12VideoDevice4_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \9732( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )973397349735#define ID3D12VideoDevice4_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \9736( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) )97379738#define ID3D12VideoDevice4_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \9739( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) )974097419742#define ID3D12VideoDevice4_CreateVideoEncoderHeap1(This,pDesc,riid,ppVideoEncoderHeap) \9743( (This)->lpVtbl -> CreateVideoEncoderHeap1(This,pDesc,riid,ppVideoEncoderHeap) )97449745#endif /* COBJMACROS */974697479748#endif /* C style interface */97499750975197529753#endif /* __ID3D12VideoDevice4_INTERFACE_DEFINED__ */975497559756/* interface __MIDL_itf_d3d12video_0000_0029 */9757/* [local] */97589759typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE19760{9761D3D12_VIDEO_ENCODER_HEAP_DESC1 HeapDesc;9762BOOL IsSupported;9763UINT64 MemoryPoolL0Size;9764UINT64 MemoryPoolL1Size;9765} D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1;97669767typedef9768enum D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS9769{9770D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_NONE = 0,9771D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_QP_MAP = 0x1,9772D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SATD_MAP = 0x2,9773D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_RC_BIT_ALLOCATION_MAP = 0x4,9774D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_FRAME_PSNR = 0x8,9775D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SUBREGIONS_PSNR = 0x109776} D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS;97779778DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS )9779typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS19780{9781UINT NodeIndex;9782D3D12_VIDEO_ENCODER_CODEC Codec;9783D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;9784DXGI_FORMAT InputFormat;9785D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;9786BOOL IsSupported;9787UINT CompressedBitstreamBufferAccessAlignment;9788UINT EncoderMetadataBufferAccessAlignment;9789UINT MaxEncoderOutputMetadataBufferSize;9790D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata;9791D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;9792D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions;9793D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions;9794D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions;9795UINT EncoderOutputMetadataFramePSNRComponentsNumber;9796UINT EncoderOutputMetadataSubregionsPSNRComponentsNumber;9797UINT EncoderOutputMetadataSubregionsPSNRResolvedMetadataBufferSize;9798} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1;97999800typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT9801{9802float PSNRY;9803float PSNRU;9804float PSNRV;9805} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT;98069807typedef9808enum D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE9809{9810D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER = 0,9811D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE = 19812} D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE;98139814typedef9815enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE9816{9817D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_DIRTY = 0,9818D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_SKIP = 19819} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE;98209821typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO9822{9823D3D12_VIDEO_ENCODER_CODEC Codec;9824D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;9825D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;9826DXGI_FORMAT InputFormat;9827D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution;9828D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;9829D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;9830D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;9831} D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO;98329833typedef9834enum D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE9835{9836D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX = 0,9837D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS = 1,9838D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS = 29839} D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE;98409841typedef9842enum D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE9843{9844D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_FULL_SEARCH = 0,9845D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT = 1,9846D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT_LIMITED_DISTANCE = 29847} D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE;98489849typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT9850{9851UINT NodeIndex;9852D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo;9853D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9854BOOL IsSupported;9855UINT MapSourcePreferenceRanking;9856UINT BlockSize;9857} D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT;98589859typedef9860enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS9861{9862D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_NONE = 0,9863D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_REPEAT_FRAME = 0x1,9864D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS = 0x2,9865D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS_REQUIRE_FULL_ROW = 0x49866} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS;98679868DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS )9869typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS9870{9871UINT NodeIndex;9872D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo;9873D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9874D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType;9875D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags;9876UINT MapSourcePreferenceRanking;9877} D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS;98789879typedef9880enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION9881{9882D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL = 0,9883D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL = 1,9884D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL = 29885} D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION;98869887typedef9888enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS9889{9890D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_NONE = 0,9891D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_FULL_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL ) ,9892D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_HALF_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL ) ,9893D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_QUARTER_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL )9894} D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS;98959896DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS )9897typedef9898enum D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS9899{9900D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_NONE = 0,9901D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_SUPPORTED = 0x1,9902D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_MULTIPLE_HINTS = 0x2,9903D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_GPU_TEXTURE_MULTIPLE_REFERENCES = 0x49904} D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS;99059906DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS )9907typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH9908{9909UINT NodeIndex;9910D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo;9911D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode;9912D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9913BOOL BidirectionalRefFrameEnabled;9914D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags;9915UINT MaxMotionHints;9916UINT MinDeviation;9917UINT MaxDeviation;9918UINT MapSourcePreferenceRanking;9919D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport;9920} D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH;99219922typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT9923{9924UINT NodeIndex;9925D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo;9926D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType;9927BOOL IsSupported;9928UINT64 MaxResolvedBufferAllocationSize;9929} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT;99309931typedef struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION9932{9933BOOL Enabled;9934D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9935} D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION;99369937typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP9938{9939UINT MapSourcePreferenceRanking;9940} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP;99419942typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION9943{9944BOOL Enabled;9945D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9946D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType;9947} D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION;99489949typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS9950{9951D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags;9952UINT MapSourcePreferenceRanking;9953} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS;99549955typedef struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION9956{9957BOOL Enabled;9958D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;9959D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode;9960BOOL BidirectionalRefFrameEnabled;9961} D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION;99629963typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH9964{9965UINT MaxMotionHints;9966UINT MinDeviation;9967UINT MaxDeviation;9968UINT MapSourcePreferenceRanking;9969D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags;9970D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags;9971} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH;99729973typedef9974enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS9975{9976D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_NONE = 0,9977D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED = 0x1,9978D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED = 0x2,9979D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED = 0x4,9980D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_EXTERNAL_DPB_DOWNSCALING = 0x8,9981D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_1ST_PASS_SKIP = 0x10,9982D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_DOWNSCALE_FACTOR_CHANGE_KEY_FRAME = 0x20,9983D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_SUPPORTED = ( ( D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED ) | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED )9984} D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS;99859986DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS )9987typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS9988{9989UINT NodeIndex;9990D3D12_VIDEO_ENCODER_CODEC Codec;9991D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;9992D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;9993DXGI_FORMAT InputFormat;9994D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution;9995D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;9996D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;9997D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;9998D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap;9999D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions;10000D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch;10001UINT Pow2DownscaleFactor;10002D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags;10003} D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS;1000410005typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS10006{10007D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags;10008} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS;1000910010typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS110011{10012UINT MaxSubregionsNumber;10013UINT MaxIntraRefreshFrameDuration;10014UINT SubregionBlockPixelsSize;10015UINT QPMapRegionPixelsSize;10016D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap;10017D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions;10018D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch;10019D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS FrameAnalysis;10020} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1;1002110022typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION10023{10024BOOL Enabled;10025UINT Pow2DownscaleFactor;10026} D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION;1002710028typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT210029{10030UINT NodeIndex;10031D3D12_VIDEO_ENCODER_CODEC Codec;10032DXGI_FORMAT InputFormat;10033D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;10034D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;10035D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;10036D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;10037D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;10038UINT ResolutionsListCount;10039const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;10040UINT MaxReferenceFramesInDPB;10041D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;10042D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;10043D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;10044D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;10045_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 *pResolutionDependentSupport;10046D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;10047UINT MaxQualityVsSpeed;10048D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap;10049D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions;10050D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch;10051D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION FrameAnalysis;10052} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2;1005310054typedef struct D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO10055{10056BOOL FullFrameIdentical;10057D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType;10058UINT NumDirtyRects;10059_Field_size_full_(NumDirtyRects) RECT *pDirtyRects;10060UINT SourceDPBFrameReference;10061} D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO;1006210063typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS10064{10065D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;10066union10067{10068ID3D12Resource *pOpaqueLayoutBuffer;10069D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO *pCPUBuffer;10070} ;10071} D3D12_VIDEO_ENCODER_DIRTY_REGIONS;1007210073typedef struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP10074{10075ID3D12Resource *pOpaqueQuantizationMap;10076} D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP;1007710078typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG10079{10080D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode;10081UINT SearchDeviationLimit;10082} D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG;1008310084typedef struct D3D12_VIDEO_ENCODER_MOVE_RECT10085{10086POINT SourcePoint;10087RECT DestRect;10088} D3D12_VIDEO_ENCODER_MOVE_RECT;1008910090typedef10091enum D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS10092{10093D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_NONE = 0,10094D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_MULTIPLE_HINTS = 0x110095} D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS;1009610097typedef struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO10098{10099UINT NumMoveRegions;10100_Field_size_full_(NumMoveRegions) D3D12_VIDEO_ENCODER_MOVE_RECT *pMoveRegions;10101D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration;10102UINT SourceDPBFrameReference;10103D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision;10104D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags;10105} D3D12_VIDEO_ENCODER_MOVEREGION_INFO;1010610107typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS10108{10109D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource;10110union10111{10112ID3D12Resource *pOpaqueLayoutBuffer;10113D3D12_VIDEO_ENCODER_MOVEREGION_INFO *pCPUBuffer;10114} ;10115} D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS;1011610117typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC210118{10119D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags;10120D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType;10121UINT slice_pic_parameter_set_id;10122UINT PictureOrderCountNumber;10123UINT TemporalLayerIndex;10124UINT List0ReferenceFramesCount;10125_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;10126UINT List1ReferenceFramesCount;10127_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;10128UINT ReferenceFramesReconPictureDescriptorsCount;10129_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors;10130UINT List0RefPicModificationsCount;10131_Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications;10132UINT List1RefPicModificationsCount;10133_Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications;10134UINT QPMapValuesCount;10135_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;10136UCHAR diff_cu_chroma_qp_offset_depth;10137UCHAR log2_sao_offset_scale_luma;10138UCHAR log2_sao_offset_scale_chroma;10139UCHAR log2_max_transform_skip_block_size_minus2;10140UCHAR chroma_qp_offset_list_len_minus1;10141CHAR cb_qp_offset_list[ 6 ];10142CHAR cr_qp_offset_list[ 6 ];10143UINT num_ref_idx_l0_active_minus1;10144UINT num_ref_idx_l1_active_minus1;10145} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2;1014610147typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA110148{10149UINT DataSize;10150union10151{10152D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData;10153D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2 *pHEVCPicData;10154D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData;10155} ;10156} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1;1015710158typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS10159{10160ID3D12Resource *pDownscaledFrame;10161UINT64 Subresource;10162D3D12_VIDEO_ENCODE_REFERENCE_FRAMES DownscaledReferences;10163} D3D12_VIDEO_ENCODER_FRAME_ANALYSIS;1016410165typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC110166{10167UINT IntraRefreshFrameIndex;10168D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;10169D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlCodecData;10170D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;10171D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors;10172D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects;10173D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap;10174D3D12_VIDEO_ENCODER_FRAME_ANALYSIS FrameAnalysis;10175} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1;1017610177typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS110178{10179D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc;10180D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc;10181ID3D12Resource *pInputFrame;10182UINT InputFrameSubresource;10183UINT CurrentFrameBitstreamMetadataSize;10184D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata;10185} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1;1018610187typedef10188enum D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE10189{10190D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_ARRAY_OF_BUFFERS = 0,10191D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_SINGLE_BUFFER = 110192} D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE;1019310194typedef struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM10195{10196D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode;10197UINT ExpectedSubregionCount;10198UINT64 *pSubregionBitstreamsBaseOffsets;10199ID3D12Resource **ppSubregionBitstreams;10200ID3D12Resource **ppSubregionSizes;10201ID3D12Resource **ppSubregionOffsets;10202ID3D12Fence **ppSubregionFences;10203UINT64 *pSubregionFenceValues;10204} D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM;1020510206typedef10207enum D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE10208{10209D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_FULL_FRAME = 0,10210D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_SUBREGIONS = 110211} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE;1021210213typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM110214{10215D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode;10216union10217{10218D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer;10219D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers;10220} ;10221} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1;1022210223typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS110224{10225D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream;10226D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture;10227D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata;10228D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE FrameAnalysisReconstructedPicture;10229} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1;1023010231typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS110232{10233D3D12_VIDEO_ENCODER_CODEC EncoderCodec;10234D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile;10235DXGI_FORMAT EncoderInputFormat;10236D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution;10237D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata;10238D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata;10239D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;10240} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1;1024110242typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS110243{10244D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata;10245ID3D12Resource *pOutputQPMap;10246ID3D12Resource *pOutputSATDMap;10247ID3D12Resource *pOutputBitAllocationMap;10248D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedFramePSNRData;10249D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedSubregionsPSNRData;10250} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1;1025110252typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX10253{10254ID3D12Resource *pQuantizationMap;10255} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX;1025610257typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS10258{10259BOOL FullFrameIdentical;10260D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType;10261ID3D12Resource *pDirtyRegionsMap;10262UINT SourceDPBFrameReference;10263} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS;1026410265typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS10266{10267D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration;10268UINT NumHintsPerPixel;10269_Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMaps;10270_Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsSubresources;10271_Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMapsMetadata;10272_Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsMetadataSubresources;10273D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision;10274D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlConfiguration;10275} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS;1027610277typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA10278{10279D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType;10280union10281{10282D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization;10283D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions;10284D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors;10285} ;10286} D3D12_VIDEO_ENCODER_INPUT_MAP_DATA;1028710288typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS10289{10290D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo;10291D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData;10292} D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS;1029310294typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS10295{10296ID3D12Resource *pOpaqueLayoutBuffer;10297} D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS;10298102991030010301extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0029_v0_0_c_ifspec;10302extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0029_v0_0_s_ifspec;1030310304#ifndef __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__10305#define __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__1030610307/* interface ID3D12VideoEncodeCommandList4 */10308/* [unique][local][object][uuid] */103091031010311EXTERN_C const IID IID_ID3D12VideoEncodeCommandList4;1031210313#if defined(__cplusplus) && !defined(CINTERFACE)1031410315MIDL_INTERFACE("69aeb5b7-55f2-4012-8b73-3a88d65a204c")10316ID3D12VideoEncodeCommandList4 : public ID3D12VideoEncodeCommandList310317{10318public:10319virtual void STDMETHODCALLTYPE EncodeFrame1(10320_In_ ID3D12VideoEncoder *pEncoder,10321_In_ ID3D12VideoEncoderHeap1 *pHeap,10322_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments,10323_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0;1032410325virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata1(10326_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments,10327_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0;1032810329virtual void STDMETHODCALLTYPE ResolveInputParamLayout(10330_In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments,10331_In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments) = 0;1033210333};103341033510336#else /* C style interface */1033710338typedef struct ID3D12VideoEncodeCommandList4Vtbl10339{10340BEGIN_INTERFACE1034110342DECLSPEC_XFGVIRT(IUnknown, QueryInterface)10343HRESULT ( STDMETHODCALLTYPE *QueryInterface )(10344ID3D12VideoEncodeCommandList4 * This,10345REFIID riid,10346_COM_Outptr_ void **ppvObject);1034710348DECLSPEC_XFGVIRT(IUnknown, AddRef)10349ULONG ( STDMETHODCALLTYPE *AddRef )(10350ID3D12VideoEncodeCommandList4 * This);1035110352DECLSPEC_XFGVIRT(IUnknown, Release)10353ULONG ( STDMETHODCALLTYPE *Release )(10354ID3D12VideoEncodeCommandList4 * This);1035510356DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)10357HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(10358ID3D12VideoEncodeCommandList4 * This,10359_In_ REFGUID guid,10360_Inout_ UINT *pDataSize,10361_Out_writes_bytes_opt_( *pDataSize ) void *pData);1036210363DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)10364HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(10365ID3D12VideoEncodeCommandList4 * This,10366_In_ REFGUID guid,10367_In_ UINT DataSize,10368_In_reads_bytes_opt_( DataSize ) const void *pData);1036910370DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)10371HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(10372ID3D12VideoEncodeCommandList4 * This,10373_In_ REFGUID guid,10374_In_opt_ const IUnknown *pData);1037510376DECLSPEC_XFGVIRT(ID3D12Object, SetName)10377HRESULT ( STDMETHODCALLTYPE *SetName )(10378ID3D12VideoEncodeCommandList4 * This,10379_In_z_ LPCWSTR Name);1038010381DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)10382HRESULT ( STDMETHODCALLTYPE *GetDevice )(10383ID3D12VideoEncodeCommandList4 * This,10384REFIID riid,10385_COM_Outptr_opt_ void **ppvDevice);1038610387DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)10388D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(10389ID3D12VideoEncodeCommandList4 * This);1039010391DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)10392HRESULT ( STDMETHODCALLTYPE *Close )(10393ID3D12VideoEncodeCommandList4 * This);1039410395DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)10396HRESULT ( STDMETHODCALLTYPE *Reset )(10397ID3D12VideoEncodeCommandList4 * This,10398_In_ ID3D12CommandAllocator *pAllocator);1039910400DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)10401void ( STDMETHODCALLTYPE *ClearState )(10402ID3D12VideoEncodeCommandList4 * This);1040310404DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)10405void ( STDMETHODCALLTYPE *ResourceBarrier )(10406ID3D12VideoEncodeCommandList4 * This,10407_In_ UINT NumBarriers,10408_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);1040910410DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)10411void ( STDMETHODCALLTYPE *DiscardResource )(10412ID3D12VideoEncodeCommandList4 * This,10413_In_ ID3D12Resource *pResource,10414_In_opt_ const D3D12_DISCARD_REGION *pRegion);1041510416DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)10417void ( STDMETHODCALLTYPE *BeginQuery )(10418ID3D12VideoEncodeCommandList4 * This,10419_In_ ID3D12QueryHeap *pQueryHeap,10420_In_ D3D12_QUERY_TYPE Type,10421_In_ UINT Index);1042210423DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)10424void ( STDMETHODCALLTYPE *EndQuery )(10425ID3D12VideoEncodeCommandList4 * This,10426_In_ ID3D12QueryHeap *pQueryHeap,10427_In_ D3D12_QUERY_TYPE Type,10428_In_ UINT Index);1042910430DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)10431void ( STDMETHODCALLTYPE *ResolveQueryData )(10432ID3D12VideoEncodeCommandList4 * This,10433_In_ ID3D12QueryHeap *pQueryHeap,10434_In_ D3D12_QUERY_TYPE Type,10435_In_ UINT StartIndex,10436_In_ UINT NumQueries,10437_In_ ID3D12Resource *pDestinationBuffer,10438_In_ UINT64 AlignedDestinationBufferOffset);1043910440DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)10441void ( STDMETHODCALLTYPE *SetPredication )(10442ID3D12VideoEncodeCommandList4 * This,10443_In_opt_ ID3D12Resource *pBuffer,10444_In_ UINT64 AlignedBufferOffset,10445_In_ D3D12_PREDICATION_OP Operation);1044610447DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)10448void ( STDMETHODCALLTYPE *SetMarker )(10449ID3D12VideoEncodeCommandList4 * This,10450UINT Metadata,10451_In_reads_bytes_opt_(Size) const void *pData,10452UINT Size);1045310454DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)10455void ( STDMETHODCALLTYPE *BeginEvent )(10456ID3D12VideoEncodeCommandList4 * This,10457UINT Metadata,10458_In_reads_bytes_opt_(Size) const void *pData,10459UINT Size);1046010461DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)10462void ( STDMETHODCALLTYPE *EndEvent )(10463ID3D12VideoEncodeCommandList4 * This);1046410465DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)10466void ( STDMETHODCALLTYPE *EstimateMotion )(10467ID3D12VideoEncodeCommandList4 * This,10468_In_ ID3D12VideoMotionEstimator *pMotionEstimator,10469_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,10470_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);1047110472DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)10473void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(10474ID3D12VideoEncodeCommandList4 * This,10475const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,10476const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);1047710478DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)10479void ( STDMETHODCALLTYPE *WriteBufferImmediate )(10480ID3D12VideoEncodeCommandList4 * This,10481UINT Count,10482_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,10483_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);1048410485DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)10486void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(10487ID3D12VideoEncodeCommandList4 * This,10488_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);1048910490DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)10491void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(10492ID3D12VideoEncodeCommandList4 * This,10493_In_ ID3D12VideoExtensionCommand *pExtensionCommand,10494_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,10495SIZE_T InitializationParametersSizeInBytes);1049610497DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)10498void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(10499ID3D12VideoEncodeCommandList4 * This,10500_In_ ID3D12VideoExtensionCommand *pExtensionCommand,10501_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,10502SIZE_T ExecutionParametersSizeInBytes);1050310504DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)10505void ( STDMETHODCALLTYPE *EncodeFrame )(10506ID3D12VideoEncodeCommandList4 * This,10507_In_ ID3D12VideoEncoder *pEncoder,10508_In_ ID3D12VideoEncoderHeap *pHeap,10509_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,10510_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);1051110512DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)10513void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(10514ID3D12VideoEncodeCommandList4 * This,10515_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,10516_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);1051710518DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier)10519void ( STDMETHODCALLTYPE *Barrier )(10520ID3D12VideoEncodeCommandList4 * This,10521UINT32 NumBarrierGroups,10522_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);1052310524DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, EncodeFrame1)10525void ( STDMETHODCALLTYPE *EncodeFrame1 )(10526ID3D12VideoEncodeCommandList4 * This,10527_In_ ID3D12VideoEncoder *pEncoder,10528_In_ ID3D12VideoEncoderHeap1 *pHeap,10529_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments,10530_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments);1053110532DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveEncoderOutputMetadata1)10533void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata1 )(10534ID3D12VideoEncodeCommandList4 * This,10535_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments,10536_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments);1053710538DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveInputParamLayout)10539void ( STDMETHODCALLTYPE *ResolveInputParamLayout )(10540ID3D12VideoEncodeCommandList4 * This,10541_In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments,10542_In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments);1054310544END_INTERFACE10545} ID3D12VideoEncodeCommandList4Vtbl;1054610547interface ID3D12VideoEncodeCommandList410548{10549CONST_VTBL struct ID3D12VideoEncodeCommandList4Vtbl *lpVtbl;10550};10551105521055310554#ifdef COBJMACROS105551055610557#define ID3D12VideoEncodeCommandList4_QueryInterface(This,riid,ppvObject) \10558( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )1055910560#define ID3D12VideoEncodeCommandList4_AddRef(This) \10561( (This)->lpVtbl -> AddRef(This) )1056210563#define ID3D12VideoEncodeCommandList4_Release(This) \10564( (This)->lpVtbl -> Release(This) )105651056610567#define ID3D12VideoEncodeCommandList4_GetPrivateData(This,guid,pDataSize,pData) \10568( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )1056910570#define ID3D12VideoEncodeCommandList4_SetPrivateData(This,guid,DataSize,pData) \10571( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )1057210573#define ID3D12VideoEncodeCommandList4_SetPrivateDataInterface(This,guid,pData) \10574( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )1057510576#define ID3D12VideoEncodeCommandList4_SetName(This,Name) \10577( (This)->lpVtbl -> SetName(This,Name) )105781057910580#define ID3D12VideoEncodeCommandList4_GetDevice(This,riid,ppvDevice) \10581( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )105821058310584#define ID3D12VideoEncodeCommandList4_GetType(This) \10585( (This)->lpVtbl -> GetType(This) )105861058710588#define ID3D12VideoEncodeCommandList4_Close(This) \10589( (This)->lpVtbl -> Close(This) )1059010591#define ID3D12VideoEncodeCommandList4_Reset(This,pAllocator) \10592( (This)->lpVtbl -> Reset(This,pAllocator) )1059310594#define ID3D12VideoEncodeCommandList4_ClearState(This) \10595( (This)->lpVtbl -> ClearState(This) )1059610597#define ID3D12VideoEncodeCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \10598( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )1059910600#define ID3D12VideoEncodeCommandList4_DiscardResource(This,pResource,pRegion) \10601( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )1060210603#define ID3D12VideoEncodeCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \10604( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )1060510606#define ID3D12VideoEncodeCommandList4_EndQuery(This,pQueryHeap,Type,Index) \10607( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )1060810609#define ID3D12VideoEncodeCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \10610( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )1061110612#define ID3D12VideoEncodeCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \10613( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )1061410615#define ID3D12VideoEncodeCommandList4_SetMarker(This,Metadata,pData,Size) \10616( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )1061710618#define ID3D12VideoEncodeCommandList4_BeginEvent(This,Metadata,pData,Size) \10619( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )1062010621#define ID3D12VideoEncodeCommandList4_EndEvent(This) \10622( (This)->lpVtbl -> EndEvent(This) )1062310624#define ID3D12VideoEncodeCommandList4_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \10625( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )1062610627#define ID3D12VideoEncodeCommandList4_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \10628( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )1062910630#define ID3D12VideoEncodeCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \10631( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )1063210633#define ID3D12VideoEncodeCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \10634( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )106351063610637#define ID3D12VideoEncodeCommandList4_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \10638( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )1063910640#define ID3D12VideoEncodeCommandList4_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \10641( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )106421064310644#define ID3D12VideoEncodeCommandList4_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \10645( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )1064610647#define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \10648( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )106491065010651#define ID3D12VideoEncodeCommandList4_Barrier(This,NumBarrierGroups,pBarrierGroups) \10652( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )106531065410655#define ID3D12VideoEncodeCommandList4_EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \10656( (This)->lpVtbl -> EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )1065710658#define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) \10659( (This)->lpVtbl -> ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) )1066010661#define ID3D12VideoEncodeCommandList4_ResolveInputParamLayout(This,pInputArguments,pOutputArguments) \10662( (This)->lpVtbl -> ResolveInputParamLayout(This,pInputArguments,pOutputArguments) )1066310664#endif /* COBJMACROS */106651066610667#endif /* C style interface */1066810669106701067110672#endif /* __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ */106731067410675/* interface __MIDL_itf_d3d12video_0000_0030 */10676/* [local] */1067710678#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */10679#pragma endregion10680DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);10681DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);10682DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);10683DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);10684DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);10685DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);10686DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);10687DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);10688DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);10689DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);10690DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);10691DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);10692DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);10693DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);10694DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);10695DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);10696DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);10697DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);10698DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13);10699DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);10700DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff);10701DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);10702DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37);10703DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A);10704DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44);10705DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a);10706DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76);10707DEFINE_GUID(IID_ID3D12VideoEncoderHeap1,0xea8f1968,0x4aa0,0x43a4,0x9d,0x30,0xba,0x86,0xec,0x84,0xd4,0xf9);10708DEFINE_GUID(IID_ID3D12VideoDevice4,0xe59ad09e,0xf1ae,0x42bb,0x89,0x83,0x9f,0x6e,0x55,0x86,0xc4,0xeb);10709DEFINE_GUID(IID_ID3D12VideoEncodeCommandList4,0x69aeb5b7,0x55f2,0x4012,0x8b,0x73,0x3a,0x88,0xd6,0x5a,0x20,0x4c);107101071110712extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0030_v0_0_c_ifspec;10713extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0030_v0_0_s_ifspec;1071410715/* Additional Prototypes for ALL interfaces */1071610717/* end of Additional Prototypes */1071810719#ifdef __cplusplus10720}10721#endif1072210723#endif1072410725107261072710728