Path: blob/master/thirdparty/directx_headers/include/directx/d3d12video.h
9906 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/* header files for imported files */244#include "oaidl.h"245#include "ocidl.h"246#include "dxgicommon.h"247#include "d3d12.h"248249#ifdef __cplusplus250extern "C"{251#endif252253254/* interface __MIDL_itf_d3d12video_0000_0000 */255/* [local] */256257#include <winapifamily.h>258#pragma region App Family259#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)260typedef261enum D3D12_VIDEO_FIELD_TYPE262{263D3D12_VIDEO_FIELD_TYPE_NONE = 0,264D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1,265D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2266} D3D12_VIDEO_FIELD_TYPE;267268typedef269enum D3D12_VIDEO_FRAME_STEREO_FORMAT270{271D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0,272D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1,273D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2,274D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3,275D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4276} D3D12_VIDEO_FRAME_STEREO_FORMAT;277278typedef struct D3D12_VIDEO_FORMAT279{280DXGI_FORMAT Format;281DXGI_COLOR_SPACE_TYPE ColorSpace;282} D3D12_VIDEO_FORMAT;283284typedef struct D3D12_VIDEO_SAMPLE285{286UINT Width;287UINT Height;288D3D12_VIDEO_FORMAT Format;289} D3D12_VIDEO_SAMPLE;290291typedef292enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE293{294D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0,295D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1296} D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE;297298typedef299enum D3D12_FEATURE_VIDEO300{301D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0,302D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1,303D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2,304D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3,305D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5,306D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6,307D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7,308D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8,309D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9,310D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10,311D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11,312D3D12_FEATURE_VIDEO_ARCHITECTURE = 17,313D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18,314D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19,315D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20,316D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21,317D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22,318D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23,319D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24,320D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25,321D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26,322D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27,323D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28,324D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29,325D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,326D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31,327D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32,328D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33,329D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34,330D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35,331D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36,332D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37,333D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38,334D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39,335D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40,336D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41,337D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42,338D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43,339D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44,340D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45,341D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46,342D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47343} D3D12_FEATURE_VIDEO;344345typedef346enum D3D12_BITSTREAM_ENCRYPTION_TYPE347{348D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0349} D3D12_BITSTREAM_ENCRYPTION_TYPE;350351typedef struct D3D12_VIDEO_DECODE_CONFIGURATION352{353GUID DecodeProfile;354D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption;355D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType;356} D3D12_VIDEO_DECODE_CONFIGURATION;357358typedef struct D3D12_VIDEO_DECODER_DESC359{360UINT NodeMask;361D3D12_VIDEO_DECODE_CONFIGURATION Configuration;362} D3D12_VIDEO_DECODER_DESC;363364typedef struct D3D12_VIDEO_DECODER_HEAP_DESC365{366UINT NodeMask;367D3D12_VIDEO_DECODE_CONFIGURATION Configuration;368UINT DecodeWidth;369UINT DecodeHeight;370DXGI_FORMAT Format;371DXGI_RATIONAL FrameRate;372UINT BitRate;373UINT MaxDecodePictureBufferCount;374} D3D12_VIDEO_DECODER_HEAP_DESC;375376typedef struct D3D12_VIDEO_SIZE_RANGE377{378UINT MaxWidth;379UINT MaxHeight;380UINT MinWidth;381UINT MinHeight;382} D3D12_VIDEO_SIZE_RANGE;383384typedef385enum D3D12_VIDEO_PROCESS_FILTER386{387D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0,388D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1,389D3D12_VIDEO_PROCESS_FILTER_HUE = 2,390D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3,391D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4,392D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5,393D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6,394D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7395} D3D12_VIDEO_PROCESS_FILTER;396397typedef398enum D3D12_VIDEO_PROCESS_FILTER_FLAGS399{400D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0,401D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) ,402D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) ,403D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) ,404D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) ,405D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) ,406D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) ,407D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) ,408D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT )409} D3D12_VIDEO_PROCESS_FILTER_FLAGS;410411DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS );412typedef413enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS414{415D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0,416D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1,417D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000418} D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS;419420DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS );421typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING422{423BOOL Enable;424FLOAT Alpha;425} D3D12_VIDEO_PROCESS_ALPHA_BLENDING;426427typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY428{429BOOL Enable;430FLOAT Lower;431FLOAT Upper;432} D3D12_VIDEO_PROCESS_LUMA_KEY;433434typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC435{436DXGI_FORMAT Format;437DXGI_COLOR_SPACE_TYPE ColorSpace;438DXGI_RATIONAL SourceAspectRatio;439DXGI_RATIONAL DestinationAspectRatio;440DXGI_RATIONAL FrameRate;441D3D12_VIDEO_SIZE_RANGE SourceSizeRange;442D3D12_VIDEO_SIZE_RANGE DestinationSizeRange;443BOOL EnableOrientation;444D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags;445D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat;446D3D12_VIDEO_FIELD_TYPE FieldType;447D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;448BOOL EnableAlphaBlending;449D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey;450UINT NumPastFrames;451UINT NumFutureFrames;452BOOL EnableAutoProcessing;453} D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC;454455typedef456enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE457{458D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0,459D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1,460D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2,461D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3462} D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE;463464typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC465{466DXGI_FORMAT Format;467DXGI_COLOR_SPACE_TYPE ColorSpace;468D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode;469UINT AlphaFillModeSourceStreamIndex;470FLOAT BackgroundColor[ 4 ];471DXGI_RATIONAL FrameRate;472BOOL EnableStereo;473} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC;474475476477extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec;478extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec;479480#ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__481#define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__482483/* interface ID3D12VideoDecoderHeap */484/* [unique][local][object][uuid] */485486487EXTERN_C const IID IID_ID3D12VideoDecoderHeap;488489#if defined(__cplusplus) && !defined(CINTERFACE)490491MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F")492ID3D12VideoDecoderHeap : public ID3D12Pageable493{494public:495#if defined(_MSC_VER) || !defined(_WIN32)496virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;497#else498virtual D3D12_VIDEO_DECODER_HEAP_DESC *STDMETHODCALLTYPE GetDesc(499D3D12_VIDEO_DECODER_HEAP_DESC * RetVal) = 0;500#endif501502};503504505#else /* C style interface */506507typedef struct ID3D12VideoDecoderHeapVtbl508{509BEGIN_INTERFACE510511DECLSPEC_XFGVIRT(IUnknown, QueryInterface)512HRESULT ( STDMETHODCALLTYPE *QueryInterface )(513ID3D12VideoDecoderHeap * This,514REFIID riid,515_COM_Outptr_ void **ppvObject);516517DECLSPEC_XFGVIRT(IUnknown, AddRef)518ULONG ( STDMETHODCALLTYPE *AddRef )(519ID3D12VideoDecoderHeap * This);520521DECLSPEC_XFGVIRT(IUnknown, Release)522ULONG ( STDMETHODCALLTYPE *Release )(523ID3D12VideoDecoderHeap * This);524525DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)526HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(527ID3D12VideoDecoderHeap * This,528_In_ REFGUID guid,529_Inout_ UINT *pDataSize,530_Out_writes_bytes_opt_( *pDataSize ) void *pData);531532DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)533HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(534ID3D12VideoDecoderHeap * This,535_In_ REFGUID guid,536_In_ UINT DataSize,537_In_reads_bytes_opt_( DataSize ) const void *pData);538539DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)540HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(541ID3D12VideoDecoderHeap * This,542_In_ REFGUID guid,543_In_opt_ const IUnknown *pData);544545DECLSPEC_XFGVIRT(ID3D12Object, SetName)546HRESULT ( STDMETHODCALLTYPE *SetName )(547ID3D12VideoDecoderHeap * This,548_In_z_ LPCWSTR Name);549550DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)551HRESULT ( STDMETHODCALLTYPE *GetDevice )(552ID3D12VideoDecoderHeap * This,553REFIID riid,554_COM_Outptr_opt_ void **ppvDevice);555556DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)557#if !defined(_WIN32)558D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(559ID3D12VideoDecoderHeap * This);560561#else562D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(563ID3D12VideoDecoderHeap * This,564D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);565566#endif567568END_INTERFACE569} ID3D12VideoDecoderHeapVtbl;570571interface ID3D12VideoDecoderHeap572{573CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl;574};575576577578#ifdef COBJMACROS579580581#define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \582( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )583584#define ID3D12VideoDecoderHeap_AddRef(This) \585( (This)->lpVtbl -> AddRef(This) )586587#define ID3D12VideoDecoderHeap_Release(This) \588( (This)->lpVtbl -> Release(This) )589590591#define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \592( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )593594#define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \595( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )596597#define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \598( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )599600#define ID3D12VideoDecoderHeap_SetName(This,Name) \601( (This)->lpVtbl -> SetName(This,Name) )602603604#define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \605( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )606607608#if !defined(_WIN32)609610#define ID3D12VideoDecoderHeap_GetDesc(This) \611( (This)->lpVtbl -> GetDesc(This) )612#else613#define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \614( (This)->lpVtbl -> GetDesc(This,RetVal) )615#endif616617#endif /* COBJMACROS */618619620#endif /* C style interface */621622623624625#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */626627628#ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__629#define __ID3D12VideoDevice_INTERFACE_DEFINED__630631/* interface ID3D12VideoDevice */632/* [unique][local][object][uuid] */633634635EXTERN_C const IID IID_ID3D12VideoDevice;636637#if defined(__cplusplus) && !defined(CINTERFACE)638639MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4")640ID3D12VideoDevice : public IUnknown641{642public:643virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(644D3D12_FEATURE_VIDEO FeatureVideo,645_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,646UINT FeatureSupportDataSize) = 0;647648virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(649_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,650_In_ REFIID riid,651_COM_Outptr_ void **ppVideoDecoder) = 0;652653virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap(654_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,655_In_ REFIID riid,656_COM_Outptr_ void **ppVideoDecoderHeap) = 0;657658virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(659UINT NodeMask,660_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,661UINT NumInputStreamDescs,662_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,663_In_ REFIID riid,664_COM_Outptr_ void **ppVideoProcessor) = 0;665666};667668669#else /* C style interface */670671typedef struct ID3D12VideoDeviceVtbl672{673BEGIN_INTERFACE674675DECLSPEC_XFGVIRT(IUnknown, QueryInterface)676HRESULT ( STDMETHODCALLTYPE *QueryInterface )(677ID3D12VideoDevice * This,678REFIID riid,679_COM_Outptr_ void **ppvObject);680681DECLSPEC_XFGVIRT(IUnknown, AddRef)682ULONG ( STDMETHODCALLTYPE *AddRef )(683ID3D12VideoDevice * This);684685DECLSPEC_XFGVIRT(IUnknown, Release)686ULONG ( STDMETHODCALLTYPE *Release )(687ID3D12VideoDevice * This);688689DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)690HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(691ID3D12VideoDevice * This,692D3D12_FEATURE_VIDEO FeatureVideo,693_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,694UINT FeatureSupportDataSize);695696DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)697HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(698ID3D12VideoDevice * This,699_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,700_In_ REFIID riid,701_COM_Outptr_ void **ppVideoDecoder);702703DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)704HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(705ID3D12VideoDevice * This,706_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,707_In_ REFIID riid,708_COM_Outptr_ void **ppVideoDecoderHeap);709710DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)711HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(712ID3D12VideoDevice * This,713UINT NodeMask,714_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,715UINT NumInputStreamDescs,716_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,717_In_ REFIID riid,718_COM_Outptr_ void **ppVideoProcessor);719720END_INTERFACE721} ID3D12VideoDeviceVtbl;722723interface ID3D12VideoDevice724{725CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl;726};727728729730#ifdef COBJMACROS731732733#define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \734( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )735736#define ID3D12VideoDevice_AddRef(This) \737( (This)->lpVtbl -> AddRef(This) )738739#define ID3D12VideoDevice_Release(This) \740( (This)->lpVtbl -> Release(This) )741742743#define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \744( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )745746#define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \747( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )748749#define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \750( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )751752#define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \753( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )754755#endif /* COBJMACROS */756757758#endif /* C style interface */759760761762763#endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */764765766#ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__767#define __ID3D12VideoDecoder_INTERFACE_DEFINED__768769/* interface ID3D12VideoDecoder */770/* [unique][local][object][uuid] */771772773EXTERN_C const IID IID_ID3D12VideoDecoder;774775#if defined(__cplusplus) && !defined(CINTERFACE)776777MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470")778ID3D12VideoDecoder : public ID3D12Pageable779{780public:781#if defined(_MSC_VER) || !defined(_WIN32)782virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0;783#else784virtual D3D12_VIDEO_DECODER_DESC *STDMETHODCALLTYPE GetDesc(785D3D12_VIDEO_DECODER_DESC * RetVal) = 0;786#endif787788};789790791#else /* C style interface */792793typedef struct ID3D12VideoDecoderVtbl794{795BEGIN_INTERFACE796797DECLSPEC_XFGVIRT(IUnknown, QueryInterface)798HRESULT ( STDMETHODCALLTYPE *QueryInterface )(799ID3D12VideoDecoder * This,800REFIID riid,801_COM_Outptr_ void **ppvObject);802803DECLSPEC_XFGVIRT(IUnknown, AddRef)804ULONG ( STDMETHODCALLTYPE *AddRef )(805ID3D12VideoDecoder * This);806807DECLSPEC_XFGVIRT(IUnknown, Release)808ULONG ( STDMETHODCALLTYPE *Release )(809ID3D12VideoDecoder * This);810811DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)812HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(813ID3D12VideoDecoder * This,814_In_ REFGUID guid,815_Inout_ UINT *pDataSize,816_Out_writes_bytes_opt_( *pDataSize ) void *pData);817818DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)819HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(820ID3D12VideoDecoder * This,821_In_ REFGUID guid,822_In_ UINT DataSize,823_In_reads_bytes_opt_( DataSize ) const void *pData);824825DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)826HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(827ID3D12VideoDecoder * This,828_In_ REFGUID guid,829_In_opt_ const IUnknown *pData);830831DECLSPEC_XFGVIRT(ID3D12Object, SetName)832HRESULT ( STDMETHODCALLTYPE *SetName )(833ID3D12VideoDecoder * This,834_In_z_ LPCWSTR Name);835836DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)837HRESULT ( STDMETHODCALLTYPE *GetDevice )(838ID3D12VideoDecoder * This,839REFIID riid,840_COM_Outptr_opt_ void **ppvDevice);841842DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)843#if !defined(_WIN32)844D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(845ID3D12VideoDecoder * This);846847#else848D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(849ID3D12VideoDecoder * This,850D3D12_VIDEO_DECODER_DESC * RetVal);851852#endif853854END_INTERFACE855} ID3D12VideoDecoderVtbl;856857interface ID3D12VideoDecoder858{859CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl;860};861862863864#ifdef COBJMACROS865866867#define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \868( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )869870#define ID3D12VideoDecoder_AddRef(This) \871( (This)->lpVtbl -> AddRef(This) )872873#define ID3D12VideoDecoder_Release(This) \874( (This)->lpVtbl -> Release(This) )875876877#define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \878( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )879880#define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \881( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )882883#define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \884( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )885886#define ID3D12VideoDecoder_SetName(This,Name) \887( (This)->lpVtbl -> SetName(This,Name) )888889890#define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \891( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )892893894#if !defined(_WIN32)895896#define ID3D12VideoDecoder_GetDesc(This) \897( (This)->lpVtbl -> GetDesc(This) )898#else899#define ID3D12VideoDecoder_GetDesc(This,RetVal) \900( (This)->lpVtbl -> GetDesc(This,RetVal) )901#endif902903#endif /* COBJMACROS */904905906#endif /* C style interface */907908909910911#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */912913914/* interface __MIDL_itf_d3d12video_0000_0003 */915/* [local] */916917typedef918enum D3D12_VIDEO_DECODE_TIER919{920D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0,921D3D12_VIDEO_DECODE_TIER_1 = 1,922D3D12_VIDEO_DECODE_TIER_2 = 2,923D3D12_VIDEO_DECODE_TIER_3 = 3924} D3D12_VIDEO_DECODE_TIER;925926typedef927enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS928{929D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0,930D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1931} D3D12_VIDEO_DECODE_SUPPORT_FLAGS;932933DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS );934typedef935enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS936{937D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0,938D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1,939D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2,940D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4,941D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8942} D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS;943944DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS );945typedef946enum D3D12_VIDEO_DECODE_STATUS947{948D3D12_VIDEO_DECODE_STATUS_OK = 0,949D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1,950D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2,951D3D12_VIDEO_DECODE_STATUS_RESTART = 3,952D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4953} D3D12_VIDEO_DECODE_STATUS;954955typedef956enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE957{958D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0,959D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1,960D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2,961D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3962} D3D12_VIDEO_DECODE_ARGUMENT_TYPE;963964typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT965{966UINT NodeIndex;967D3D12_VIDEO_DECODE_CONFIGURATION Configuration;968UINT Width;969UINT Height;970DXGI_FORMAT DecodeFormat;971DXGI_RATIONAL FrameRate;972UINT BitRate;973D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags;974D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags;975D3D12_VIDEO_DECODE_TIER DecodeTier;976} D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT;977978typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT979{980UINT NodeIndex;981UINT ProfileCount;982} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT;983984typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES985{986UINT NodeIndex;987UINT ProfileCount;988_Field_size_full_(ProfileCount) GUID *pProfiles;989} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES;990991typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT992{993UINT NodeIndex;994D3D12_VIDEO_DECODE_CONFIGURATION Configuration;995UINT FormatCount;996} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT;997998typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS999{1000UINT NodeIndex;1001D3D12_VIDEO_DECODE_CONFIGURATION Configuration;1002UINT FormatCount;1003_Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats;1004} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS;10051006typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE1007{1008BOOL IOCoherent;1009} D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE;10101011typedef1012enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT1013{1014D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0,1015D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1,1016D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2,1017D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0,1018D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1,1019D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2,1020D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 31021} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT;10221023typedef1024enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS1025{1026D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0,1027D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) ,1028D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) ,1029D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) ,1030D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) ,1031D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) ,1032D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) ,1033D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A )1034} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS;10351036DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS );1037typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM1038{1039UINT NodeIndex;1040GUID DecodeProfile;1041UINT Width;1042UINT Height;1043DXGI_FORMAT DecodeFormat;1044D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components;1045UINT BinCount;1046UINT CounterBitDepth;1047} D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM;10481049typedef1050enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS1051{1052D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0,1053D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x11054} D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS;10551056DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS );1057typedef1058enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS1059{1060D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0,1061D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1,1062D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x21063} D3D12_VIDEO_SCALE_SUPPORT_FLAGS;10641065DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS );1066typedef struct D3D12_VIDEO_SCALE_SUPPORT1067{1068D3D12_VIDEO_SIZE_RANGE OutputSizeRange;1069D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags;1070} D3D12_VIDEO_SCALE_SUPPORT;10711072typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT1073{1074UINT NodeIndex;1075D3D12_VIDEO_DECODE_CONFIGURATION Configuration;1076D3D12_VIDEO_SAMPLE DecodeSample;1077D3D12_VIDEO_FORMAT OutputFormat;1078DXGI_RATIONAL FrameRate;1079UINT BitRate;1080D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags;1081D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;1082} D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT;10831084typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1085{1086D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;1087UINT64 MemoryPoolL0Size;1088UINT64 MemoryPoolL1Size;1089} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE;10901091typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1092{1093UINT NodeMask;1094const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;1095UINT NumInputStreamDescs;1096const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;1097UINT64 MemoryPoolL0Size;1098UINT64 MemoryPoolL1Size;1099} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;11001101typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS1102{1103UINT64 Status;1104UINT64 NumMacroblocksAffected;1105DXGI_RATIONAL FrameRate;1106UINT BitRate;1107} D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS;11081109typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT1110{1111D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;1112UINT Size;1113_Field_size_bytes_full_(Size) void *pData;1114} D3D12_VIDEO_DECODE_FRAME_ARGUMENT;11151116typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES1117{1118UINT NumTexture2Ds;1119_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;1120_Field_size_full_(NumTexture2Ds) UINT *pSubresources;1121_Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps;1122} D3D12_VIDEO_DECODE_REFERENCE_FRAMES;11231124typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM1125{1126ID3D12Resource *pBuffer;1127UINT64 Offset;1128UINT64 Size;1129} D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM;11301131typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1132{1133BOOL Enable;1134ID3D12Resource *pReferenceTexture2D;1135UINT ReferenceSubresource;1136DXGI_COLOR_SPACE_TYPE OutputColorSpace;1137DXGI_COLOR_SPACE_TYPE DecodeColorSpace;1138} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS;11391140typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS1141{1142UINT NumFrameArguments;1143D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ];1144D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames;1145D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream;1146ID3D12VideoDecoderHeap *pHeap;1147} D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS;11481149typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1150{1151ID3D12Resource *pOutputTexture2D;1152UINT OutputSubresource;1153D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments;1154} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS;1155115611571158extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec;1159extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec;11601161#ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__1162#define __ID3D12VideoProcessor_INTERFACE_DEFINED__11631164/* interface ID3D12VideoProcessor */1165/* [unique][local][object][uuid] */116611671168EXTERN_C const IID IID_ID3D12VideoProcessor;11691170#if defined(__cplusplus) && !defined(CINTERFACE)11711172MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138")1173ID3D12VideoProcessor : public ID3D12Pageable1174{1175public:1176virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;11771178virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0;11791180virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs(1181UINT NumInputStreamDescs,1182_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0;11831184#if defined(_MSC_VER) || !defined(_WIN32)1185virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0;1186#else1187virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *STDMETHODCALLTYPE GetOutputStreamDesc(1188D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal) = 0;1189#endif11901191};119211931194#else /* C style interface */11951196typedef struct ID3D12VideoProcessorVtbl1197{1198BEGIN_INTERFACE11991200DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1201HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1202ID3D12VideoProcessor * This,1203REFIID riid,1204_COM_Outptr_ void **ppvObject);12051206DECLSPEC_XFGVIRT(IUnknown, AddRef)1207ULONG ( STDMETHODCALLTYPE *AddRef )(1208ID3D12VideoProcessor * This);12091210DECLSPEC_XFGVIRT(IUnknown, Release)1211ULONG ( STDMETHODCALLTYPE *Release )(1212ID3D12VideoProcessor * This);12131214DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1215HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1216ID3D12VideoProcessor * This,1217_In_ REFGUID guid,1218_Inout_ UINT *pDataSize,1219_Out_writes_bytes_opt_( *pDataSize ) void *pData);12201221DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1222HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1223ID3D12VideoProcessor * This,1224_In_ REFGUID guid,1225_In_ UINT DataSize,1226_In_reads_bytes_opt_( DataSize ) const void *pData);12271228DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1229HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1230ID3D12VideoProcessor * This,1231_In_ REFGUID guid,1232_In_opt_ const IUnknown *pData);12331234DECLSPEC_XFGVIRT(ID3D12Object, SetName)1235HRESULT ( STDMETHODCALLTYPE *SetName )(1236ID3D12VideoProcessor * This,1237_In_z_ LPCWSTR Name);12381239DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1240HRESULT ( STDMETHODCALLTYPE *GetDevice )(1241ID3D12VideoProcessor * This,1242REFIID riid,1243_COM_Outptr_opt_ void **ppvDevice);12441245DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)1246UINT ( STDMETHODCALLTYPE *GetNodeMask )(1247ID3D12VideoProcessor * This);12481249DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)1250UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(1251ID3D12VideoProcessor * This);12521253DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)1254HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(1255ID3D12VideoProcessor * This,1256UINT NumInputStreamDescs,1257_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);12581259DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)1260#if !defined(_WIN32)1261D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(1262ID3D12VideoProcessor * This);12631264#else1265D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(1266ID3D12VideoProcessor * This,1267D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);12681269#endif12701271END_INTERFACE1272} ID3D12VideoProcessorVtbl;12731274interface ID3D12VideoProcessor1275{1276CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl;1277};1278127912801281#ifdef COBJMACROS128212831284#define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \1285( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )12861287#define ID3D12VideoProcessor_AddRef(This) \1288( (This)->lpVtbl -> AddRef(This) )12891290#define ID3D12VideoProcessor_Release(This) \1291( (This)->lpVtbl -> Release(This) )129212931294#define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \1295( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )12961297#define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \1298( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )12991300#define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \1301( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )13021303#define ID3D12VideoProcessor_SetName(This,Name) \1304( (This)->lpVtbl -> SetName(This,Name) )130513061307#define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \1308( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )1309131013111312#define ID3D12VideoProcessor_GetNodeMask(This) \1313( (This)->lpVtbl -> GetNodeMask(This) )13141315#define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \1316( (This)->lpVtbl -> GetNumInputStreamDescs(This) )13171318#define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \1319( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )1320#if !defined(_WIN32)13211322#define ID3D12VideoProcessor_GetOutputStreamDesc(This) \1323( (This)->lpVtbl -> GetOutputStreamDesc(This) )1324#else1325#define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \1326( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )1327#endif13281329#endif /* COBJMACROS */133013311332#endif /* C style interface */13331334133513361337#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */133813391340/* interface __MIDL_itf_d3d12video_0000_0004 */1341/* [local] */13421343typedef1344enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS1345{1346D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0,1347D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1,1348D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2,1349D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4,1350D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8,1351D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10,1352D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20,1353D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x401354} D3D12_VIDEO_PROCESS_FEATURE_FLAGS;13551356DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS );1357typedef1358enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS1359{1360D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0,1361D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1,1362D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2,1363D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4,1364D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8,1365D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10,1366D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20,1367D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40,1368D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80,1369D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x800000001370} D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS;13711372DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS );1373typedef1374enum D3D12_VIDEO_PROCESS_ORIENTATION1375{1376D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0,1377D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1,1378D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2,1379D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3,1380D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4,1381D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5,1382D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6,1383D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 71384} D3D12_VIDEO_PROCESS_ORIENTATION;13851386typedef1387enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS1388{1389D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0,1390D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1,1391D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x21392} D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS;13931394DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS );1395typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE1396{1397INT Minimum;1398INT Maximum;1399INT Default;1400FLOAT Multiplier;1401} D3D12_VIDEO_PROCESS_FILTER_RANGE;14021403typedef1404enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS1405{1406D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0,1407D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x11408} D3D12_VIDEO_PROCESS_SUPPORT_FLAGS;14091410DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS );1411typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT1412{1413UINT NodeIndex;1414D3D12_VIDEO_SAMPLE InputSample;1415D3D12_VIDEO_FIELD_TYPE InputFieldType;1416D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat;1417DXGI_RATIONAL InputFrameRate;1418D3D12_VIDEO_FORMAT OutputFormat;1419D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat;1420DXGI_RATIONAL OutputFrameRate;1421D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags;1422D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;1423D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;1424D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport;1425D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport;1426D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport;1427D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ];1428} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;14291430typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS1431{1432UINT NodeIndex;1433UINT MaxInputStreams;1434} D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS;14351436typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO1437{1438UINT NodeIndex;1439D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;1440D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters;1441D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;1442DXGI_RATIONAL InputFrameRate;1443DXGI_RATIONAL OutputFrameRate;1444BOOL EnableAutoProcessing;1445UINT PastFrames;1446UINT FutureFrames;1447} D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO;14481449typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET1450{1451UINT NumPastFrames;1452ID3D12Resource **ppPastFrames;1453UINT *pPastSubresources;1454UINT NumFutureFrames;1455ID3D12Resource **ppFutureFrames;1456UINT *pFutureSubresources;1457} D3D12_VIDEO_PROCESS_REFERENCE_SET;14581459typedef struct D3D12_VIDEO_PROCESS_TRANSFORM1460{1461D3D12_RECT SourceRectangle;1462D3D12_RECT DestinationRectangle;1463D3D12_VIDEO_PROCESS_ORIENTATION Orientation;1464} D3D12_VIDEO_PROCESS_TRANSFORM;14651466typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE1467{1468UINT OutputIndex;1469UINT InputFrameOrField;1470} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;14711472typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM1473{1474ID3D12Resource *pTexture2D;1475UINT Subresource;1476D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet;1477} D3D12_VIDEO_PROCESS_INPUT_STREAM;14781479typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1480{1481D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];1482D3D12_VIDEO_PROCESS_TRANSFORM Transform;1483D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;1484D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;1485INT FilterLevels[ 32 ];1486D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;1487} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS;14881489typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM1490{1491ID3D12Resource *pTexture2D;1492UINT Subresource;1493} D3D12_VIDEO_PROCESS_OUTPUT_STREAM;14941495typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS1496{1497D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ];1498D3D12_RECT TargetRectangle;1499} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS;1500150115021503extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec;1504extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec;15051506#ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__1507#define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__15081509/* interface ID3D12VideoDecodeCommandList */1510/* [unique][local][object][uuid] */151115121513EXTERN_C const IID IID_ID3D12VideoDecodeCommandList;15141515#if defined(__cplusplus) && !defined(CINTERFACE)15161517MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53")1518ID3D12VideoDecodeCommandList : public ID3D12CommandList1519{1520public:1521virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;15221523virtual HRESULT STDMETHODCALLTYPE Reset(1524_In_ ID3D12CommandAllocator *pAllocator) = 0;15251526virtual void STDMETHODCALLTYPE ClearState( void) = 0;15271528virtual void STDMETHODCALLTYPE ResourceBarrier(1529_In_ UINT NumBarriers,1530_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;15311532virtual void STDMETHODCALLTYPE DiscardResource(1533_In_ ID3D12Resource *pResource,1534_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;15351536virtual void STDMETHODCALLTYPE BeginQuery(1537_In_ ID3D12QueryHeap *pQueryHeap,1538_In_ D3D12_QUERY_TYPE Type,1539_In_ UINT Index) = 0;15401541virtual void STDMETHODCALLTYPE EndQuery(1542_In_ ID3D12QueryHeap *pQueryHeap,1543_In_ D3D12_QUERY_TYPE Type,1544_In_ UINT Index) = 0;15451546virtual void STDMETHODCALLTYPE ResolveQueryData(1547_In_ ID3D12QueryHeap *pQueryHeap,1548_In_ D3D12_QUERY_TYPE Type,1549_In_ UINT StartIndex,1550_In_ UINT NumQueries,1551_In_ ID3D12Resource *pDestinationBuffer,1552_In_ UINT64 AlignedDestinationBufferOffset) = 0;15531554virtual void STDMETHODCALLTYPE SetPredication(1555_In_opt_ ID3D12Resource *pBuffer,1556_In_ UINT64 AlignedBufferOffset,1557_In_ D3D12_PREDICATION_OP Operation) = 0;15581559virtual void STDMETHODCALLTYPE SetMarker(1560UINT Metadata,1561_In_reads_bytes_opt_(Size) const void *pData,1562UINT Size) = 0;15631564virtual void STDMETHODCALLTYPE BeginEvent(1565UINT Metadata,1566_In_reads_bytes_opt_(Size) const void *pData,1567UINT Size) = 0;15681569virtual void STDMETHODCALLTYPE EndEvent( void) = 0;15701571virtual void STDMETHODCALLTYPE DecodeFrame(1572_In_ ID3D12VideoDecoder *pDecoder,1573_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1574_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;15751576virtual void STDMETHODCALLTYPE WriteBufferImmediate(1577UINT Count,1578_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1579_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;15801581};158215831584#else /* C style interface */15851586typedef struct ID3D12VideoDecodeCommandListVtbl1587{1588BEGIN_INTERFACE15891590DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1591HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1592ID3D12VideoDecodeCommandList * This,1593REFIID riid,1594_COM_Outptr_ void **ppvObject);15951596DECLSPEC_XFGVIRT(IUnknown, AddRef)1597ULONG ( STDMETHODCALLTYPE *AddRef )(1598ID3D12VideoDecodeCommandList * This);15991600DECLSPEC_XFGVIRT(IUnknown, Release)1601ULONG ( STDMETHODCALLTYPE *Release )(1602ID3D12VideoDecodeCommandList * This);16031604DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1605HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1606ID3D12VideoDecodeCommandList * This,1607_In_ REFGUID guid,1608_Inout_ UINT *pDataSize,1609_Out_writes_bytes_opt_( *pDataSize ) void *pData);16101611DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1612HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1613ID3D12VideoDecodeCommandList * This,1614_In_ REFGUID guid,1615_In_ UINT DataSize,1616_In_reads_bytes_opt_( DataSize ) const void *pData);16171618DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1619HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1620ID3D12VideoDecodeCommandList * This,1621_In_ REFGUID guid,1622_In_opt_ const IUnknown *pData);16231624DECLSPEC_XFGVIRT(ID3D12Object, SetName)1625HRESULT ( STDMETHODCALLTYPE *SetName )(1626ID3D12VideoDecodeCommandList * This,1627_In_z_ LPCWSTR Name);16281629DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1630HRESULT ( STDMETHODCALLTYPE *GetDevice )(1631ID3D12VideoDecodeCommandList * This,1632REFIID riid,1633_COM_Outptr_opt_ void **ppvDevice);16341635DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)1636D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(1637ID3D12VideoDecodeCommandList * This);16381639DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)1640HRESULT ( STDMETHODCALLTYPE *Close )(1641ID3D12VideoDecodeCommandList * This);16421643DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)1644HRESULT ( STDMETHODCALLTYPE *Reset )(1645ID3D12VideoDecodeCommandList * This,1646_In_ ID3D12CommandAllocator *pAllocator);16471648DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)1649void ( STDMETHODCALLTYPE *ClearState )(1650ID3D12VideoDecodeCommandList * This);16511652DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)1653void ( STDMETHODCALLTYPE *ResourceBarrier )(1654ID3D12VideoDecodeCommandList * This,1655_In_ UINT NumBarriers,1656_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);16571658DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)1659void ( STDMETHODCALLTYPE *DiscardResource )(1660ID3D12VideoDecodeCommandList * This,1661_In_ ID3D12Resource *pResource,1662_In_opt_ const D3D12_DISCARD_REGION *pRegion);16631664DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)1665void ( STDMETHODCALLTYPE *BeginQuery )(1666ID3D12VideoDecodeCommandList * This,1667_In_ ID3D12QueryHeap *pQueryHeap,1668_In_ D3D12_QUERY_TYPE Type,1669_In_ UINT Index);16701671DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)1672void ( STDMETHODCALLTYPE *EndQuery )(1673ID3D12VideoDecodeCommandList * This,1674_In_ ID3D12QueryHeap *pQueryHeap,1675_In_ D3D12_QUERY_TYPE Type,1676_In_ UINT Index);16771678DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)1679void ( STDMETHODCALLTYPE *ResolveQueryData )(1680ID3D12VideoDecodeCommandList * This,1681_In_ ID3D12QueryHeap *pQueryHeap,1682_In_ D3D12_QUERY_TYPE Type,1683_In_ UINT StartIndex,1684_In_ UINT NumQueries,1685_In_ ID3D12Resource *pDestinationBuffer,1686_In_ UINT64 AlignedDestinationBufferOffset);16871688DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)1689void ( STDMETHODCALLTYPE *SetPredication )(1690ID3D12VideoDecodeCommandList * This,1691_In_opt_ ID3D12Resource *pBuffer,1692_In_ UINT64 AlignedBufferOffset,1693_In_ D3D12_PREDICATION_OP Operation);16941695DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)1696void ( STDMETHODCALLTYPE *SetMarker )(1697ID3D12VideoDecodeCommandList * This,1698UINT Metadata,1699_In_reads_bytes_opt_(Size) const void *pData,1700UINT Size);17011702DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)1703void ( STDMETHODCALLTYPE *BeginEvent )(1704ID3D12VideoDecodeCommandList * This,1705UINT Metadata,1706_In_reads_bytes_opt_(Size) const void *pData,1707UINT Size);17081709DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)1710void ( STDMETHODCALLTYPE *EndEvent )(1711ID3D12VideoDecodeCommandList * This);17121713DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)1714void ( STDMETHODCALLTYPE *DecodeFrame )(1715ID3D12VideoDecodeCommandList * This,1716_In_ ID3D12VideoDecoder *pDecoder,1717_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1718_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);17191720DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)1721void ( STDMETHODCALLTYPE *WriteBufferImmediate )(1722ID3D12VideoDecodeCommandList * This,1723UINT Count,1724_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1725_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);17261727END_INTERFACE1728} ID3D12VideoDecodeCommandListVtbl;17291730interface ID3D12VideoDecodeCommandList1731{1732CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl;1733};1734173517361737#ifdef COBJMACROS173817391740#define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \1741( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )17421743#define ID3D12VideoDecodeCommandList_AddRef(This) \1744( (This)->lpVtbl -> AddRef(This) )17451746#define ID3D12VideoDecodeCommandList_Release(This) \1747( (This)->lpVtbl -> Release(This) )174817491750#define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \1751( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )17521753#define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \1754( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )17551756#define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \1757( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )17581759#define ID3D12VideoDecodeCommandList_SetName(This,Name) \1760( (This)->lpVtbl -> SetName(This,Name) )176117621763#define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \1764( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )176517661767#define ID3D12VideoDecodeCommandList_GetType(This) \1768( (This)->lpVtbl -> GetType(This) )176917701771#define ID3D12VideoDecodeCommandList_Close(This) \1772( (This)->lpVtbl -> Close(This) )17731774#define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \1775( (This)->lpVtbl -> Reset(This,pAllocator) )17761777#define ID3D12VideoDecodeCommandList_ClearState(This) \1778( (This)->lpVtbl -> ClearState(This) )17791780#define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \1781( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )17821783#define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \1784( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )17851786#define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \1787( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )17881789#define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \1790( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )17911792#define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \1793( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )17941795#define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \1796( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )17971798#define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \1799( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )18001801#define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \1802( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )18031804#define ID3D12VideoDecodeCommandList_EndEvent(This) \1805( (This)->lpVtbl -> EndEvent(This) )18061807#define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \1808( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )18091810#define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \1811( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )18121813#endif /* COBJMACROS */181418151816#endif /* C style interface */18171818181918201821#endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */182218231824#ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__1825#define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__18261827/* interface ID3D12VideoProcessCommandList */1828/* [unique][local][object][uuid] */182918301831EXTERN_C const IID IID_ID3D12VideoProcessCommandList;18321833#if defined(__cplusplus) && !defined(CINTERFACE)18341835MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209")1836ID3D12VideoProcessCommandList : public ID3D12CommandList1837{1838public:1839virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;18401841virtual HRESULT STDMETHODCALLTYPE Reset(1842_In_ ID3D12CommandAllocator *pAllocator) = 0;18431844virtual void STDMETHODCALLTYPE ClearState( void) = 0;18451846virtual void STDMETHODCALLTYPE ResourceBarrier(1847_In_ UINT NumBarriers,1848_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;18491850virtual void STDMETHODCALLTYPE DiscardResource(1851_In_ ID3D12Resource *pResource,1852_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;18531854virtual void STDMETHODCALLTYPE BeginQuery(1855_In_ ID3D12QueryHeap *pQueryHeap,1856_In_ D3D12_QUERY_TYPE Type,1857_In_ UINT Index) = 0;18581859virtual void STDMETHODCALLTYPE EndQuery(1860_In_ ID3D12QueryHeap *pQueryHeap,1861_In_ D3D12_QUERY_TYPE Type,1862_In_ UINT Index) = 0;18631864virtual void STDMETHODCALLTYPE ResolveQueryData(1865_In_ ID3D12QueryHeap *pQueryHeap,1866_In_ D3D12_QUERY_TYPE Type,1867_In_ UINT StartIndex,1868_In_ UINT NumQueries,1869_In_ ID3D12Resource *pDestinationBuffer,1870_In_ UINT64 AlignedDestinationBufferOffset) = 0;18711872virtual void STDMETHODCALLTYPE SetPredication(1873_In_opt_ ID3D12Resource *pBuffer,1874_In_ UINT64 AlignedBufferOffset,1875_In_ D3D12_PREDICATION_OP Operation) = 0;18761877virtual void STDMETHODCALLTYPE SetMarker(1878UINT Metadata,1879_In_reads_bytes_opt_(Size) const void *pData,1880UINT Size) = 0;18811882virtual void STDMETHODCALLTYPE BeginEvent(1883UINT Metadata,1884_In_reads_bytes_opt_(Size) const void *pData,1885UINT Size) = 0;18861887virtual void STDMETHODCALLTYPE EndEvent( void) = 0;18881889virtual void STDMETHODCALLTYPE ProcessFrames(1890_In_ ID3D12VideoProcessor *pVideoProcessor,1891_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,1892UINT NumInputStreams,1893_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;18941895virtual void STDMETHODCALLTYPE WriteBufferImmediate(1896UINT Count,1897_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,1898_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;18991900};190119021903#else /* C style interface */19041905typedef struct ID3D12VideoProcessCommandListVtbl1906{1907BEGIN_INTERFACE19081909DECLSPEC_XFGVIRT(IUnknown, QueryInterface)1910HRESULT ( STDMETHODCALLTYPE *QueryInterface )(1911ID3D12VideoProcessCommandList * This,1912REFIID riid,1913_COM_Outptr_ void **ppvObject);19141915DECLSPEC_XFGVIRT(IUnknown, AddRef)1916ULONG ( STDMETHODCALLTYPE *AddRef )(1917ID3D12VideoProcessCommandList * This);19181919DECLSPEC_XFGVIRT(IUnknown, Release)1920ULONG ( STDMETHODCALLTYPE *Release )(1921ID3D12VideoProcessCommandList * This);19221923DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)1924HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(1925ID3D12VideoProcessCommandList * This,1926_In_ REFGUID guid,1927_Inout_ UINT *pDataSize,1928_Out_writes_bytes_opt_( *pDataSize ) void *pData);19291930DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)1931HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(1932ID3D12VideoProcessCommandList * This,1933_In_ REFGUID guid,1934_In_ UINT DataSize,1935_In_reads_bytes_opt_( DataSize ) const void *pData);19361937DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)1938HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(1939ID3D12VideoProcessCommandList * This,1940_In_ REFGUID guid,1941_In_opt_ const IUnknown *pData);19421943DECLSPEC_XFGVIRT(ID3D12Object, SetName)1944HRESULT ( STDMETHODCALLTYPE *SetName )(1945ID3D12VideoProcessCommandList * This,1946_In_z_ LPCWSTR Name);19471948DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)1949HRESULT ( STDMETHODCALLTYPE *GetDevice )(1950ID3D12VideoProcessCommandList * This,1951REFIID riid,1952_COM_Outptr_opt_ void **ppvDevice);19531954DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)1955D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(1956ID3D12VideoProcessCommandList * This);19571958DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)1959HRESULT ( STDMETHODCALLTYPE *Close )(1960ID3D12VideoProcessCommandList * This);19611962DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)1963HRESULT ( STDMETHODCALLTYPE *Reset )(1964ID3D12VideoProcessCommandList * This,1965_In_ ID3D12CommandAllocator *pAllocator);19661967DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)1968void ( STDMETHODCALLTYPE *ClearState )(1969ID3D12VideoProcessCommandList * This);19701971DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)1972void ( STDMETHODCALLTYPE *ResourceBarrier )(1973ID3D12VideoProcessCommandList * This,1974_In_ UINT NumBarriers,1975_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);19761977DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)1978void ( STDMETHODCALLTYPE *DiscardResource )(1979ID3D12VideoProcessCommandList * This,1980_In_ ID3D12Resource *pResource,1981_In_opt_ const D3D12_DISCARD_REGION *pRegion);19821983DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)1984void ( STDMETHODCALLTYPE *BeginQuery )(1985ID3D12VideoProcessCommandList * This,1986_In_ ID3D12QueryHeap *pQueryHeap,1987_In_ D3D12_QUERY_TYPE Type,1988_In_ UINT Index);19891990DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)1991void ( STDMETHODCALLTYPE *EndQuery )(1992ID3D12VideoProcessCommandList * This,1993_In_ ID3D12QueryHeap *pQueryHeap,1994_In_ D3D12_QUERY_TYPE Type,1995_In_ UINT Index);19961997DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)1998void ( STDMETHODCALLTYPE *ResolveQueryData )(1999ID3D12VideoProcessCommandList * This,2000_In_ ID3D12QueryHeap *pQueryHeap,2001_In_ D3D12_QUERY_TYPE Type,2002_In_ UINT StartIndex,2003_In_ UINT NumQueries,2004_In_ ID3D12Resource *pDestinationBuffer,2005_In_ UINT64 AlignedDestinationBufferOffset);20062007DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)2008void ( STDMETHODCALLTYPE *SetPredication )(2009ID3D12VideoProcessCommandList * This,2010_In_opt_ ID3D12Resource *pBuffer,2011_In_ UINT64 AlignedBufferOffset,2012_In_ D3D12_PREDICATION_OP Operation);20132014DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)2015void ( STDMETHODCALLTYPE *SetMarker )(2016ID3D12VideoProcessCommandList * This,2017UINT Metadata,2018_In_reads_bytes_opt_(Size) const void *pData,2019UINT Size);20202021DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)2022void ( STDMETHODCALLTYPE *BeginEvent )(2023ID3D12VideoProcessCommandList * This,2024UINT Metadata,2025_In_reads_bytes_opt_(Size) const void *pData,2026UINT Size);20272028DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)2029void ( STDMETHODCALLTYPE *EndEvent )(2030ID3D12VideoProcessCommandList * This);20312032DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)2033void ( STDMETHODCALLTYPE *ProcessFrames )(2034ID3D12VideoProcessCommandList * This,2035_In_ ID3D12VideoProcessor *pVideoProcessor,2036_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2037UINT NumInputStreams,2038_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);20392040DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)2041void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2042ID3D12VideoProcessCommandList * This,2043UINT Count,2044_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2045_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);20462047END_INTERFACE2048} ID3D12VideoProcessCommandListVtbl;20492050interface ID3D12VideoProcessCommandList2051{2052CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl;2053};2054205520562057#ifdef COBJMACROS205820592060#define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \2061( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )20622063#define ID3D12VideoProcessCommandList_AddRef(This) \2064( (This)->lpVtbl -> AddRef(This) )20652066#define ID3D12VideoProcessCommandList_Release(This) \2067( (This)->lpVtbl -> Release(This) )206820692070#define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \2071( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )20722073#define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \2074( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )20752076#define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \2077( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )20782079#define ID3D12VideoProcessCommandList_SetName(This,Name) \2080( (This)->lpVtbl -> SetName(This,Name) )208120822083#define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \2084( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )208520862087#define ID3D12VideoProcessCommandList_GetType(This) \2088( (This)->lpVtbl -> GetType(This) )208920902091#define ID3D12VideoProcessCommandList_Close(This) \2092( (This)->lpVtbl -> Close(This) )20932094#define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \2095( (This)->lpVtbl -> Reset(This,pAllocator) )20962097#define ID3D12VideoProcessCommandList_ClearState(This) \2098( (This)->lpVtbl -> ClearState(This) )20992100#define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \2101( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )21022103#define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \2104( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )21052106#define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \2107( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )21082109#define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \2110( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )21112112#define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2113( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )21142115#define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2116( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )21172118#define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \2119( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )21202121#define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \2122( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )21232124#define ID3D12VideoProcessCommandList_EndEvent(This) \2125( (This)->lpVtbl -> EndEvent(This) )21262127#define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2128( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )21292130#define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \2131( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )21322133#endif /* COBJMACROS */213421352136#endif /* C style interface */21372138213921402141#endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */214221432144/* interface __MIDL_itf_d3d12video_0000_0006 */2145/* [local] */21462147typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM2148{2149UINT64 Offset;2150ID3D12Resource *pBuffer;2151} D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM;21522153typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS12154{2155BOOL Enable;2156ID3D12Resource *pReferenceTexture2D;2157UINT ReferenceSubresource;2158DXGI_COLOR_SPACE_TYPE OutputColorSpace;2159DXGI_COLOR_SPACE_TYPE DecodeColorSpace;2160UINT OutputWidth;2161UINT OutputHeight;2162} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1;21632164typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS12165{2166ID3D12Resource *pOutputTexture2D;2167UINT OutputSubresource;2168D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments;2169D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ];2170} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;2171217221732174extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec;2175extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec;21762177#ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__2178#define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__21792180/* interface ID3D12VideoDecodeCommandList1 */2181/* [unique][local][object][uuid] */218221832184EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1;21852186#if defined(__cplusplus) && !defined(CINTERFACE)21872188MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472")2189ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList2190{2191public:2192virtual void STDMETHODCALLTYPE DecodeFrame1(2193_In_ ID3D12VideoDecoder *pDecoder,2194_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,2195_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;21962197};219821992200#else /* C style interface */22012202typedef struct ID3D12VideoDecodeCommandList1Vtbl2203{2204BEGIN_INTERFACE22052206DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2207HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2208ID3D12VideoDecodeCommandList1 * This,2209REFIID riid,2210_COM_Outptr_ void **ppvObject);22112212DECLSPEC_XFGVIRT(IUnknown, AddRef)2213ULONG ( STDMETHODCALLTYPE *AddRef )(2214ID3D12VideoDecodeCommandList1 * This);22152216DECLSPEC_XFGVIRT(IUnknown, Release)2217ULONG ( STDMETHODCALLTYPE *Release )(2218ID3D12VideoDecodeCommandList1 * This);22192220DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2221HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2222ID3D12VideoDecodeCommandList1 * This,2223_In_ REFGUID guid,2224_Inout_ UINT *pDataSize,2225_Out_writes_bytes_opt_( *pDataSize ) void *pData);22262227DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2228HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2229ID3D12VideoDecodeCommandList1 * This,2230_In_ REFGUID guid,2231_In_ UINT DataSize,2232_In_reads_bytes_opt_( DataSize ) const void *pData);22332234DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2235HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2236ID3D12VideoDecodeCommandList1 * This,2237_In_ REFGUID guid,2238_In_opt_ const IUnknown *pData);22392240DECLSPEC_XFGVIRT(ID3D12Object, SetName)2241HRESULT ( STDMETHODCALLTYPE *SetName )(2242ID3D12VideoDecodeCommandList1 * This,2243_In_z_ LPCWSTR Name);22442245DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2246HRESULT ( STDMETHODCALLTYPE *GetDevice )(2247ID3D12VideoDecodeCommandList1 * This,2248REFIID riid,2249_COM_Outptr_opt_ void **ppvDevice);22502251DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)2252D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(2253ID3D12VideoDecodeCommandList1 * This);22542255DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)2256HRESULT ( STDMETHODCALLTYPE *Close )(2257ID3D12VideoDecodeCommandList1 * This);22582259DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)2260HRESULT ( STDMETHODCALLTYPE *Reset )(2261ID3D12VideoDecodeCommandList1 * This,2262_In_ ID3D12CommandAllocator *pAllocator);22632264DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)2265void ( STDMETHODCALLTYPE *ClearState )(2266ID3D12VideoDecodeCommandList1 * This);22672268DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)2269void ( STDMETHODCALLTYPE *ResourceBarrier )(2270ID3D12VideoDecodeCommandList1 * This,2271_In_ UINT NumBarriers,2272_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);22732274DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)2275void ( STDMETHODCALLTYPE *DiscardResource )(2276ID3D12VideoDecodeCommandList1 * This,2277_In_ ID3D12Resource *pResource,2278_In_opt_ const D3D12_DISCARD_REGION *pRegion);22792280DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)2281void ( STDMETHODCALLTYPE *BeginQuery )(2282ID3D12VideoDecodeCommandList1 * This,2283_In_ ID3D12QueryHeap *pQueryHeap,2284_In_ D3D12_QUERY_TYPE Type,2285_In_ UINT Index);22862287DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)2288void ( STDMETHODCALLTYPE *EndQuery )(2289ID3D12VideoDecodeCommandList1 * This,2290_In_ ID3D12QueryHeap *pQueryHeap,2291_In_ D3D12_QUERY_TYPE Type,2292_In_ UINT Index);22932294DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)2295void ( STDMETHODCALLTYPE *ResolveQueryData )(2296ID3D12VideoDecodeCommandList1 * This,2297_In_ ID3D12QueryHeap *pQueryHeap,2298_In_ D3D12_QUERY_TYPE Type,2299_In_ UINT StartIndex,2300_In_ UINT NumQueries,2301_In_ ID3D12Resource *pDestinationBuffer,2302_In_ UINT64 AlignedDestinationBufferOffset);23032304DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)2305void ( STDMETHODCALLTYPE *SetPredication )(2306ID3D12VideoDecodeCommandList1 * This,2307_In_opt_ ID3D12Resource *pBuffer,2308_In_ UINT64 AlignedBufferOffset,2309_In_ D3D12_PREDICATION_OP Operation);23102311DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)2312void ( STDMETHODCALLTYPE *SetMarker )(2313ID3D12VideoDecodeCommandList1 * This,2314UINT Metadata,2315_In_reads_bytes_opt_(Size) const void *pData,2316UINT Size);23172318DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)2319void ( STDMETHODCALLTYPE *BeginEvent )(2320ID3D12VideoDecodeCommandList1 * This,2321UINT Metadata,2322_In_reads_bytes_opt_(Size) const void *pData,2323UINT Size);23242325DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)2326void ( STDMETHODCALLTYPE *EndEvent )(2327ID3D12VideoDecodeCommandList1 * This);23282329DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)2330void ( STDMETHODCALLTYPE *DecodeFrame )(2331ID3D12VideoDecodeCommandList1 * This,2332_In_ ID3D12VideoDecoder *pDecoder,2333_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2334_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);23352336DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)2337void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2338ID3D12VideoDecodeCommandList1 * This,2339UINT Count,2340_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2341_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);23422343DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)2344void ( STDMETHODCALLTYPE *DecodeFrame1 )(2345ID3D12VideoDecodeCommandList1 * This,2346_In_ ID3D12VideoDecoder *pDecoder,2347_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,2348_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);23492350END_INTERFACE2351} ID3D12VideoDecodeCommandList1Vtbl;23522353interface ID3D12VideoDecodeCommandList12354{2355CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl;2356};2357235823592360#ifdef COBJMACROS236123622363#define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \2364( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )23652366#define ID3D12VideoDecodeCommandList1_AddRef(This) \2367( (This)->lpVtbl -> AddRef(This) )23682369#define ID3D12VideoDecodeCommandList1_Release(This) \2370( (This)->lpVtbl -> Release(This) )237123722373#define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \2374( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )23752376#define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \2377( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )23782379#define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \2380( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )23812382#define ID3D12VideoDecodeCommandList1_SetName(This,Name) \2383( (This)->lpVtbl -> SetName(This,Name) )238423852386#define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \2387( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )238823892390#define ID3D12VideoDecodeCommandList1_GetType(This) \2391( (This)->lpVtbl -> GetType(This) )239223932394#define ID3D12VideoDecodeCommandList1_Close(This) \2395( (This)->lpVtbl -> Close(This) )23962397#define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \2398( (This)->lpVtbl -> Reset(This,pAllocator) )23992400#define ID3D12VideoDecodeCommandList1_ClearState(This) \2401( (This)->lpVtbl -> ClearState(This) )24022403#define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \2404( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )24052406#define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \2407( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )24082409#define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \2410( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )24112412#define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \2413( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )24142415#define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2416( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )24172418#define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2419( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )24202421#define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \2422( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )24232424#define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \2425( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )24262427#define ID3D12VideoDecodeCommandList1_EndEvent(This) \2428( (This)->lpVtbl -> EndEvent(This) )24292430#define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \2431( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )24322433#define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \2434( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )243524362437#define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \2438( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )24392440#endif /* COBJMACROS */244124422443#endif /* C style interface */24442445244624472448#endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */244924502451/* interface __MIDL_itf_d3d12video_0000_0007 */2452/* [local] */24532454typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS12455{2456D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];2457D3D12_VIDEO_PROCESS_TRANSFORM Transform;2458D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;2459D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;2460INT FilterLevels[ 32 ];2461D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;2462D3D12_VIDEO_FIELD_TYPE FieldType;2463} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1;2464246524662467extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec;2468extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec;24692470#ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__2471#define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__24722473/* interface ID3D12VideoProcessCommandList1 */2474/* [unique][local][object][uuid] */247524762477EXTERN_C const IID IID_ID3D12VideoProcessCommandList1;24782479#if defined(__cplusplus) && !defined(CINTERFACE)24802481MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267")2482ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList2483{2484public:2485virtual void STDMETHODCALLTYPE ProcessFrames1(2486_In_ ID3D12VideoProcessor *pVideoProcessor,2487_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2488UINT NumInputStreams,2489_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0;24902491};249224932494#else /* C style interface */24952496typedef struct ID3D12VideoProcessCommandList1Vtbl2497{2498BEGIN_INTERFACE24992500DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2501HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2502ID3D12VideoProcessCommandList1 * This,2503REFIID riid,2504_COM_Outptr_ void **ppvObject);25052506DECLSPEC_XFGVIRT(IUnknown, AddRef)2507ULONG ( STDMETHODCALLTYPE *AddRef )(2508ID3D12VideoProcessCommandList1 * This);25092510DECLSPEC_XFGVIRT(IUnknown, Release)2511ULONG ( STDMETHODCALLTYPE *Release )(2512ID3D12VideoProcessCommandList1 * This);25132514DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2515HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2516ID3D12VideoProcessCommandList1 * This,2517_In_ REFGUID guid,2518_Inout_ UINT *pDataSize,2519_Out_writes_bytes_opt_( *pDataSize ) void *pData);25202521DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2522HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2523ID3D12VideoProcessCommandList1 * This,2524_In_ REFGUID guid,2525_In_ UINT DataSize,2526_In_reads_bytes_opt_( DataSize ) const void *pData);25272528DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2529HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2530ID3D12VideoProcessCommandList1 * This,2531_In_ REFGUID guid,2532_In_opt_ const IUnknown *pData);25332534DECLSPEC_XFGVIRT(ID3D12Object, SetName)2535HRESULT ( STDMETHODCALLTYPE *SetName )(2536ID3D12VideoProcessCommandList1 * This,2537_In_z_ LPCWSTR Name);25382539DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2540HRESULT ( STDMETHODCALLTYPE *GetDevice )(2541ID3D12VideoProcessCommandList1 * This,2542REFIID riid,2543_COM_Outptr_opt_ void **ppvDevice);25442545DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)2546D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(2547ID3D12VideoProcessCommandList1 * This);25482549DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)2550HRESULT ( STDMETHODCALLTYPE *Close )(2551ID3D12VideoProcessCommandList1 * This);25522553DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)2554HRESULT ( STDMETHODCALLTYPE *Reset )(2555ID3D12VideoProcessCommandList1 * This,2556_In_ ID3D12CommandAllocator *pAllocator);25572558DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)2559void ( STDMETHODCALLTYPE *ClearState )(2560ID3D12VideoProcessCommandList1 * This);25612562DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)2563void ( STDMETHODCALLTYPE *ResourceBarrier )(2564ID3D12VideoProcessCommandList1 * This,2565_In_ UINT NumBarriers,2566_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);25672568DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)2569void ( STDMETHODCALLTYPE *DiscardResource )(2570ID3D12VideoProcessCommandList1 * This,2571_In_ ID3D12Resource *pResource,2572_In_opt_ const D3D12_DISCARD_REGION *pRegion);25732574DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)2575void ( STDMETHODCALLTYPE *BeginQuery )(2576ID3D12VideoProcessCommandList1 * This,2577_In_ ID3D12QueryHeap *pQueryHeap,2578_In_ D3D12_QUERY_TYPE Type,2579_In_ UINT Index);25802581DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)2582void ( STDMETHODCALLTYPE *EndQuery )(2583ID3D12VideoProcessCommandList1 * This,2584_In_ ID3D12QueryHeap *pQueryHeap,2585_In_ D3D12_QUERY_TYPE Type,2586_In_ UINT Index);25872588DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)2589void ( STDMETHODCALLTYPE *ResolveQueryData )(2590ID3D12VideoProcessCommandList1 * This,2591_In_ ID3D12QueryHeap *pQueryHeap,2592_In_ D3D12_QUERY_TYPE Type,2593_In_ UINT StartIndex,2594_In_ UINT NumQueries,2595_In_ ID3D12Resource *pDestinationBuffer,2596_In_ UINT64 AlignedDestinationBufferOffset);25972598DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)2599void ( STDMETHODCALLTYPE *SetPredication )(2600ID3D12VideoProcessCommandList1 * This,2601_In_opt_ ID3D12Resource *pBuffer,2602_In_ UINT64 AlignedBufferOffset,2603_In_ D3D12_PREDICATION_OP Operation);26042605DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)2606void ( STDMETHODCALLTYPE *SetMarker )(2607ID3D12VideoProcessCommandList1 * This,2608UINT Metadata,2609_In_reads_bytes_opt_(Size) const void *pData,2610UINT Size);26112612DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)2613void ( STDMETHODCALLTYPE *BeginEvent )(2614ID3D12VideoProcessCommandList1 * This,2615UINT Metadata,2616_In_reads_bytes_opt_(Size) const void *pData,2617UINT Size);26182619DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)2620void ( STDMETHODCALLTYPE *EndEvent )(2621ID3D12VideoProcessCommandList1 * This);26222623DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)2624void ( STDMETHODCALLTYPE *ProcessFrames )(2625ID3D12VideoProcessCommandList1 * This,2626_In_ ID3D12VideoProcessor *pVideoProcessor,2627_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2628UINT NumInputStreams,2629_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);26302631DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)2632void ( STDMETHODCALLTYPE *WriteBufferImmediate )(2633ID3D12VideoProcessCommandList1 * This,2634UINT Count,2635_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,2636_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);26372638DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)2639void ( STDMETHODCALLTYPE *ProcessFrames1 )(2640ID3D12VideoProcessCommandList1 * This,2641_In_ ID3D12VideoProcessor *pVideoProcessor,2642_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,2643UINT NumInputStreams,2644_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);26452646END_INTERFACE2647} ID3D12VideoProcessCommandList1Vtbl;26482649interface ID3D12VideoProcessCommandList12650{2651CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl;2652};2653265426552656#ifdef COBJMACROS265726582659#define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \2660( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )26612662#define ID3D12VideoProcessCommandList1_AddRef(This) \2663( (This)->lpVtbl -> AddRef(This) )26642665#define ID3D12VideoProcessCommandList1_Release(This) \2666( (This)->lpVtbl -> Release(This) )266726682669#define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \2670( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )26712672#define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \2673( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )26742675#define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \2676( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )26772678#define ID3D12VideoProcessCommandList1_SetName(This,Name) \2679( (This)->lpVtbl -> SetName(This,Name) )268026812682#define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \2683( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )268426852686#define ID3D12VideoProcessCommandList1_GetType(This) \2687( (This)->lpVtbl -> GetType(This) )268826892690#define ID3D12VideoProcessCommandList1_Close(This) \2691( (This)->lpVtbl -> Close(This) )26922693#define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \2694( (This)->lpVtbl -> Reset(This,pAllocator) )26952696#define ID3D12VideoProcessCommandList1_ClearState(This) \2697( (This)->lpVtbl -> ClearState(This) )26982699#define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \2700( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )27012702#define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \2703( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )27042705#define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \2706( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )27072708#define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \2709( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )27102711#define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \2712( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )27132714#define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \2715( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )27162717#define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \2718( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )27192720#define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \2721( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )27222723#define ID3D12VideoProcessCommandList1_EndEvent(This) \2724( (This)->lpVtbl -> EndEvent(This) )27252726#define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2727( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )27282729#define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \2730( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )273127322733#define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \2734( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )27352736#endif /* COBJMACROS */273727382739#endif /* C style interface */27402741274227432744#endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */274527462747/* interface __MIDL_itf_d3d12video_0000_0008 */2748/* [local] */27492750typedef2751enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE2752{2753D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0,2754D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 12755} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE;27562757typedef2758enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS2759{2760D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0,2761D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) ,2762D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 )2763} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS;27642765DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS );2766typedef2767enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION2768{2769D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 02770} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION;27712772typedef2773enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS2774{2775D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0,2776D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL )2777} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS;27782779DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS );2780typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT2781{2782UINT NodeIndex;2783BOOL VideoDecodeSupport;2784BOOL VideoProcessSupport;2785BOOL VideoEncodeSupport;2786} D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT;27872788typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR2789{2790UINT NodeIndex;2791DXGI_FORMAT InputFormat;2792D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags;2793D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags;2794D3D12_VIDEO_SIZE_RANGE SizeRange;2795} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR;27962797typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE2798{2799UINT NodeIndex;2800DXGI_FORMAT InputFormat;2801D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;2802D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;2803D3D12_VIDEO_SIZE_RANGE SizeRange;2804BOOL Protected;2805UINT64 MotionVectorHeapMemoryPoolL0Size;2806UINT64 MotionVectorHeapMemoryPoolL1Size;2807UINT64 MotionEstimatorMemoryPoolL0Size;2808UINT64 MotionEstimatorMemoryPoolL1Size;2809} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE;28102811typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC2812{2813UINT NodeMask;2814DXGI_FORMAT InputFormat;2815D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;2816D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;2817D3D12_VIDEO_SIZE_RANGE SizeRange;2818} D3D12_VIDEO_MOTION_ESTIMATOR_DESC;2819282028212822extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec;2823extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec;28242825#ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__2826#define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__28272828/* interface ID3D12VideoMotionEstimator */2829/* [unique][local][object][uuid] */283028312832EXTERN_C const IID IID_ID3D12VideoMotionEstimator;28332834#if defined(__cplusplus) && !defined(CINTERFACE)28352836MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8")2837ID3D12VideoMotionEstimator : public ID3D12Pageable2838{2839public:2840#if defined(_MSC_VER) || !defined(_WIN32)2841virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0;2842#else2843virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC *STDMETHODCALLTYPE GetDesc(2844D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal) = 0;2845#endif28462847virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(2848REFIID riid,2849_COM_Outptr_opt_ void **ppProtectedSession) = 0;28502851};285228532854#else /* C style interface */28552856typedef struct ID3D12VideoMotionEstimatorVtbl2857{2858BEGIN_INTERFACE28592860DECLSPEC_XFGVIRT(IUnknown, QueryInterface)2861HRESULT ( STDMETHODCALLTYPE *QueryInterface )(2862ID3D12VideoMotionEstimator * This,2863REFIID riid,2864_COM_Outptr_ void **ppvObject);28652866DECLSPEC_XFGVIRT(IUnknown, AddRef)2867ULONG ( STDMETHODCALLTYPE *AddRef )(2868ID3D12VideoMotionEstimator * This);28692870DECLSPEC_XFGVIRT(IUnknown, Release)2871ULONG ( STDMETHODCALLTYPE *Release )(2872ID3D12VideoMotionEstimator * This);28732874DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)2875HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(2876ID3D12VideoMotionEstimator * This,2877_In_ REFGUID guid,2878_Inout_ UINT *pDataSize,2879_Out_writes_bytes_opt_( *pDataSize ) void *pData);28802881DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)2882HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(2883ID3D12VideoMotionEstimator * This,2884_In_ REFGUID guid,2885_In_ UINT DataSize,2886_In_reads_bytes_opt_( DataSize ) const void *pData);28872888DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)2889HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(2890ID3D12VideoMotionEstimator * This,2891_In_ REFGUID guid,2892_In_opt_ const IUnknown *pData);28932894DECLSPEC_XFGVIRT(ID3D12Object, SetName)2895HRESULT ( STDMETHODCALLTYPE *SetName )(2896ID3D12VideoMotionEstimator * This,2897_In_z_ LPCWSTR Name);28982899DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)2900HRESULT ( STDMETHODCALLTYPE *GetDevice )(2901ID3D12VideoMotionEstimator * This,2902REFIID riid,2903_COM_Outptr_opt_ void **ppvDevice);29042905DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc)2906#if !defined(_WIN32)2907D3D12_VIDEO_MOTION_ESTIMATOR_DESC ( STDMETHODCALLTYPE *GetDesc )(2908ID3D12VideoMotionEstimator * This);29092910#else2911D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )(2912ID3D12VideoMotionEstimator * This,2913D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal);29142915#endif29162917DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession)2918HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(2919ID3D12VideoMotionEstimator * This,2920REFIID riid,2921_COM_Outptr_opt_ void **ppProtectedSession);29222923END_INTERFACE2924} ID3D12VideoMotionEstimatorVtbl;29252926interface ID3D12VideoMotionEstimator2927{2928CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl;2929};2930293129322933#ifdef COBJMACROS293429352936#define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \2937( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )29382939#define ID3D12VideoMotionEstimator_AddRef(This) \2940( (This)->lpVtbl -> AddRef(This) )29412942#define ID3D12VideoMotionEstimator_Release(This) \2943( (This)->lpVtbl -> Release(This) )294429452946#define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \2947( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )29482949#define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \2950( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )29512952#define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \2953( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )29542955#define ID3D12VideoMotionEstimator_SetName(This,Name) \2956( (This)->lpVtbl -> SetName(This,Name) )295729582959#define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \2960( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )296129622963#if !defined(_WIN32)29642965#define ID3D12VideoMotionEstimator_GetDesc(This) \2966( (This)->lpVtbl -> GetDesc(This) )2967#else2968#define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \2969( (This)->lpVtbl -> GetDesc(This,RetVal) )2970#endif29712972#define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \2973( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )29742975#endif /* COBJMACROS */297629772978#endif /* C style interface */29792980298129822983#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */298429852986/* interface __MIDL_itf_d3d12video_0000_0009 */2987/* [local] */29882989typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC2990{2991UINT NodeMask;2992DXGI_FORMAT InputFormat;2993D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;2994D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;2995D3D12_VIDEO_SIZE_RANGE SizeRange;2996} D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC;2997299829993000extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec;3001extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec;30023003#ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__3004#define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__30053006/* interface ID3D12VideoMotionVectorHeap */3007/* [unique][local][object][uuid] */300830093010EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap;30113012#if defined(__cplusplus) && !defined(CINTERFACE)30133014MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505")3015ID3D12VideoMotionVectorHeap : public ID3D12Pageable3016{3017public:3018#if defined(_MSC_VER) || !defined(_WIN32)3019virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;3020#else3021virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(3022D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal) = 0;3023#endif30243025virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(3026REFIID riid,3027_COM_Outptr_opt_ void **ppProtectedSession) = 0;30283029};303030313032#else /* C style interface */30333034typedef struct ID3D12VideoMotionVectorHeapVtbl3035{3036BEGIN_INTERFACE30373038DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3039HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3040ID3D12VideoMotionVectorHeap * This,3041REFIID riid,3042_COM_Outptr_ void **ppvObject);30433044DECLSPEC_XFGVIRT(IUnknown, AddRef)3045ULONG ( STDMETHODCALLTYPE *AddRef )(3046ID3D12VideoMotionVectorHeap * This);30473048DECLSPEC_XFGVIRT(IUnknown, Release)3049ULONG ( STDMETHODCALLTYPE *Release )(3050ID3D12VideoMotionVectorHeap * This);30513052DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3053HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3054ID3D12VideoMotionVectorHeap * This,3055_In_ REFGUID guid,3056_Inout_ UINT *pDataSize,3057_Out_writes_bytes_opt_( *pDataSize ) void *pData);30583059DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3060HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3061ID3D12VideoMotionVectorHeap * This,3062_In_ REFGUID guid,3063_In_ UINT DataSize,3064_In_reads_bytes_opt_( DataSize ) const void *pData);30653066DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3067HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3068ID3D12VideoMotionVectorHeap * This,3069_In_ REFGUID guid,3070_In_opt_ const IUnknown *pData);30713072DECLSPEC_XFGVIRT(ID3D12Object, SetName)3073HRESULT ( STDMETHODCALLTYPE *SetName )(3074ID3D12VideoMotionVectorHeap * This,3075_In_z_ LPCWSTR Name);30763077DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3078HRESULT ( STDMETHODCALLTYPE *GetDevice )(3079ID3D12VideoMotionVectorHeap * This,3080REFIID riid,3081_COM_Outptr_opt_ void **ppvDevice);30823083DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc)3084#if !defined(_WIN32)3085D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(3086ID3D12VideoMotionVectorHeap * This);30873088#else3089D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(3090ID3D12VideoMotionVectorHeap * This,3091D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal);30923093#endif30943095DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession)3096HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(3097ID3D12VideoMotionVectorHeap * This,3098REFIID riid,3099_COM_Outptr_opt_ void **ppProtectedSession);31003101END_INTERFACE3102} ID3D12VideoMotionVectorHeapVtbl;31033104interface ID3D12VideoMotionVectorHeap3105{3106CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl;3107};3108310931103111#ifdef COBJMACROS311231133114#define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \3115( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )31163117#define ID3D12VideoMotionVectorHeap_AddRef(This) \3118( (This)->lpVtbl -> AddRef(This) )31193120#define ID3D12VideoMotionVectorHeap_Release(This) \3121( (This)->lpVtbl -> Release(This) )312231233124#define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \3125( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )31263127#define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \3128( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )31293130#define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \3131( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )31323133#define ID3D12VideoMotionVectorHeap_SetName(This,Name) \3134( (This)->lpVtbl -> SetName(This,Name) )313531363137#define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \3138( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )313931403141#if !defined(_WIN32)31423143#define ID3D12VideoMotionVectorHeap_GetDesc(This) \3144( (This)->lpVtbl -> GetDesc(This) )3145#else3146#define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \3147( (This)->lpVtbl -> GetDesc(This,RetVal) )3148#endif31493150#define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \3151( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )31523153#endif /* COBJMACROS */315431553156#endif /* C style interface */31573158315931603161#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */316231633164#ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__3165#define __ID3D12VideoDevice1_INTERFACE_DEFINED__31663167/* interface ID3D12VideoDevice1 */3168/* [unique][local][object][uuid] */316931703171EXTERN_C const IID IID_ID3D12VideoDevice1;31723173#if defined(__cplusplus) && !defined(CINTERFACE)31743175MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB")3176ID3D12VideoDevice1 : public ID3D12VideoDevice3177{3178public:3179virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator(3180_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,3181_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3182_In_ REFIID riid,3183_COM_Outptr_ void **ppVideoMotionEstimator) = 0;31843185virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap(3186_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,3187_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3188_In_ REFIID riid,3189_COM_Outptr_ void **ppVideoMotionVectorHeap) = 0;31903191};319231933194#else /* C style interface */31953196typedef struct ID3D12VideoDevice1Vtbl3197{3198BEGIN_INTERFACE31993200DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3201HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3202ID3D12VideoDevice1 * This,3203REFIID riid,3204_COM_Outptr_ void **ppvObject);32053206DECLSPEC_XFGVIRT(IUnknown, AddRef)3207ULONG ( STDMETHODCALLTYPE *AddRef )(3208ID3D12VideoDevice1 * This);32093210DECLSPEC_XFGVIRT(IUnknown, Release)3211ULONG ( STDMETHODCALLTYPE *Release )(3212ID3D12VideoDevice1 * This);32133214DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)3215HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(3216ID3D12VideoDevice1 * This,3217D3D12_FEATURE_VIDEO FeatureVideo,3218_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,3219UINT FeatureSupportDataSize);32203221DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)3222HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(3223ID3D12VideoDevice1 * This,3224_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,3225_In_ REFIID riid,3226_COM_Outptr_ void **ppVideoDecoder);32273228DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)3229HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(3230ID3D12VideoDevice1 * This,3231_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,3232_In_ REFIID riid,3233_COM_Outptr_ void **ppVideoDecoderHeap);32343235DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)3236HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(3237ID3D12VideoDevice1 * This,3238UINT NodeMask,3239_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,3240UINT NumInputStreamDescs,3241_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,3242_In_ REFIID riid,3243_COM_Outptr_ void **ppVideoProcessor);32443245DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)3246HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(3247ID3D12VideoDevice1 * This,3248_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,3249_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3250_In_ REFIID riid,3251_COM_Outptr_ void **ppVideoMotionEstimator);32523253DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)3254HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(3255ID3D12VideoDevice1 * This,3256_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,3257_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,3258_In_ REFIID riid,3259_COM_Outptr_ void **ppVideoMotionVectorHeap);32603261END_INTERFACE3262} ID3D12VideoDevice1Vtbl;32633264interface ID3D12VideoDevice13265{3266CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl;3267};3268326932703271#ifdef COBJMACROS327232733274#define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \3275( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )32763277#define ID3D12VideoDevice1_AddRef(This) \3278( (This)->lpVtbl -> AddRef(This) )32793280#define ID3D12VideoDevice1_Release(This) \3281( (This)->lpVtbl -> Release(This) )328232833284#define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \3285( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )32863287#define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \3288( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )32893290#define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \3291( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )32923293#define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \3294( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )329532963297#define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \3298( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )32993300#define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \3301( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )33023303#endif /* COBJMACROS */330433053306#endif /* C style interface */33073308330933103311#endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */331233133314/* interface __MIDL_itf_d3d12video_0000_0011 */3315/* [local] */33163317typedef struct D3D12_RESOURCE_COORDINATE3318{3319UINT64 X;3320UINT Y;3321UINT Z;3322UINT SubresourceIndex;3323} D3D12_RESOURCE_COORDINATE;33243325typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT3326{3327ID3D12VideoMotionVectorHeap *pMotionVectorHeap;3328} D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT;33293330typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT3331{3332ID3D12Resource *pInputTexture2D;3333UINT InputSubresourceIndex;3334ID3D12Resource *pReferenceTexture2D;3335UINT ReferenceSubresourceIndex;3336ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap;3337} D3D12_VIDEO_MOTION_ESTIMATOR_INPUT;33383339typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT3340{3341ID3D12Resource *pMotionVectorTexture2D;3342D3D12_RESOURCE_COORDINATE MotionVectorCoordinate;3343} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT;33443345typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT3346{3347ID3D12VideoMotionVectorHeap *pMotionVectorHeap;3348UINT PixelWidth;3349UINT PixelHeight;3350} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT;3351335233533354extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec;3355extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec;33563357#ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__3358#define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__33593360/* interface ID3D12VideoEncodeCommandList */3361/* [unique][local][object][uuid] */336233633364EXTERN_C const IID IID_ID3D12VideoEncodeCommandList;33653366#if defined(__cplusplus) && !defined(CINTERFACE)33673368MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723")3369ID3D12VideoEncodeCommandList : public ID3D12CommandList3370{3371public:3372virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;33733374virtual HRESULT STDMETHODCALLTYPE Reset(3375_In_ ID3D12CommandAllocator *pAllocator) = 0;33763377virtual void STDMETHODCALLTYPE ClearState( void) = 0;33783379virtual void STDMETHODCALLTYPE ResourceBarrier(3380_In_ UINT NumBarriers,3381_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;33823383virtual void STDMETHODCALLTYPE DiscardResource(3384_In_ ID3D12Resource *pResource,3385_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;33863387virtual void STDMETHODCALLTYPE BeginQuery(3388_In_ ID3D12QueryHeap *pQueryHeap,3389_In_ D3D12_QUERY_TYPE Type,3390_In_ UINT Index) = 0;33913392virtual void STDMETHODCALLTYPE EndQuery(3393_In_ ID3D12QueryHeap *pQueryHeap,3394_In_ D3D12_QUERY_TYPE Type,3395_In_ UINT Index) = 0;33963397virtual void STDMETHODCALLTYPE ResolveQueryData(3398_In_ ID3D12QueryHeap *pQueryHeap,3399_In_ D3D12_QUERY_TYPE Type,3400_In_ UINT StartIndex,3401_In_ UINT NumQueries,3402_In_ ID3D12Resource *pDestinationBuffer,3403_In_ UINT64 AlignedDestinationBufferOffset) = 0;34043405virtual void STDMETHODCALLTYPE SetPredication(3406_In_opt_ ID3D12Resource *pBuffer,3407_In_ UINT64 AlignedBufferOffset,3408_In_ D3D12_PREDICATION_OP Operation) = 0;34093410virtual void STDMETHODCALLTYPE SetMarker(3411UINT Metadata,3412_In_reads_bytes_opt_(Size) const void *pData,3413UINT Size) = 0;34143415virtual void STDMETHODCALLTYPE BeginEvent(3416UINT Metadata,3417_In_reads_bytes_opt_(Size) const void *pData,3418UINT Size) = 0;34193420virtual void STDMETHODCALLTYPE EndEvent( void) = 0;34213422virtual void STDMETHODCALLTYPE EstimateMotion(3423_In_ ID3D12VideoMotionEstimator *pMotionEstimator,3424_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,3425_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0;34263427virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap(3428const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,3429const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0;34303431virtual void STDMETHODCALLTYPE WriteBufferImmediate(3432UINT Count,3433_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,3434_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;34353436virtual void STDMETHODCALLTYPE SetProtectedResourceSession(3437_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;34383439};344034413442#else /* C style interface */34433444typedef struct ID3D12VideoEncodeCommandListVtbl3445{3446BEGIN_INTERFACE34473448DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3449HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3450ID3D12VideoEncodeCommandList * This,3451REFIID riid,3452_COM_Outptr_ void **ppvObject);34533454DECLSPEC_XFGVIRT(IUnknown, AddRef)3455ULONG ( STDMETHODCALLTYPE *AddRef )(3456ID3D12VideoEncodeCommandList * This);34573458DECLSPEC_XFGVIRT(IUnknown, Release)3459ULONG ( STDMETHODCALLTYPE *Release )(3460ID3D12VideoEncodeCommandList * This);34613462DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3463HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3464ID3D12VideoEncodeCommandList * This,3465_In_ REFGUID guid,3466_Inout_ UINT *pDataSize,3467_Out_writes_bytes_opt_( *pDataSize ) void *pData);34683469DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3470HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3471ID3D12VideoEncodeCommandList * This,3472_In_ REFGUID guid,3473_In_ UINT DataSize,3474_In_reads_bytes_opt_( DataSize ) const void *pData);34753476DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3477HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3478ID3D12VideoEncodeCommandList * This,3479_In_ REFGUID guid,3480_In_opt_ const IUnknown *pData);34813482DECLSPEC_XFGVIRT(ID3D12Object, SetName)3483HRESULT ( STDMETHODCALLTYPE *SetName )(3484ID3D12VideoEncodeCommandList * This,3485_In_z_ LPCWSTR Name);34863487DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3488HRESULT ( STDMETHODCALLTYPE *GetDevice )(3489ID3D12VideoEncodeCommandList * This,3490REFIID riid,3491_COM_Outptr_opt_ void **ppvDevice);34923493DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)3494D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(3495ID3D12VideoEncodeCommandList * This);34963497DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)3498HRESULT ( STDMETHODCALLTYPE *Close )(3499ID3D12VideoEncodeCommandList * This);35003501DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)3502HRESULT ( STDMETHODCALLTYPE *Reset )(3503ID3D12VideoEncodeCommandList * This,3504_In_ ID3D12CommandAllocator *pAllocator);35053506DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)3507void ( STDMETHODCALLTYPE *ClearState )(3508ID3D12VideoEncodeCommandList * This);35093510DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)3511void ( STDMETHODCALLTYPE *ResourceBarrier )(3512ID3D12VideoEncodeCommandList * This,3513_In_ UINT NumBarriers,3514_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);35153516DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)3517void ( STDMETHODCALLTYPE *DiscardResource )(3518ID3D12VideoEncodeCommandList * This,3519_In_ ID3D12Resource *pResource,3520_In_opt_ const D3D12_DISCARD_REGION *pRegion);35213522DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)3523void ( STDMETHODCALLTYPE *BeginQuery )(3524ID3D12VideoEncodeCommandList * This,3525_In_ ID3D12QueryHeap *pQueryHeap,3526_In_ D3D12_QUERY_TYPE Type,3527_In_ UINT Index);35283529DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)3530void ( STDMETHODCALLTYPE *EndQuery )(3531ID3D12VideoEncodeCommandList * This,3532_In_ ID3D12QueryHeap *pQueryHeap,3533_In_ D3D12_QUERY_TYPE Type,3534_In_ UINT Index);35353536DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)3537void ( STDMETHODCALLTYPE *ResolveQueryData )(3538ID3D12VideoEncodeCommandList * This,3539_In_ ID3D12QueryHeap *pQueryHeap,3540_In_ D3D12_QUERY_TYPE Type,3541_In_ UINT StartIndex,3542_In_ UINT NumQueries,3543_In_ ID3D12Resource *pDestinationBuffer,3544_In_ UINT64 AlignedDestinationBufferOffset);35453546DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)3547void ( STDMETHODCALLTYPE *SetPredication )(3548ID3D12VideoEncodeCommandList * This,3549_In_opt_ ID3D12Resource *pBuffer,3550_In_ UINT64 AlignedBufferOffset,3551_In_ D3D12_PREDICATION_OP Operation);35523553DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)3554void ( STDMETHODCALLTYPE *SetMarker )(3555ID3D12VideoEncodeCommandList * This,3556UINT Metadata,3557_In_reads_bytes_opt_(Size) const void *pData,3558UINT Size);35593560DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)3561void ( STDMETHODCALLTYPE *BeginEvent )(3562ID3D12VideoEncodeCommandList * This,3563UINT Metadata,3564_In_reads_bytes_opt_(Size) const void *pData,3565UINT Size);35663567DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)3568void ( STDMETHODCALLTYPE *EndEvent )(3569ID3D12VideoEncodeCommandList * This);35703571DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)3572void ( STDMETHODCALLTYPE *EstimateMotion )(3573ID3D12VideoEncodeCommandList * This,3574_In_ ID3D12VideoMotionEstimator *pMotionEstimator,3575_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,3576_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);35773578DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)3579void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(3580ID3D12VideoEncodeCommandList * This,3581const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,3582const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);35833584DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)3585void ( STDMETHODCALLTYPE *WriteBufferImmediate )(3586ID3D12VideoEncodeCommandList * This,3587UINT Count,3588_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,3589_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);35903591DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)3592void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(3593ID3D12VideoEncodeCommandList * This,3594_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);35953596END_INTERFACE3597} ID3D12VideoEncodeCommandListVtbl;35983599interface ID3D12VideoEncodeCommandList3600{3601CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl;3602};3603360436053606#ifdef COBJMACROS360736083609#define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \3610( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )36113612#define ID3D12VideoEncodeCommandList_AddRef(This) \3613( (This)->lpVtbl -> AddRef(This) )36143615#define ID3D12VideoEncodeCommandList_Release(This) \3616( (This)->lpVtbl -> Release(This) )361736183619#define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \3620( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )36213622#define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \3623( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )36243625#define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \3626( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )36273628#define ID3D12VideoEncodeCommandList_SetName(This,Name) \3629( (This)->lpVtbl -> SetName(This,Name) )363036313632#define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \3633( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )363436353636#define ID3D12VideoEncodeCommandList_GetType(This) \3637( (This)->lpVtbl -> GetType(This) )363836393640#define ID3D12VideoEncodeCommandList_Close(This) \3641( (This)->lpVtbl -> Close(This) )36423643#define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \3644( (This)->lpVtbl -> Reset(This,pAllocator) )36453646#define ID3D12VideoEncodeCommandList_ClearState(This) \3647( (This)->lpVtbl -> ClearState(This) )36483649#define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \3650( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )36513652#define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \3653( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )36543655#define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \3656( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )36573658#define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \3659( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )36603661#define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \3662( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )36633664#define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \3665( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )36663667#define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \3668( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )36693670#define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \3671( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )36723673#define ID3D12VideoEncodeCommandList_EndEvent(This) \3674( (This)->lpVtbl -> EndEvent(This) )36753676#define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \3677( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )36783679#define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \3680( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )36813682#define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \3683( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )36843685#define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \3686( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )36873688#endif /* COBJMACROS */368936903691#endif /* C style interface */36923693369436953696#endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */369736983699/* interface __MIDL_itf_d3d12video_0000_0012 */3700/* [local] */37013702typedef3703enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS3704{3705D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0,3706D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x13707} D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS;37083709DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS );3710typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES3711{3712UINT NodeIndex;3713D3D12_VIDEO_DECODE_CONFIGURATION Configuration;3714D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3715} D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES;37163717typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES3718{3719UINT NodeIndex;3720D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3721} D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES;37223723typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES3724{3725UINT NodeIndex;3726D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;3727} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES;37283729typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE13730{3731D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;3732BOOL Protected;3733UINT64 MemoryPoolL0Size;3734UINT64 MemoryPoolL1Size;3735} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1;37363737typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE13738{3739UINT NodeMask;3740const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;3741UINT NumInputStreamDescs;3742const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;3743BOOL Protected;3744UINT64 MemoryPoolL0Size;3745UINT64 MemoryPoolL1Size;3746} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1;37473748typedef3749enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE3750{3751D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0,3752D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,3753D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2,3754D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3,3755D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4,3756D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5,3757D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 63758} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE;37593760typedef3761enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE3762{3763D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0,3764D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1,3765D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2,3766D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3,3767D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4,3768D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5,3769D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6,3770D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7,3771D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8,3772D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9,3773D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 103774} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE;37753776typedef3777enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS3778{3779D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0,3780D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1,3781D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x23782} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS;37833784DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS );3785typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT3786{3787UINT NodeIndex;3788UINT CommandCount;3789} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT;37903791typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO3792{3793GUID CommandId;3794LPCWSTR Name;3795D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags;3796} D3D12_VIDEO_EXTENSION_COMMAND_INFO;37973798typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS3799{3800UINT NodeIndex;3801UINT CommandCount;3802_Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos;3803} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS;38043805typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT3806{3807GUID CommandId;3808D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;3809UINT ParameterCount;3810UINT ParameterPacking;3811} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT;38123813typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO3814{3815LPCWSTR Name;3816D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type;3817D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags;3818} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO;38193820typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS3821{3822GUID CommandId;3823D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;3824UINT ParameterCount;3825_Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos;3826} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS;38273828typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT3829{3830UINT NodeIndex;3831GUID CommandId;3832_Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData;3833SIZE_T InputDataSizeInBytes;3834_Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData;3835SIZE_T OutputDataSizeInBytes;3836} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT;38373838typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE3839{3840UINT NodeIndex;3841GUID CommandId;3842_Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters;3843SIZE_T CreationParametersSizeInBytes;3844UINT64 MemoryPoolL0Size;3845UINT64 MemoryPoolL1Size;3846} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE;38473848typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC3849{3850UINT NodeMask;3851GUID CommandId;3852} D3D12_VIDEO_EXTENSION_COMMAND_DESC;3853385438553856extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec;3857extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec;38583859#ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__3860#define __ID3D12VideoDecoder1_INTERFACE_DEFINED__38613862/* interface ID3D12VideoDecoder1 */3863/* [unique][local][object][uuid] */386438653866EXTERN_C const IID IID_ID3D12VideoDecoder1;38673868#if defined(__cplusplus) && !defined(CINTERFACE)38693870MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E")3871ID3D12VideoDecoder1 : public ID3D12VideoDecoder3872{3873public:3874virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(3875REFIID riid,3876_COM_Outptr_opt_ void **ppProtectedSession) = 0;38773878};387938803881#else /* C style interface */38823883typedef struct ID3D12VideoDecoder1Vtbl3884{3885BEGIN_INTERFACE38863887DECLSPEC_XFGVIRT(IUnknown, QueryInterface)3888HRESULT ( STDMETHODCALLTYPE *QueryInterface )(3889ID3D12VideoDecoder1 * This,3890REFIID riid,3891_COM_Outptr_ void **ppvObject);38923893DECLSPEC_XFGVIRT(IUnknown, AddRef)3894ULONG ( STDMETHODCALLTYPE *AddRef )(3895ID3D12VideoDecoder1 * This);38963897DECLSPEC_XFGVIRT(IUnknown, Release)3898ULONG ( STDMETHODCALLTYPE *Release )(3899ID3D12VideoDecoder1 * This);39003901DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)3902HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(3903ID3D12VideoDecoder1 * This,3904_In_ REFGUID guid,3905_Inout_ UINT *pDataSize,3906_Out_writes_bytes_opt_( *pDataSize ) void *pData);39073908DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)3909HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(3910ID3D12VideoDecoder1 * This,3911_In_ REFGUID guid,3912_In_ UINT DataSize,3913_In_reads_bytes_opt_( DataSize ) const void *pData);39143915DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)3916HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(3917ID3D12VideoDecoder1 * This,3918_In_ REFGUID guid,3919_In_opt_ const IUnknown *pData);39203921DECLSPEC_XFGVIRT(ID3D12Object, SetName)3922HRESULT ( STDMETHODCALLTYPE *SetName )(3923ID3D12VideoDecoder1 * This,3924_In_z_ LPCWSTR Name);39253926DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)3927HRESULT ( STDMETHODCALLTYPE *GetDevice )(3928ID3D12VideoDecoder1 * This,3929REFIID riid,3930_COM_Outptr_opt_ void **ppvDevice);39313932DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)3933#if !defined(_WIN32)3934D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(3935ID3D12VideoDecoder1 * This);39363937#else3938D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(3939ID3D12VideoDecoder1 * This,3940D3D12_VIDEO_DECODER_DESC * RetVal);39413942#endif39433944DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession)3945HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(3946ID3D12VideoDecoder1 * This,3947REFIID riid,3948_COM_Outptr_opt_ void **ppProtectedSession);39493950END_INTERFACE3951} ID3D12VideoDecoder1Vtbl;39523953interface ID3D12VideoDecoder13954{3955CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl;3956};3957395839593960#ifdef COBJMACROS396139623963#define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \3964( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )39653966#define ID3D12VideoDecoder1_AddRef(This) \3967( (This)->lpVtbl -> AddRef(This) )39683969#define ID3D12VideoDecoder1_Release(This) \3970( (This)->lpVtbl -> Release(This) )397139723973#define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \3974( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )39753976#define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \3977( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )39783979#define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \3980( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )39813982#define ID3D12VideoDecoder1_SetName(This,Name) \3983( (This)->lpVtbl -> SetName(This,Name) )398439853986#define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \3987( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )398839893990#if !defined(_WIN32)39913992#define ID3D12VideoDecoder1_GetDesc(This) \3993( (This)->lpVtbl -> GetDesc(This) )3994#else3995#define ID3D12VideoDecoder1_GetDesc(This,RetVal) \3996( (This)->lpVtbl -> GetDesc(This,RetVal) )3997#endif399839994000#define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4001( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )40024003#endif /* COBJMACROS */400440054006#endif /* C style interface */40074008400940104011#endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */401240134014#ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__4015#define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__40164017/* interface ID3D12VideoDecoderHeap1 */4018/* [unique][local][object][uuid] */401940204021EXTERN_C const IID IID_ID3D12VideoDecoderHeap1;40224023#if defined(__cplusplus) && !defined(CINTERFACE)40244025MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26")4026ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap4027{4028public:4029virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4030REFIID riid,4031_COM_Outptr_opt_ void **ppProtectedSession) = 0;40324033};403440354036#else /* C style interface */40374038typedef struct ID3D12VideoDecoderHeap1Vtbl4039{4040BEGIN_INTERFACE40414042DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4043HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4044ID3D12VideoDecoderHeap1 * This,4045REFIID riid,4046_COM_Outptr_ void **ppvObject);40474048DECLSPEC_XFGVIRT(IUnknown, AddRef)4049ULONG ( STDMETHODCALLTYPE *AddRef )(4050ID3D12VideoDecoderHeap1 * This);40514052DECLSPEC_XFGVIRT(IUnknown, Release)4053ULONG ( STDMETHODCALLTYPE *Release )(4054ID3D12VideoDecoderHeap1 * This);40554056DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4057HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4058ID3D12VideoDecoderHeap1 * This,4059_In_ REFGUID guid,4060_Inout_ UINT *pDataSize,4061_Out_writes_bytes_opt_( *pDataSize ) void *pData);40624063DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4064HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4065ID3D12VideoDecoderHeap1 * This,4066_In_ REFGUID guid,4067_In_ UINT DataSize,4068_In_reads_bytes_opt_( DataSize ) const void *pData);40694070DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4071HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4072ID3D12VideoDecoderHeap1 * This,4073_In_ REFGUID guid,4074_In_opt_ const IUnknown *pData);40754076DECLSPEC_XFGVIRT(ID3D12Object, SetName)4077HRESULT ( STDMETHODCALLTYPE *SetName )(4078ID3D12VideoDecoderHeap1 * This,4079_In_z_ LPCWSTR Name);40804081DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4082HRESULT ( STDMETHODCALLTYPE *GetDevice )(4083ID3D12VideoDecoderHeap1 * This,4084REFIID riid,4085_COM_Outptr_opt_ void **ppvDevice);40864087DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)4088#if !defined(_WIN32)4089D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(4090ID3D12VideoDecoderHeap1 * This);40914092#else4093D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(4094ID3D12VideoDecoderHeap1 * This,4095D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);40964097#endif40984099DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession)4100HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4101ID3D12VideoDecoderHeap1 * This,4102REFIID riid,4103_COM_Outptr_opt_ void **ppProtectedSession);41044105END_INTERFACE4106} ID3D12VideoDecoderHeap1Vtbl;41074108interface ID3D12VideoDecoderHeap14109{4110CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl;4111};4112411341144115#ifdef COBJMACROS411641174118#define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \4119( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )41204121#define ID3D12VideoDecoderHeap1_AddRef(This) \4122( (This)->lpVtbl -> AddRef(This) )41234124#define ID3D12VideoDecoderHeap1_Release(This) \4125( (This)->lpVtbl -> Release(This) )412641274128#define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \4129( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )41304131#define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \4132( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )41334134#define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \4135( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )41364137#define ID3D12VideoDecoderHeap1_SetName(This,Name) \4138( (This)->lpVtbl -> SetName(This,Name) )413941404141#define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \4142( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )414341444145#if !defined(_WIN32)41464147#define ID3D12VideoDecoderHeap1_GetDesc(This) \4148( (This)->lpVtbl -> GetDesc(This) )4149#else4150#define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \4151( (This)->lpVtbl -> GetDesc(This,RetVal) )4152#endif415341544155#define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4156( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )41574158#endif /* COBJMACROS */415941604161#endif /* C style interface */41624163416441654166#endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */416741684169#ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__4170#define __ID3D12VideoProcessor1_INTERFACE_DEFINED__41714172/* interface ID3D12VideoProcessor1 */4173/* [unique][local][object][uuid] */417441754176EXTERN_C const IID IID_ID3D12VideoProcessor1;41774178#if defined(__cplusplus) && !defined(CINTERFACE)41794180MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C")4181ID3D12VideoProcessor1 : public ID3D12VideoProcessor4182{4183public:4184virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4185REFIID riid,4186_COM_Outptr_opt_ void **ppProtectedSession) = 0;41874188};418941904191#else /* C style interface */41924193typedef struct ID3D12VideoProcessor1Vtbl4194{4195BEGIN_INTERFACE41964197DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4198HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4199ID3D12VideoProcessor1 * This,4200REFIID riid,4201_COM_Outptr_ void **ppvObject);42024203DECLSPEC_XFGVIRT(IUnknown, AddRef)4204ULONG ( STDMETHODCALLTYPE *AddRef )(4205ID3D12VideoProcessor1 * This);42064207DECLSPEC_XFGVIRT(IUnknown, Release)4208ULONG ( STDMETHODCALLTYPE *Release )(4209ID3D12VideoProcessor1 * This);42104211DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4212HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4213ID3D12VideoProcessor1 * This,4214_In_ REFGUID guid,4215_Inout_ UINT *pDataSize,4216_Out_writes_bytes_opt_( *pDataSize ) void *pData);42174218DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4219HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4220ID3D12VideoProcessor1 * This,4221_In_ REFGUID guid,4222_In_ UINT DataSize,4223_In_reads_bytes_opt_( DataSize ) const void *pData);42244225DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4226HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4227ID3D12VideoProcessor1 * This,4228_In_ REFGUID guid,4229_In_opt_ const IUnknown *pData);42304231DECLSPEC_XFGVIRT(ID3D12Object, SetName)4232HRESULT ( STDMETHODCALLTYPE *SetName )(4233ID3D12VideoProcessor1 * This,4234_In_z_ LPCWSTR Name);42354236DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4237HRESULT ( STDMETHODCALLTYPE *GetDevice )(4238ID3D12VideoProcessor1 * This,4239REFIID riid,4240_COM_Outptr_opt_ void **ppvDevice);42414242DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)4243UINT ( STDMETHODCALLTYPE *GetNodeMask )(4244ID3D12VideoProcessor1 * This);42454246DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)4247UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(4248ID3D12VideoProcessor1 * This);42494250DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)4251HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(4252ID3D12VideoProcessor1 * This,4253UINT NumInputStreamDescs,4254_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);42554256DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)4257#if !defined(_WIN32)4258D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(4259ID3D12VideoProcessor1 * This);42604261#else4262D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(4263ID3D12VideoProcessor1 * This,4264D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);42654266#endif42674268DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession)4269HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4270ID3D12VideoProcessor1 * This,4271REFIID riid,4272_COM_Outptr_opt_ void **ppProtectedSession);42734274END_INTERFACE4275} ID3D12VideoProcessor1Vtbl;42764277interface ID3D12VideoProcessor14278{4279CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl;4280};4281428242834284#ifdef COBJMACROS428542864287#define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \4288( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )42894290#define ID3D12VideoProcessor1_AddRef(This) \4291( (This)->lpVtbl -> AddRef(This) )42924293#define ID3D12VideoProcessor1_Release(This) \4294( (This)->lpVtbl -> Release(This) )429542964297#define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \4298( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )42994300#define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \4301( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )43024303#define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \4304( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )43054306#define ID3D12VideoProcessor1_SetName(This,Name) \4307( (This)->lpVtbl -> SetName(This,Name) )430843094310#define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \4311( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )4312431343144315#define ID3D12VideoProcessor1_GetNodeMask(This) \4316( (This)->lpVtbl -> GetNodeMask(This) )43174318#define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \4319( (This)->lpVtbl -> GetNumInputStreamDescs(This) )43204321#define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \4322( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )4323#if !defined(_WIN32)43244325#define ID3D12VideoProcessor1_GetOutputStreamDesc(This) \4326( (This)->lpVtbl -> GetOutputStreamDesc(This) )4327#else4328#define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \4329( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )4330#endif433143324333#define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \4334( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )43354336#endif /* COBJMACROS */433743384339#endif /* C style interface */43404341434243434344#endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */434543464347#ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__4348#define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__43494350/* interface ID3D12VideoExtensionCommand */4351/* [unique][local][object][uuid] */435243534354EXTERN_C const IID IID_ID3D12VideoExtensionCommand;43554356#if defined(__cplusplus) && !defined(CINTERFACE)43574358MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4")4359ID3D12VideoExtensionCommand : public ID3D12Pageable4360{4361public:4362#if defined(_MSC_VER) || !defined(_WIN32)4363virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0;4364#else4365virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC *STDMETHODCALLTYPE GetDesc(4366D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal) = 0;4367#endif43684369virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(4370REFIID riid,4371_COM_Outptr_opt_ void **ppProtectedSession) = 0;43724373};437443754376#else /* C style interface */43774378typedef struct ID3D12VideoExtensionCommandVtbl4379{4380BEGIN_INTERFACE43814382DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4383HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4384ID3D12VideoExtensionCommand * This,4385REFIID riid,4386_COM_Outptr_ void **ppvObject);43874388DECLSPEC_XFGVIRT(IUnknown, AddRef)4389ULONG ( STDMETHODCALLTYPE *AddRef )(4390ID3D12VideoExtensionCommand * This);43914392DECLSPEC_XFGVIRT(IUnknown, Release)4393ULONG ( STDMETHODCALLTYPE *Release )(4394ID3D12VideoExtensionCommand * This);43954396DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4397HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4398ID3D12VideoExtensionCommand * This,4399_In_ REFGUID guid,4400_Inout_ UINT *pDataSize,4401_Out_writes_bytes_opt_( *pDataSize ) void *pData);44024403DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4404HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4405ID3D12VideoExtensionCommand * This,4406_In_ REFGUID guid,4407_In_ UINT DataSize,4408_In_reads_bytes_opt_( DataSize ) const void *pData);44094410DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4411HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4412ID3D12VideoExtensionCommand * This,4413_In_ REFGUID guid,4414_In_opt_ const IUnknown *pData);44154416DECLSPEC_XFGVIRT(ID3D12Object, SetName)4417HRESULT ( STDMETHODCALLTYPE *SetName )(4418ID3D12VideoExtensionCommand * This,4419_In_z_ LPCWSTR Name);44204421DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4422HRESULT ( STDMETHODCALLTYPE *GetDevice )(4423ID3D12VideoExtensionCommand * This,4424REFIID riid,4425_COM_Outptr_opt_ void **ppvDevice);44264427DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc)4428#if !defined(_WIN32)4429D3D12_VIDEO_EXTENSION_COMMAND_DESC ( STDMETHODCALLTYPE *GetDesc )(4430ID3D12VideoExtensionCommand * This);44314432#else4433D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )(4434ID3D12VideoExtensionCommand * This,4435D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal);44364437#endif44384439DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession)4440HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(4441ID3D12VideoExtensionCommand * This,4442REFIID riid,4443_COM_Outptr_opt_ void **ppProtectedSession);44444445END_INTERFACE4446} ID3D12VideoExtensionCommandVtbl;44474448interface ID3D12VideoExtensionCommand4449{4450CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl;4451};4452445344544455#ifdef COBJMACROS445644574458#define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \4459( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )44604461#define ID3D12VideoExtensionCommand_AddRef(This) \4462( (This)->lpVtbl -> AddRef(This) )44634464#define ID3D12VideoExtensionCommand_Release(This) \4465( (This)->lpVtbl -> Release(This) )446644674468#define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \4469( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )44704471#define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \4472( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )44734474#define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \4475( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )44764477#define ID3D12VideoExtensionCommand_SetName(This,Name) \4478( (This)->lpVtbl -> SetName(This,Name) )447944804481#define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \4482( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )448344844485#if !defined(_WIN32)44864487#define ID3D12VideoExtensionCommand_GetDesc(This) \4488( (This)->lpVtbl -> GetDesc(This) )4489#else4490#define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \4491( (This)->lpVtbl -> GetDesc(This,RetVal) )4492#endif44934494#define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \4495( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )44964497#endif /* COBJMACROS */449844994500#endif /* C style interface */45014502450345044505#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */450645074508#ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__4509#define __ID3D12VideoDevice2_INTERFACE_DEFINED__45104511/* interface ID3D12VideoDevice2 */4512/* [unique][local][object][uuid] */451345144515EXTERN_C const IID IID_ID3D12VideoDevice2;45164517#if defined(__cplusplus) && !defined(CINTERFACE)45184519MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513")4520ID3D12VideoDevice2 : public ID3D12VideoDevice14521{4522public:4523virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1(4524_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4525_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4526_In_ REFIID riid,4527_COM_Outptr_ void **ppVideoDecoder) = 0;45284529virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1(4530_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4531_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4532_In_ REFIID riid,4533_COM_Outptr_ void **ppVideoDecoderHeap) = 0;45344535virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1(4536UINT NodeMask,4537_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4538UINT NumInputStreamDescs,4539_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4540_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4541_In_ REFIID riid,4542_COM_Outptr_ void **ppVideoProcessor) = 0;45434544virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand(4545_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,4546_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,4547SIZE_T CreationParametersDataSizeInBytes,4548_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4549_In_ REFIID riid,4550_COM_Outptr_ void **ppVideoExtensionCommand) = 0;45514552virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand(4553_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4554_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4555SIZE_T ExecutionParametersSizeInBytes,4556_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,4557SIZE_T OutputDataSizeInBytes) = 0;45584559};456045614562#else /* C style interface */45634564typedef struct ID3D12VideoDevice2Vtbl4565{4566BEGIN_INTERFACE45674568DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4569HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4570ID3D12VideoDevice2 * This,4571REFIID riid,4572_COM_Outptr_ void **ppvObject);45734574DECLSPEC_XFGVIRT(IUnknown, AddRef)4575ULONG ( STDMETHODCALLTYPE *AddRef )(4576ID3D12VideoDevice2 * This);45774578DECLSPEC_XFGVIRT(IUnknown, Release)4579ULONG ( STDMETHODCALLTYPE *Release )(4580ID3D12VideoDevice2 * This);45814582DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)4583HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(4584ID3D12VideoDevice2 * This,4585D3D12_FEATURE_VIDEO FeatureVideo,4586_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,4587UINT FeatureSupportDataSize);45884589DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)4590HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(4591ID3D12VideoDevice2 * This,4592_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4593_In_ REFIID riid,4594_COM_Outptr_ void **ppVideoDecoder);45954596DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)4597HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(4598ID3D12VideoDevice2 * This,4599_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4600_In_ REFIID riid,4601_COM_Outptr_ void **ppVideoDecoderHeap);46024603DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)4604HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(4605ID3D12VideoDevice2 * This,4606UINT NodeMask,4607_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4608UINT NumInputStreamDescs,4609_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4610_In_ REFIID riid,4611_COM_Outptr_ void **ppVideoProcessor);46124613DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)4614HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(4615ID3D12VideoDevice2 * This,4616_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,4617_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4618_In_ REFIID riid,4619_COM_Outptr_ void **ppVideoMotionEstimator);46204621DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)4622HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(4623ID3D12VideoDevice2 * This,4624_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,4625_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4626_In_ REFIID riid,4627_COM_Outptr_ void **ppVideoMotionVectorHeap);46284629DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)4630HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(4631ID3D12VideoDevice2 * This,4632_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,4633_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4634_In_ REFIID riid,4635_COM_Outptr_ void **ppVideoDecoder);46364637DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)4638HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(4639ID3D12VideoDevice2 * This,4640_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,4641_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4642_In_ REFIID riid,4643_COM_Outptr_ void **ppVideoDecoderHeap);46444645DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)4646HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(4647ID3D12VideoDevice2 * This,4648UINT NodeMask,4649_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,4650UINT NumInputStreamDescs,4651_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,4652_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4653_In_ REFIID riid,4654_COM_Outptr_ void **ppVideoProcessor);46554656DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)4657HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(4658ID3D12VideoDevice2 * This,4659_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,4660_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,4661SIZE_T CreationParametersDataSizeInBytes,4662_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,4663_In_ REFIID riid,4664_COM_Outptr_ void **ppVideoExtensionCommand);46654666DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)4667HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(4668ID3D12VideoDevice2 * This,4669_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4670_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4671SIZE_T ExecutionParametersSizeInBytes,4672_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,4673SIZE_T OutputDataSizeInBytes);46744675END_INTERFACE4676} ID3D12VideoDevice2Vtbl;46774678interface ID3D12VideoDevice24679{4680CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl;4681};4682468346844685#ifdef COBJMACROS468646874688#define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \4689( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )46904691#define ID3D12VideoDevice2_AddRef(This) \4692( (This)->lpVtbl -> AddRef(This) )46934694#define ID3D12VideoDevice2_Release(This) \4695( (This)->lpVtbl -> Release(This) )469646974698#define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \4699( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )47004701#define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \4702( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )47034704#define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \4705( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )47064707#define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \4708( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )470947104711#define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \4712( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )47134714#define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \4715( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )471647174718#define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \4719( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )47204721#define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \4722( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )47234724#define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \4725( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )47264727#define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \4728( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )47294730#define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \4731( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )47324733#endif /* COBJMACROS */473447354736#endif /* C style interface */47374738473947404741#endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */474247434744#ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__4745#define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__47464747/* interface ID3D12VideoDecodeCommandList2 */4748/* [unique][local][object][uuid] */474947504751EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2;47524753#if defined(__cplusplus) && !defined(CINTERFACE)47544755MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729")4756ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList14757{4758public:4759virtual void STDMETHODCALLTYPE SetProtectedResourceSession(4760_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;47614762virtual void STDMETHODCALLTYPE InitializeExtensionCommand(4763_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4764_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,4765SIZE_T InitializationParametersSizeInBytes) = 0;47664767virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(4768_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4769_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4770SIZE_T ExecutionParametersSizeInBytes) = 0;47714772};477347744775#else /* C style interface */47764777typedef struct ID3D12VideoDecodeCommandList2Vtbl4778{4779BEGIN_INTERFACE47804781DECLSPEC_XFGVIRT(IUnknown, QueryInterface)4782HRESULT ( STDMETHODCALLTYPE *QueryInterface )(4783ID3D12VideoDecodeCommandList2 * This,4784REFIID riid,4785_COM_Outptr_ void **ppvObject);47864787DECLSPEC_XFGVIRT(IUnknown, AddRef)4788ULONG ( STDMETHODCALLTYPE *AddRef )(4789ID3D12VideoDecodeCommandList2 * This);47904791DECLSPEC_XFGVIRT(IUnknown, Release)4792ULONG ( STDMETHODCALLTYPE *Release )(4793ID3D12VideoDecodeCommandList2 * This);47944795DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)4796HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(4797ID3D12VideoDecodeCommandList2 * This,4798_In_ REFGUID guid,4799_Inout_ UINT *pDataSize,4800_Out_writes_bytes_opt_( *pDataSize ) void *pData);48014802DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)4803HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(4804ID3D12VideoDecodeCommandList2 * This,4805_In_ REFGUID guid,4806_In_ UINT DataSize,4807_In_reads_bytes_opt_( DataSize ) const void *pData);48084809DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)4810HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(4811ID3D12VideoDecodeCommandList2 * This,4812_In_ REFGUID guid,4813_In_opt_ const IUnknown *pData);48144815DECLSPEC_XFGVIRT(ID3D12Object, SetName)4816HRESULT ( STDMETHODCALLTYPE *SetName )(4817ID3D12VideoDecodeCommandList2 * This,4818_In_z_ LPCWSTR Name);48194820DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)4821HRESULT ( STDMETHODCALLTYPE *GetDevice )(4822ID3D12VideoDecodeCommandList2 * This,4823REFIID riid,4824_COM_Outptr_opt_ void **ppvDevice);48254826DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)4827D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(4828ID3D12VideoDecodeCommandList2 * This);48294830DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)4831HRESULT ( STDMETHODCALLTYPE *Close )(4832ID3D12VideoDecodeCommandList2 * This);48334834DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)4835HRESULT ( STDMETHODCALLTYPE *Reset )(4836ID3D12VideoDecodeCommandList2 * This,4837_In_ ID3D12CommandAllocator *pAllocator);48384839DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)4840void ( STDMETHODCALLTYPE *ClearState )(4841ID3D12VideoDecodeCommandList2 * This);48424843DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)4844void ( STDMETHODCALLTYPE *ResourceBarrier )(4845ID3D12VideoDecodeCommandList2 * This,4846_In_ UINT NumBarriers,4847_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);48484849DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)4850void ( STDMETHODCALLTYPE *DiscardResource )(4851ID3D12VideoDecodeCommandList2 * This,4852_In_ ID3D12Resource *pResource,4853_In_opt_ const D3D12_DISCARD_REGION *pRegion);48544855DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)4856void ( STDMETHODCALLTYPE *BeginQuery )(4857ID3D12VideoDecodeCommandList2 * This,4858_In_ ID3D12QueryHeap *pQueryHeap,4859_In_ D3D12_QUERY_TYPE Type,4860_In_ UINT Index);48614862DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)4863void ( STDMETHODCALLTYPE *EndQuery )(4864ID3D12VideoDecodeCommandList2 * This,4865_In_ ID3D12QueryHeap *pQueryHeap,4866_In_ D3D12_QUERY_TYPE Type,4867_In_ UINT Index);48684869DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)4870void ( STDMETHODCALLTYPE *ResolveQueryData )(4871ID3D12VideoDecodeCommandList2 * This,4872_In_ ID3D12QueryHeap *pQueryHeap,4873_In_ D3D12_QUERY_TYPE Type,4874_In_ UINT StartIndex,4875_In_ UINT NumQueries,4876_In_ ID3D12Resource *pDestinationBuffer,4877_In_ UINT64 AlignedDestinationBufferOffset);48784879DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)4880void ( STDMETHODCALLTYPE *SetPredication )(4881ID3D12VideoDecodeCommandList2 * This,4882_In_opt_ ID3D12Resource *pBuffer,4883_In_ UINT64 AlignedBufferOffset,4884_In_ D3D12_PREDICATION_OP Operation);48854886DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)4887void ( STDMETHODCALLTYPE *SetMarker )(4888ID3D12VideoDecodeCommandList2 * This,4889UINT Metadata,4890_In_reads_bytes_opt_(Size) const void *pData,4891UINT Size);48924893DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)4894void ( STDMETHODCALLTYPE *BeginEvent )(4895ID3D12VideoDecodeCommandList2 * This,4896UINT Metadata,4897_In_reads_bytes_opt_(Size) const void *pData,4898UINT Size);48994900DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)4901void ( STDMETHODCALLTYPE *EndEvent )(4902ID3D12VideoDecodeCommandList2 * This);49034904DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)4905void ( STDMETHODCALLTYPE *DecodeFrame )(4906ID3D12VideoDecodeCommandList2 * This,4907_In_ ID3D12VideoDecoder *pDecoder,4908_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,4909_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);49104911DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)4912void ( STDMETHODCALLTYPE *WriteBufferImmediate )(4913ID3D12VideoDecodeCommandList2 * This,4914UINT Count,4915_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,4916_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);49174918DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)4919void ( STDMETHODCALLTYPE *DecodeFrame1 )(4920ID3D12VideoDecodeCommandList2 * This,4921_In_ ID3D12VideoDecoder *pDecoder,4922_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,4923_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);49244925DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)4926void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(4927ID3D12VideoDecodeCommandList2 * This,4928_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);49294930DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)4931void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(4932ID3D12VideoDecodeCommandList2 * This,4933_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4934_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,4935SIZE_T InitializationParametersSizeInBytes);49364937DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)4938void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(4939ID3D12VideoDecodeCommandList2 * This,4940_In_ ID3D12VideoExtensionCommand *pExtensionCommand,4941_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,4942SIZE_T ExecutionParametersSizeInBytes);49434944END_INTERFACE4945} ID3D12VideoDecodeCommandList2Vtbl;49464947interface ID3D12VideoDecodeCommandList24948{4949CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl;4950};4951495249534954#ifdef COBJMACROS495549564957#define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \4958( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )49594960#define ID3D12VideoDecodeCommandList2_AddRef(This) \4961( (This)->lpVtbl -> AddRef(This) )49624963#define ID3D12VideoDecodeCommandList2_Release(This) \4964( (This)->lpVtbl -> Release(This) )496549664967#define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \4968( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )49694970#define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \4971( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )49724973#define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \4974( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )49754976#define ID3D12VideoDecodeCommandList2_SetName(This,Name) \4977( (This)->lpVtbl -> SetName(This,Name) )497849794980#define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \4981( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )498249834984#define ID3D12VideoDecodeCommandList2_GetType(This) \4985( (This)->lpVtbl -> GetType(This) )498649874988#define ID3D12VideoDecodeCommandList2_Close(This) \4989( (This)->lpVtbl -> Close(This) )49904991#define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \4992( (This)->lpVtbl -> Reset(This,pAllocator) )49934994#define ID3D12VideoDecodeCommandList2_ClearState(This) \4995( (This)->lpVtbl -> ClearState(This) )49964997#define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \4998( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )49995000#define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \5001( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )50025003#define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \5004( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )50055006#define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \5007( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )50085009#define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5010( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )50115012#define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5013( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )50145015#define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \5016( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )50175018#define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \5019( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )50205021#define ID3D12VideoDecodeCommandList2_EndEvent(This) \5022( (This)->lpVtbl -> EndEvent(This) )50235024#define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \5025( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )50265027#define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \5028( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )502950305031#define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \5032( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )503350345035#define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \5036( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )50375038#define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5039( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )50405041#define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5042( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )50435044#endif /* COBJMACROS */504550465047#endif /* C style interface */50485049505050515052#endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */505350545055#ifndef __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__5056#define __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__50575058/* interface ID3D12VideoDecodeCommandList3 */5059/* [unique][local][object][uuid] */506050615062EXTERN_C const IID IID_ID3D12VideoDecodeCommandList3;50635064#if defined(__cplusplus) && !defined(CINTERFACE)50655066MIDL_INTERFACE("2aee8c37-9562-42da-8abf-61efeb2e4513")5067ID3D12VideoDecodeCommandList3 : public ID3D12VideoDecodeCommandList25068{5069public:5070virtual void STDMETHODCALLTYPE Barrier(5071UINT32 NumBarrierGroups,5072_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;50735074};507550765077#else /* C style interface */50785079typedef struct ID3D12VideoDecodeCommandList3Vtbl5080{5081BEGIN_INTERFACE50825083DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5084HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5085ID3D12VideoDecodeCommandList3 * This,5086REFIID riid,5087_COM_Outptr_ void **ppvObject);50885089DECLSPEC_XFGVIRT(IUnknown, AddRef)5090ULONG ( STDMETHODCALLTYPE *AddRef )(5091ID3D12VideoDecodeCommandList3 * This);50925093DECLSPEC_XFGVIRT(IUnknown, Release)5094ULONG ( STDMETHODCALLTYPE *Release )(5095ID3D12VideoDecodeCommandList3 * This);50965097DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5098HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5099ID3D12VideoDecodeCommandList3 * This,5100_In_ REFGUID guid,5101_Inout_ UINT *pDataSize,5102_Out_writes_bytes_opt_( *pDataSize ) void *pData);51035104DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5105HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5106ID3D12VideoDecodeCommandList3 * This,5107_In_ REFGUID guid,5108_In_ UINT DataSize,5109_In_reads_bytes_opt_( DataSize ) const void *pData);51105111DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5112HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5113ID3D12VideoDecodeCommandList3 * This,5114_In_ REFGUID guid,5115_In_opt_ const IUnknown *pData);51165117DECLSPEC_XFGVIRT(ID3D12Object, SetName)5118HRESULT ( STDMETHODCALLTYPE *SetName )(5119ID3D12VideoDecodeCommandList3 * This,5120_In_z_ LPCWSTR Name);51215122DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5123HRESULT ( STDMETHODCALLTYPE *GetDevice )(5124ID3D12VideoDecodeCommandList3 * This,5125REFIID riid,5126_COM_Outptr_opt_ void **ppvDevice);51275128DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5129D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5130ID3D12VideoDecodeCommandList3 * This);51315132DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)5133HRESULT ( STDMETHODCALLTYPE *Close )(5134ID3D12VideoDecodeCommandList3 * This);51355136DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)5137HRESULT ( STDMETHODCALLTYPE *Reset )(5138ID3D12VideoDecodeCommandList3 * This,5139_In_ ID3D12CommandAllocator *pAllocator);51405141DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)5142void ( STDMETHODCALLTYPE *ClearState )(5143ID3D12VideoDecodeCommandList3 * This);51445145DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)5146void ( STDMETHODCALLTYPE *ResourceBarrier )(5147ID3D12VideoDecodeCommandList3 * This,5148_In_ UINT NumBarriers,5149_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);51505151DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)5152void ( STDMETHODCALLTYPE *DiscardResource )(5153ID3D12VideoDecodeCommandList3 * This,5154_In_ ID3D12Resource *pResource,5155_In_opt_ const D3D12_DISCARD_REGION *pRegion);51565157DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)5158void ( STDMETHODCALLTYPE *BeginQuery )(5159ID3D12VideoDecodeCommandList3 * This,5160_In_ ID3D12QueryHeap *pQueryHeap,5161_In_ D3D12_QUERY_TYPE Type,5162_In_ UINT Index);51635164DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)5165void ( STDMETHODCALLTYPE *EndQuery )(5166ID3D12VideoDecodeCommandList3 * This,5167_In_ ID3D12QueryHeap *pQueryHeap,5168_In_ D3D12_QUERY_TYPE Type,5169_In_ UINT Index);51705171DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)5172void ( STDMETHODCALLTYPE *ResolveQueryData )(5173ID3D12VideoDecodeCommandList3 * This,5174_In_ ID3D12QueryHeap *pQueryHeap,5175_In_ D3D12_QUERY_TYPE Type,5176_In_ UINT StartIndex,5177_In_ UINT NumQueries,5178_In_ ID3D12Resource *pDestinationBuffer,5179_In_ UINT64 AlignedDestinationBufferOffset);51805181DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)5182void ( STDMETHODCALLTYPE *SetPredication )(5183ID3D12VideoDecodeCommandList3 * This,5184_In_opt_ ID3D12Resource *pBuffer,5185_In_ UINT64 AlignedBufferOffset,5186_In_ D3D12_PREDICATION_OP Operation);51875188DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)5189void ( STDMETHODCALLTYPE *SetMarker )(5190ID3D12VideoDecodeCommandList3 * This,5191UINT Metadata,5192_In_reads_bytes_opt_(Size) const void *pData,5193UINT Size);51945195DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)5196void ( STDMETHODCALLTYPE *BeginEvent )(5197ID3D12VideoDecodeCommandList3 * This,5198UINT Metadata,5199_In_reads_bytes_opt_(Size) const void *pData,5200UINT Size);52015202DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)5203void ( STDMETHODCALLTYPE *EndEvent )(5204ID3D12VideoDecodeCommandList3 * This);52055206DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)5207void ( STDMETHODCALLTYPE *DecodeFrame )(5208ID3D12VideoDecodeCommandList3 * This,5209_In_ ID3D12VideoDecoder *pDecoder,5210_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5211_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);52125213DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)5214void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5215ID3D12VideoDecodeCommandList3 * This,5216UINT Count,5217_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5218_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);52195220DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)5221void ( STDMETHODCALLTYPE *DecodeFrame1 )(5222ID3D12VideoDecodeCommandList3 * This,5223_In_ ID3D12VideoDecoder *pDecoder,5224_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,5225_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);52265227DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)5228void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5229ID3D12VideoDecodeCommandList3 * This,5230_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);52315232DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)5233void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5234ID3D12VideoDecodeCommandList3 * This,5235_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5236_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5237SIZE_T InitializationParametersSizeInBytes);52385239DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)5240void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5241ID3D12VideoDecodeCommandList3 * This,5242_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5243_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5244SIZE_T ExecutionParametersSizeInBytes);52455246DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList3, Barrier)5247void ( STDMETHODCALLTYPE *Barrier )(5248ID3D12VideoDecodeCommandList3 * This,5249UINT32 NumBarrierGroups,5250_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);52515252END_INTERFACE5253} ID3D12VideoDecodeCommandList3Vtbl;52545255interface ID3D12VideoDecodeCommandList35256{5257CONST_VTBL struct ID3D12VideoDecodeCommandList3Vtbl *lpVtbl;5258};5259526052615262#ifdef COBJMACROS526352645265#define ID3D12VideoDecodeCommandList3_QueryInterface(This,riid,ppvObject) \5266( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )52675268#define ID3D12VideoDecodeCommandList3_AddRef(This) \5269( (This)->lpVtbl -> AddRef(This) )52705271#define ID3D12VideoDecodeCommandList3_Release(This) \5272( (This)->lpVtbl -> Release(This) )527352745275#define ID3D12VideoDecodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \5276( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )52775278#define ID3D12VideoDecodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \5279( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )52805281#define ID3D12VideoDecodeCommandList3_SetPrivateDataInterface(This,guid,pData) \5282( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )52835284#define ID3D12VideoDecodeCommandList3_SetName(This,Name) \5285( (This)->lpVtbl -> SetName(This,Name) )528652875288#define ID3D12VideoDecodeCommandList3_GetDevice(This,riid,ppvDevice) \5289( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )529052915292#define ID3D12VideoDecodeCommandList3_GetType(This) \5293( (This)->lpVtbl -> GetType(This) )529452955296#define ID3D12VideoDecodeCommandList3_Close(This) \5297( (This)->lpVtbl -> Close(This) )52985299#define ID3D12VideoDecodeCommandList3_Reset(This,pAllocator) \5300( (This)->lpVtbl -> Reset(This,pAllocator) )53015302#define ID3D12VideoDecodeCommandList3_ClearState(This) \5303( (This)->lpVtbl -> ClearState(This) )53045305#define ID3D12VideoDecodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \5306( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )53075308#define ID3D12VideoDecodeCommandList3_DiscardResource(This,pResource,pRegion) \5309( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )53105311#define ID3D12VideoDecodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \5312( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )53135314#define ID3D12VideoDecodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \5315( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )53165317#define ID3D12VideoDecodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5318( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )53195320#define ID3D12VideoDecodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5321( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )53225323#define ID3D12VideoDecodeCommandList3_SetMarker(This,Metadata,pData,Size) \5324( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )53255326#define ID3D12VideoDecodeCommandList3_BeginEvent(This,Metadata,pData,Size) \5327( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )53285329#define ID3D12VideoDecodeCommandList3_EndEvent(This) \5330( (This)->lpVtbl -> EndEvent(This) )53315332#define ID3D12VideoDecodeCommandList3_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \5333( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )53345335#define ID3D12VideoDecodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \5336( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )533753385339#define ID3D12VideoDecodeCommandList3_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \5340( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )534153425343#define ID3D12VideoDecodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \5344( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )53455346#define ID3D12VideoDecodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5347( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )53485349#define ID3D12VideoDecodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5350( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )535153525353#define ID3D12VideoDecodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \5354( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )53555356#endif /* COBJMACROS */535753585359#endif /* C style interface */53605361536253635364#endif /* __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ */536553665367#ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__5368#define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__53695370/* interface ID3D12VideoProcessCommandList2 */5371/* [unique][local][object][uuid] */537253735374EXTERN_C const IID IID_ID3D12VideoProcessCommandList2;53755376#if defined(__cplusplus) && !defined(CINTERFACE)53775378MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4")5379ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList15380{5381public:5382virtual void STDMETHODCALLTYPE SetProtectedResourceSession(5383_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;53845385virtual void STDMETHODCALLTYPE InitializeExtensionCommand(5386_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5387_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5388SIZE_T InitializationParametersSizeInBytes) = 0;53895390virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(5391_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5392_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5393SIZE_T ExecutionParametersSizeInBytes) = 0;53945395};539653975398#else /* C style interface */53995400typedef struct ID3D12VideoProcessCommandList2Vtbl5401{5402BEGIN_INTERFACE54035404DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5405HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5406ID3D12VideoProcessCommandList2 * This,5407REFIID riid,5408_COM_Outptr_ void **ppvObject);54095410DECLSPEC_XFGVIRT(IUnknown, AddRef)5411ULONG ( STDMETHODCALLTYPE *AddRef )(5412ID3D12VideoProcessCommandList2 * This);54135414DECLSPEC_XFGVIRT(IUnknown, Release)5415ULONG ( STDMETHODCALLTYPE *Release )(5416ID3D12VideoProcessCommandList2 * This);54175418DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5419HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5420ID3D12VideoProcessCommandList2 * This,5421_In_ REFGUID guid,5422_Inout_ UINT *pDataSize,5423_Out_writes_bytes_opt_( *pDataSize ) void *pData);54245425DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5426HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5427ID3D12VideoProcessCommandList2 * This,5428_In_ REFGUID guid,5429_In_ UINT DataSize,5430_In_reads_bytes_opt_( DataSize ) const void *pData);54315432DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5433HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5434ID3D12VideoProcessCommandList2 * This,5435_In_ REFGUID guid,5436_In_opt_ const IUnknown *pData);54375438DECLSPEC_XFGVIRT(ID3D12Object, SetName)5439HRESULT ( STDMETHODCALLTYPE *SetName )(5440ID3D12VideoProcessCommandList2 * This,5441_In_z_ LPCWSTR Name);54425443DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5444HRESULT ( STDMETHODCALLTYPE *GetDevice )(5445ID3D12VideoProcessCommandList2 * This,5446REFIID riid,5447_COM_Outptr_opt_ void **ppvDevice);54485449DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5450D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5451ID3D12VideoProcessCommandList2 * This);54525453DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)5454HRESULT ( STDMETHODCALLTYPE *Close )(5455ID3D12VideoProcessCommandList2 * This);54565457DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)5458HRESULT ( STDMETHODCALLTYPE *Reset )(5459ID3D12VideoProcessCommandList2 * This,5460_In_ ID3D12CommandAllocator *pAllocator);54615462DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)5463void ( STDMETHODCALLTYPE *ClearState )(5464ID3D12VideoProcessCommandList2 * This);54655466DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)5467void ( STDMETHODCALLTYPE *ResourceBarrier )(5468ID3D12VideoProcessCommandList2 * This,5469_In_ UINT NumBarriers,5470_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);54715472DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)5473void ( STDMETHODCALLTYPE *DiscardResource )(5474ID3D12VideoProcessCommandList2 * This,5475_In_ ID3D12Resource *pResource,5476_In_opt_ const D3D12_DISCARD_REGION *pRegion);54775478DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)5479void ( STDMETHODCALLTYPE *BeginQuery )(5480ID3D12VideoProcessCommandList2 * This,5481_In_ ID3D12QueryHeap *pQueryHeap,5482_In_ D3D12_QUERY_TYPE Type,5483_In_ UINT Index);54845485DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)5486void ( STDMETHODCALLTYPE *EndQuery )(5487ID3D12VideoProcessCommandList2 * This,5488_In_ ID3D12QueryHeap *pQueryHeap,5489_In_ D3D12_QUERY_TYPE Type,5490_In_ UINT Index);54915492DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)5493void ( STDMETHODCALLTYPE *ResolveQueryData )(5494ID3D12VideoProcessCommandList2 * This,5495_In_ ID3D12QueryHeap *pQueryHeap,5496_In_ D3D12_QUERY_TYPE Type,5497_In_ UINT StartIndex,5498_In_ UINT NumQueries,5499_In_ ID3D12Resource *pDestinationBuffer,5500_In_ UINT64 AlignedDestinationBufferOffset);55015502DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)5503void ( STDMETHODCALLTYPE *SetPredication )(5504ID3D12VideoProcessCommandList2 * This,5505_In_opt_ ID3D12Resource *pBuffer,5506_In_ UINT64 AlignedBufferOffset,5507_In_ D3D12_PREDICATION_OP Operation);55085509DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)5510void ( STDMETHODCALLTYPE *SetMarker )(5511ID3D12VideoProcessCommandList2 * This,5512UINT Metadata,5513_In_reads_bytes_opt_(Size) const void *pData,5514UINT Size);55155516DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)5517void ( STDMETHODCALLTYPE *BeginEvent )(5518ID3D12VideoProcessCommandList2 * This,5519UINT Metadata,5520_In_reads_bytes_opt_(Size) const void *pData,5521UINT Size);55225523DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)5524void ( STDMETHODCALLTYPE *EndEvent )(5525ID3D12VideoProcessCommandList2 * This);55265527DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)5528void ( STDMETHODCALLTYPE *ProcessFrames )(5529ID3D12VideoProcessCommandList2 * This,5530_In_ ID3D12VideoProcessor *pVideoProcessor,5531_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5532UINT NumInputStreams,5533_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);55345535DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)5536void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5537ID3D12VideoProcessCommandList2 * This,5538UINT Count,5539_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5540_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);55415542DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)5543void ( STDMETHODCALLTYPE *ProcessFrames1 )(5544ID3D12VideoProcessCommandList2 * This,5545_In_ ID3D12VideoProcessor *pVideoProcessor,5546_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5547UINT NumInputStreams,5548_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);55495550DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)5551void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5552ID3D12VideoProcessCommandList2 * This,5553_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);55545555DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)5556void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5557ID3D12VideoProcessCommandList2 * This,5558_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5559_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5560SIZE_T InitializationParametersSizeInBytes);55615562DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)5563void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5564ID3D12VideoProcessCommandList2 * This,5565_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5566_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5567SIZE_T ExecutionParametersSizeInBytes);55685569END_INTERFACE5570} ID3D12VideoProcessCommandList2Vtbl;55715572interface ID3D12VideoProcessCommandList25573{5574CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl;5575};5576557755785579#ifdef COBJMACROS558055815582#define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \5583( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )55845585#define ID3D12VideoProcessCommandList2_AddRef(This) \5586( (This)->lpVtbl -> AddRef(This) )55875588#define ID3D12VideoProcessCommandList2_Release(This) \5589( (This)->lpVtbl -> Release(This) )559055915592#define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \5593( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )55945595#define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \5596( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )55975598#define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \5599( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )56005601#define ID3D12VideoProcessCommandList2_SetName(This,Name) \5602( (This)->lpVtbl -> SetName(This,Name) )560356045605#define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \5606( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )560756085609#define ID3D12VideoProcessCommandList2_GetType(This) \5610( (This)->lpVtbl -> GetType(This) )561156125613#define ID3D12VideoProcessCommandList2_Close(This) \5614( (This)->lpVtbl -> Close(This) )56155616#define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \5617( (This)->lpVtbl -> Reset(This,pAllocator) )56185619#define ID3D12VideoProcessCommandList2_ClearState(This) \5620( (This)->lpVtbl -> ClearState(This) )56215622#define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \5623( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )56245625#define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \5626( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )56275628#define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \5629( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )56305631#define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \5632( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )56335634#define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5635( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )56365637#define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5638( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )56395640#define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \5641( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )56425643#define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \5644( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )56455646#define ID3D12VideoProcessCommandList2_EndEvent(This) \5647( (This)->lpVtbl -> EndEvent(This) )56485649#define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5650( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )56515652#define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \5653( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )565456555656#define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5657( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )565856595660#define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \5661( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )56625663#define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5664( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )56655666#define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5667( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )56685669#endif /* COBJMACROS */567056715672#endif /* C style interface */56735674567556765677#endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */567856795680#ifndef __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__5681#define __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__56825683/* interface ID3D12VideoProcessCommandList3 */5684/* [unique][local][object][uuid] */568556865687EXTERN_C const IID IID_ID3D12VideoProcessCommandList3;56885689#if defined(__cplusplus) && !defined(CINTERFACE)56905691MIDL_INTERFACE("1a0a4ca4-9f08-40ce-9558-b411fd2666ff")5692ID3D12VideoProcessCommandList3 : public ID3D12VideoProcessCommandList25693{5694public:5695virtual void STDMETHODCALLTYPE Barrier(5696UINT32 NumBarrierGroups,5697_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;56985699};570057015702#else /* C style interface */57035704typedef struct ID3D12VideoProcessCommandList3Vtbl5705{5706BEGIN_INTERFACE57075708DECLSPEC_XFGVIRT(IUnknown, QueryInterface)5709HRESULT ( STDMETHODCALLTYPE *QueryInterface )(5710ID3D12VideoProcessCommandList3 * This,5711REFIID riid,5712_COM_Outptr_ void **ppvObject);57135714DECLSPEC_XFGVIRT(IUnknown, AddRef)5715ULONG ( STDMETHODCALLTYPE *AddRef )(5716ID3D12VideoProcessCommandList3 * This);57175718DECLSPEC_XFGVIRT(IUnknown, Release)5719ULONG ( STDMETHODCALLTYPE *Release )(5720ID3D12VideoProcessCommandList3 * This);57215722DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)5723HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(5724ID3D12VideoProcessCommandList3 * This,5725_In_ REFGUID guid,5726_Inout_ UINT *pDataSize,5727_Out_writes_bytes_opt_( *pDataSize ) void *pData);57285729DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)5730HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(5731ID3D12VideoProcessCommandList3 * This,5732_In_ REFGUID guid,5733_In_ UINT DataSize,5734_In_reads_bytes_opt_( DataSize ) const void *pData);57355736DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)5737HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(5738ID3D12VideoProcessCommandList3 * This,5739_In_ REFGUID guid,5740_In_opt_ const IUnknown *pData);57415742DECLSPEC_XFGVIRT(ID3D12Object, SetName)5743HRESULT ( STDMETHODCALLTYPE *SetName )(5744ID3D12VideoProcessCommandList3 * This,5745_In_z_ LPCWSTR Name);57465747DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)5748HRESULT ( STDMETHODCALLTYPE *GetDevice )(5749ID3D12VideoProcessCommandList3 * This,5750REFIID riid,5751_COM_Outptr_opt_ void **ppvDevice);57525753DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)5754D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(5755ID3D12VideoProcessCommandList3 * This);57565757DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)5758HRESULT ( STDMETHODCALLTYPE *Close )(5759ID3D12VideoProcessCommandList3 * This);57605761DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)5762HRESULT ( STDMETHODCALLTYPE *Reset )(5763ID3D12VideoProcessCommandList3 * This,5764_In_ ID3D12CommandAllocator *pAllocator);57655766DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)5767void ( STDMETHODCALLTYPE *ClearState )(5768ID3D12VideoProcessCommandList3 * This);57695770DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)5771void ( STDMETHODCALLTYPE *ResourceBarrier )(5772ID3D12VideoProcessCommandList3 * This,5773_In_ UINT NumBarriers,5774_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);57755776DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)5777void ( STDMETHODCALLTYPE *DiscardResource )(5778ID3D12VideoProcessCommandList3 * This,5779_In_ ID3D12Resource *pResource,5780_In_opt_ const D3D12_DISCARD_REGION *pRegion);57815782DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)5783void ( STDMETHODCALLTYPE *BeginQuery )(5784ID3D12VideoProcessCommandList3 * This,5785_In_ ID3D12QueryHeap *pQueryHeap,5786_In_ D3D12_QUERY_TYPE Type,5787_In_ UINT Index);57885789DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)5790void ( STDMETHODCALLTYPE *EndQuery )(5791ID3D12VideoProcessCommandList3 * This,5792_In_ ID3D12QueryHeap *pQueryHeap,5793_In_ D3D12_QUERY_TYPE Type,5794_In_ UINT Index);57955796DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)5797void ( STDMETHODCALLTYPE *ResolveQueryData )(5798ID3D12VideoProcessCommandList3 * This,5799_In_ ID3D12QueryHeap *pQueryHeap,5800_In_ D3D12_QUERY_TYPE Type,5801_In_ UINT StartIndex,5802_In_ UINT NumQueries,5803_In_ ID3D12Resource *pDestinationBuffer,5804_In_ UINT64 AlignedDestinationBufferOffset);58055806DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)5807void ( STDMETHODCALLTYPE *SetPredication )(5808ID3D12VideoProcessCommandList3 * This,5809_In_opt_ ID3D12Resource *pBuffer,5810_In_ UINT64 AlignedBufferOffset,5811_In_ D3D12_PREDICATION_OP Operation);58125813DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)5814void ( STDMETHODCALLTYPE *SetMarker )(5815ID3D12VideoProcessCommandList3 * This,5816UINT Metadata,5817_In_reads_bytes_opt_(Size) const void *pData,5818UINT Size);58195820DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)5821void ( STDMETHODCALLTYPE *BeginEvent )(5822ID3D12VideoProcessCommandList3 * This,5823UINT Metadata,5824_In_reads_bytes_opt_(Size) const void *pData,5825UINT Size);58265827DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)5828void ( STDMETHODCALLTYPE *EndEvent )(5829ID3D12VideoProcessCommandList3 * This);58305831DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)5832void ( STDMETHODCALLTYPE *ProcessFrames )(5833ID3D12VideoProcessCommandList3 * This,5834_In_ ID3D12VideoProcessor *pVideoProcessor,5835_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5836UINT NumInputStreams,5837_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);58385839DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)5840void ( STDMETHODCALLTYPE *WriteBufferImmediate )(5841ID3D12VideoProcessCommandList3 * This,5842UINT Count,5843_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,5844_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);58455846DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)5847void ( STDMETHODCALLTYPE *ProcessFrames1 )(5848ID3D12VideoProcessCommandList3 * This,5849_In_ ID3D12VideoProcessor *pVideoProcessor,5850_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,5851UINT NumInputStreams,5852_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);58535854DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)5855void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(5856ID3D12VideoProcessCommandList3 * This,5857_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);58585859DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)5860void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(5861ID3D12VideoProcessCommandList3 * This,5862_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5863_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,5864SIZE_T InitializationParametersSizeInBytes);58655866DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)5867void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(5868ID3D12VideoProcessCommandList3 * This,5869_In_ ID3D12VideoExtensionCommand *pExtensionCommand,5870_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,5871SIZE_T ExecutionParametersSizeInBytes);58725873DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList3, Barrier)5874void ( STDMETHODCALLTYPE *Barrier )(5875ID3D12VideoProcessCommandList3 * This,5876UINT32 NumBarrierGroups,5877_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);58785879END_INTERFACE5880} ID3D12VideoProcessCommandList3Vtbl;58815882interface ID3D12VideoProcessCommandList35883{5884CONST_VTBL struct ID3D12VideoProcessCommandList3Vtbl *lpVtbl;5885};5886588758885889#ifdef COBJMACROS589058915892#define ID3D12VideoProcessCommandList3_QueryInterface(This,riid,ppvObject) \5893( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )58945895#define ID3D12VideoProcessCommandList3_AddRef(This) \5896( (This)->lpVtbl -> AddRef(This) )58975898#define ID3D12VideoProcessCommandList3_Release(This) \5899( (This)->lpVtbl -> Release(This) )590059015902#define ID3D12VideoProcessCommandList3_GetPrivateData(This,guid,pDataSize,pData) \5903( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )59045905#define ID3D12VideoProcessCommandList3_SetPrivateData(This,guid,DataSize,pData) \5906( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )59075908#define ID3D12VideoProcessCommandList3_SetPrivateDataInterface(This,guid,pData) \5909( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )59105911#define ID3D12VideoProcessCommandList3_SetName(This,Name) \5912( (This)->lpVtbl -> SetName(This,Name) )591359145915#define ID3D12VideoProcessCommandList3_GetDevice(This,riid,ppvDevice) \5916( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )591759185919#define ID3D12VideoProcessCommandList3_GetType(This) \5920( (This)->lpVtbl -> GetType(This) )592159225923#define ID3D12VideoProcessCommandList3_Close(This) \5924( (This)->lpVtbl -> Close(This) )59255926#define ID3D12VideoProcessCommandList3_Reset(This,pAllocator) \5927( (This)->lpVtbl -> Reset(This,pAllocator) )59285929#define ID3D12VideoProcessCommandList3_ClearState(This) \5930( (This)->lpVtbl -> ClearState(This) )59315932#define ID3D12VideoProcessCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \5933( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )59345935#define ID3D12VideoProcessCommandList3_DiscardResource(This,pResource,pRegion) \5936( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )59375938#define ID3D12VideoProcessCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \5939( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )59405941#define ID3D12VideoProcessCommandList3_EndQuery(This,pQueryHeap,Type,Index) \5942( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )59435944#define ID3D12VideoProcessCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \5945( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )59465947#define ID3D12VideoProcessCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \5948( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )59495950#define ID3D12VideoProcessCommandList3_SetMarker(This,Metadata,pData,Size) \5951( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )59525953#define ID3D12VideoProcessCommandList3_BeginEvent(This,Metadata,pData,Size) \5954( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )59555956#define ID3D12VideoProcessCommandList3_EndEvent(This) \5957( (This)->lpVtbl -> EndEvent(This) )59585959#define ID3D12VideoProcessCommandList3_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5960( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )59615962#define ID3D12VideoProcessCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \5963( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )596459655966#define ID3D12VideoProcessCommandList3_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \5967( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )596859695970#define ID3D12VideoProcessCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \5971( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )59725973#define ID3D12VideoProcessCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \5974( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )59755976#define ID3D12VideoProcessCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \5977( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )597859795980#define ID3D12VideoProcessCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \5981( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )59825983#endif /* COBJMACROS */598459855986#endif /* C style interface */59875988598959905991#endif /* __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ */599259935994#ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__5995#define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__59965997/* interface ID3D12VideoEncodeCommandList1 */5998/* [unique][local][object][uuid] */599960006001EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1;60026003#if defined(__cplusplus) && !defined(CINTERFACE)60046005MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc")6006ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList6007{6008public:6009virtual void STDMETHODCALLTYPE InitializeExtensionCommand(6010_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6011_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,6012SIZE_T InitializationParametersSizeInBytes) = 0;60136014virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(6015_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6016_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,6017SIZE_T ExecutionParametersSizeInBytes) = 0;60186019};602060216022#else /* C style interface */60236024typedef struct ID3D12VideoEncodeCommandList1Vtbl6025{6026BEGIN_INTERFACE60276028DECLSPEC_XFGVIRT(IUnknown, QueryInterface)6029HRESULT ( STDMETHODCALLTYPE *QueryInterface )(6030ID3D12VideoEncodeCommandList1 * This,6031REFIID riid,6032_COM_Outptr_ void **ppvObject);60336034DECLSPEC_XFGVIRT(IUnknown, AddRef)6035ULONG ( STDMETHODCALLTYPE *AddRef )(6036ID3D12VideoEncodeCommandList1 * This);60376038DECLSPEC_XFGVIRT(IUnknown, Release)6039ULONG ( STDMETHODCALLTYPE *Release )(6040ID3D12VideoEncodeCommandList1 * This);60416042DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)6043HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(6044ID3D12VideoEncodeCommandList1 * This,6045_In_ REFGUID guid,6046_Inout_ UINT *pDataSize,6047_Out_writes_bytes_opt_( *pDataSize ) void *pData);60486049DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)6050HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(6051ID3D12VideoEncodeCommandList1 * This,6052_In_ REFGUID guid,6053_In_ UINT DataSize,6054_In_reads_bytes_opt_( DataSize ) const void *pData);60556056DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)6057HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(6058ID3D12VideoEncodeCommandList1 * This,6059_In_ REFGUID guid,6060_In_opt_ const IUnknown *pData);60616062DECLSPEC_XFGVIRT(ID3D12Object, SetName)6063HRESULT ( STDMETHODCALLTYPE *SetName )(6064ID3D12VideoEncodeCommandList1 * This,6065_In_z_ LPCWSTR Name);60666067DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)6068HRESULT ( STDMETHODCALLTYPE *GetDevice )(6069ID3D12VideoEncodeCommandList1 * This,6070REFIID riid,6071_COM_Outptr_opt_ void **ppvDevice);60726073DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)6074D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(6075ID3D12VideoEncodeCommandList1 * This);60766077DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)6078HRESULT ( STDMETHODCALLTYPE *Close )(6079ID3D12VideoEncodeCommandList1 * This);60806081DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)6082HRESULT ( STDMETHODCALLTYPE *Reset )(6083ID3D12VideoEncodeCommandList1 * This,6084_In_ ID3D12CommandAllocator *pAllocator);60856086DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)6087void ( STDMETHODCALLTYPE *ClearState )(6088ID3D12VideoEncodeCommandList1 * This);60896090DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)6091void ( STDMETHODCALLTYPE *ResourceBarrier )(6092ID3D12VideoEncodeCommandList1 * This,6093_In_ UINT NumBarriers,6094_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);60956096DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)6097void ( STDMETHODCALLTYPE *DiscardResource )(6098ID3D12VideoEncodeCommandList1 * This,6099_In_ ID3D12Resource *pResource,6100_In_opt_ const D3D12_DISCARD_REGION *pRegion);61016102DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)6103void ( STDMETHODCALLTYPE *BeginQuery )(6104ID3D12VideoEncodeCommandList1 * This,6105_In_ ID3D12QueryHeap *pQueryHeap,6106_In_ D3D12_QUERY_TYPE Type,6107_In_ UINT Index);61086109DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)6110void ( STDMETHODCALLTYPE *EndQuery )(6111ID3D12VideoEncodeCommandList1 * This,6112_In_ ID3D12QueryHeap *pQueryHeap,6113_In_ D3D12_QUERY_TYPE Type,6114_In_ UINT Index);61156116DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)6117void ( STDMETHODCALLTYPE *ResolveQueryData )(6118ID3D12VideoEncodeCommandList1 * This,6119_In_ ID3D12QueryHeap *pQueryHeap,6120_In_ D3D12_QUERY_TYPE Type,6121_In_ UINT StartIndex,6122_In_ UINT NumQueries,6123_In_ ID3D12Resource *pDestinationBuffer,6124_In_ UINT64 AlignedDestinationBufferOffset);61256126DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)6127void ( STDMETHODCALLTYPE *SetPredication )(6128ID3D12VideoEncodeCommandList1 * This,6129_In_opt_ ID3D12Resource *pBuffer,6130_In_ UINT64 AlignedBufferOffset,6131_In_ D3D12_PREDICATION_OP Operation);61326133DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)6134void ( STDMETHODCALLTYPE *SetMarker )(6135ID3D12VideoEncodeCommandList1 * This,6136UINT Metadata,6137_In_reads_bytes_opt_(Size) const void *pData,6138UINT Size);61396140DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)6141void ( STDMETHODCALLTYPE *BeginEvent )(6142ID3D12VideoEncodeCommandList1 * This,6143UINT Metadata,6144_In_reads_bytes_opt_(Size) const void *pData,6145UINT Size);61466147DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)6148void ( STDMETHODCALLTYPE *EndEvent )(6149ID3D12VideoEncodeCommandList1 * This);61506151DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)6152void ( STDMETHODCALLTYPE *EstimateMotion )(6153ID3D12VideoEncodeCommandList1 * This,6154_In_ ID3D12VideoMotionEstimator *pMotionEstimator,6155_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,6156_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);61576158DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)6159void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(6160ID3D12VideoEncodeCommandList1 * This,6161const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,6162const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);61636164DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)6165void ( STDMETHODCALLTYPE *WriteBufferImmediate )(6166ID3D12VideoEncodeCommandList1 * This,6167UINT Count,6168_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,6169_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);61706171DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)6172void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(6173ID3D12VideoEncodeCommandList1 * This,6174_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);61756176DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)6177void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(6178ID3D12VideoEncodeCommandList1 * This,6179_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6180_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,6181SIZE_T InitializationParametersSizeInBytes);61826183DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)6184void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(6185ID3D12VideoEncodeCommandList1 * This,6186_In_ ID3D12VideoExtensionCommand *pExtensionCommand,6187_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,6188SIZE_T ExecutionParametersSizeInBytes);61896190END_INTERFACE6191} ID3D12VideoEncodeCommandList1Vtbl;61926193interface ID3D12VideoEncodeCommandList16194{6195CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl;6196};6197619861996200#ifdef COBJMACROS620162026203#define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \6204( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )62056206#define ID3D12VideoEncodeCommandList1_AddRef(This) \6207( (This)->lpVtbl -> AddRef(This) )62086209#define ID3D12VideoEncodeCommandList1_Release(This) \6210( (This)->lpVtbl -> Release(This) )621162126213#define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \6214( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )62156216#define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \6217( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )62186219#define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \6220( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )62216222#define ID3D12VideoEncodeCommandList1_SetName(This,Name) \6223( (This)->lpVtbl -> SetName(This,Name) )622462256226#define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \6227( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )622862296230#define ID3D12VideoEncodeCommandList1_GetType(This) \6231( (This)->lpVtbl -> GetType(This) )623262336234#define ID3D12VideoEncodeCommandList1_Close(This) \6235( (This)->lpVtbl -> Close(This) )62366237#define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \6238( (This)->lpVtbl -> Reset(This,pAllocator) )62396240#define ID3D12VideoEncodeCommandList1_ClearState(This) \6241( (This)->lpVtbl -> ClearState(This) )62426243#define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \6244( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )62456246#define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \6247( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )62486249#define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \6250( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )62516252#define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \6253( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )62546255#define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \6256( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )62576258#define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \6259( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )62606261#define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \6262( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )62636264#define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \6265( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )62666267#define ID3D12VideoEncodeCommandList1_EndEvent(This) \6268( (This)->lpVtbl -> EndEvent(This) )62696270#define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \6271( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )62726273#define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \6274( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )62756276#define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \6277( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )62786279#define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \6280( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )628162826283#define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \6284( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )62856286#define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \6287( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )62886289#endif /* COBJMACROS */629062916292#endif /* C style interface */62936294629562966297#endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */629862996300/* interface __MIDL_itf_d3d12video_0000_0022 */6301/* [local] */63026303DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);6304DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);6305DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6306DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);6307DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);6308DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);6309DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6310DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);6311DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);6312DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);6313DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);6314DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);6315DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4);6316DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29);6317DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f);6318DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb);6319DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee);6320DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33);6321DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c);6322DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c);6323DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01);6324DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d);6325DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);6326DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);6327DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);6328DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);6329DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);6330DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);6331DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);6332DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);6333typedef6334enum D3D12_VIDEO_ENCODER_AV1_PROFILE6335{6336D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0,6337D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1,6338D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 26339} D3D12_VIDEO_ENCODER_AV1_PROFILE;63406341typedef6342enum D3D12_VIDEO_ENCODER_AV1_LEVELS6343{6344D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0,6345D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1,6346D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2,6347D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3,6348D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4,6349D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5,6350D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6,6351D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7,6352D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8,6353D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9,6354D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10,6355D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11,6356D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12,6357D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13,6358D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14,6359D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15,6360D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16,6361D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17,6362D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18,6363D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19,6364D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20,6365D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21,6366D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22,6367D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 236368} D3D12_VIDEO_ENCODER_AV1_LEVELS;63696370typedef6371enum D3D12_VIDEO_ENCODER_AV1_TIER6372{6373D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0,6374D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 16375} D3D12_VIDEO_ENCODER_AV1_TIER;63766377typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS6378{6379D3D12_VIDEO_ENCODER_AV1_LEVELS Level;6380D3D12_VIDEO_ENCODER_AV1_TIER Tier;6381} D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS;63826383typedef6384enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS6385{6386D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0,6387D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1,6388D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2,6389D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4,6390D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8,6391D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10,6392D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20,6393D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40,6394D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80,6395D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100,6396D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200,6397D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400,6398D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800,6399D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000,6400D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000,6401D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000,6402D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000,6403D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000,6404D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000,6405D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000,6406D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000,6407D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000,6408D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000,6409D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000,6410D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000,6411D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000,6412D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x20000006413} D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS;64146415DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS);6416typedef6417enum D3D12_VIDEO_ENCODER_AV1_TX_MODE6418{6419D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0,6420D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1,6421D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 26422} D3D12_VIDEO_ENCODER_AV1_TX_MODE;64236424typedef6425enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS6426{6427D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0,6428D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 ) ,6429D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST ) ,6430D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT )6431} D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS;64326433DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS);6434typedef6435enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS6436{6437D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0,6438D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1,6439D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2,6440D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3,6441D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 46442} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS;64436444typedef6445enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS6446{6447D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0,6448D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP ) ,6449D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH ) ,6450D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP ) ,6451D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR ) ,6452D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE )6453} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS;64546455DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS);6456typedef6457enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE6458{6459D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0,6460D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1,6461D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2,6462D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3,6463D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 46464} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE;64656466typedef6467enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE6468{6469D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0,6470D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1,6471D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2,6472D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3,6473D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4,6474D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5,6475D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6,6476D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7,6477D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 86478} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE;64796480typedef6481enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS6482{6483D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0,6484D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED ) ,6485D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q ) ,6486D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V ) ,6487D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H ) ,6488D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U ) ,6489D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V ) ,6490D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME ) ,6491D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP ) ,6492D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV )6493} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS;64946495DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS);6496typedef6497enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE6498{6499D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0,6500D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1,6501D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2,6502D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 36503} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE;65046505typedef6506enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE6507{6508D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0,6509D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1,6510D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2,6511D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3,6512D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 46513} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE;65146515typedef6516enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS6517{6518D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0,6519D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1,6520D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2,6521D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4,6522D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x86523} D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS;65246525DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS);6526typedef6527enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION6528{6529D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0,6530D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1,6531D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2,6532D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 36533} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION;65346535typedef6536enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS6537{6538D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0,6539D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY ) ,6540D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION ) ,6541D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM ) ,6542D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE )6543} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS;65446545DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS);6546typedef6547enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS6548{6549D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0,6550D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1,6551D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2,6552D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4,6553D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8,6554D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10,6555D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20,6556D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40,6557D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80,6558D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x1006559} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS;65606561DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS);6562typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT6563{6564D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags;6565D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags;6566D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters;6567D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[ 3 ][ 3 ];6568D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes;6569D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[ 4 ];6570D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize;6571D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags;6572UINT MaxTemporalLayers;6573UINT MaxSpatialLayers;6574} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT;65756576typedef6577enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE6578{6579D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0,6580D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1,6581D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2,6582D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 36583} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE;65846585typedef6586enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS6587{6588D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0,6589D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME ) ,6590D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME ) ,6591D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME ) ,6592D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME )6593} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS;65946595DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS);6596typedef6597enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE6598{6599D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0,6600D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 16601} D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE;66026603typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT6604{6605D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode;6606UINT MaxUniqueReferencesPerFrame;6607D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes;6608D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags;6609} D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT;66106611typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION6612{6613D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags;6614UINT OrderHintBitsMinus1;6615} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION;66166617typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE6618{6619UINT IntraDistance;6620UINT InterFramePeriod;6621} D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE;66226623typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO6624{6625D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType;6626INT TransformationMatrix[ 8 ];6627BOOL InvalidAffineSet;6628} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO;66296630typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR6631{6632UINT ReconstructedPictureResourceIndex;6633UINT TemporalLayerIndexPlus1;6634UINT SpatialLayerIndexPlus1;6635D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;6636D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo;6637UINT OrderHint;6638UINT PictureIndex;6639} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR;66406641typedef6642enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS6643{6644D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0,6645D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1,6646D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2,6647D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4,6648D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8,6649D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10,6650D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20,6651D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40,6652D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80,6653D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100,6654D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200,6655D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400,6656D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800,6657D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000,6658D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000,6659D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x40006660} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS;66616662DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS);6663typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG6664{6665D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[ 3 ];6666D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[ 3 ];6667} D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG;66686669typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA6670{6671UINT64 EnabledFeatures;6672INT64 FeatureValue[ 8 ];6673} D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA;66746675typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG6676{6677UINT64 UpdateMap;6678UINT64 TemporalUpdate;6679UINT64 UpdateData;6680UINT64 NumSegments;6681D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[ 8 ];6682} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG;66836684typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP6685{6686UINT SegmentsMapByteSize;6687UINT8 *pSegmentsMap;6688} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP;66896690typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG6691{6692UINT64 LoopFilterLevel[ 2 ];6693UINT64 LoopFilterLevelU;6694UINT64 LoopFilterLevelV;6695UINT64 LoopFilterSharpnessLevel;6696UINT64 LoopFilterDeltaEnabled;6697UINT64 UpdateRefDelta;6698INT64 RefDeltas[ 8 ];6699UINT64 UpdateModeDelta;6700INT64 ModeDeltas[ 2 ];6701} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG;67026703typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG6704{6705UINT64 DeltaLFPresent;6706UINT64 DeltaLFMulti;6707UINT64 DeltaLFRes;6708} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG;67096710typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG6711{6712UINT64 BaseQIndex;6713INT64 YDCDeltaQ;6714INT64 UDCDeltaQ;6715INT64 UACDeltaQ;6716INT64 VDCDeltaQ;6717INT64 VACDeltaQ;6718UINT64 UsingQMatrix;6719UINT64 QMY;6720UINT64 QMU;6721UINT64 QMV;6722} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG;67236724typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG6725{6726UINT64 DeltaQPresent;6727UINT64 DeltaQRes;6728} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG;67296730typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG6731{6732UINT64 CdefBits;6733UINT64 CdefDampingMinus3;6734UINT64 CdefYPriStrength[ 8 ];6735UINT64 CdefUVPriStrength[ 8 ];6736UINT64 CdefYSecStrength[ 8 ];6737UINT64 CdefUVSecStrength[ 8 ];6738} D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG;67396740typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA6741{6742D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags;6743D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;6744D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType;6745D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter;6746D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig;6747D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode;6748UINT SuperResDenominator;6749UINT OrderHint;6750UINT PictureIndex;6751UINT TemporalLayerIndexPlus1;6752UINT SpatialLayerIndexPlus1;6753D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[ 8 ];6754UINT ReferenceIndices[ 7 ];6755UINT PrimaryRefFrame;6756UINT RefreshFrameFlags;6757D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;6758D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;6759D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;6760D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;6761D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;6762UINT QPMapValuesCount;6763_Field_size_full_(QPMapValuesCount) INT16 *pRateControlQPMap;6764D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation;6765D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap;6766} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA;67676768typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES6769{6770UINT64 RowCount;6771UINT64 ColCount;6772UINT64 RowHeights[ 64 ];6773UINT64 ColWidths[ 64 ];6774UINT64 ContextUpdateTileId;6775} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES;67766777typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES6778{6779UINT64 CompoundPredictionType;6780D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;6781D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;6782D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;6783D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;6784D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;6785D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig;6786UINT64 PrimaryRefFrame;6787UINT64 ReferenceIndices[ 7 ];6788} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES;67896790typedef6791enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE6792{6793D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0,6794D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1,6795D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2,6796D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3,6797D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 46798} D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE;67996800typedef6801enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS6802{6803D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0,6804D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1,6805D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2,6806D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4,6807D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8,6808D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10,6809D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20,6810D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40,6811D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x806812} D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS;68136814DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS);6815typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP6816{6817UINT ConstantQP_FullIntracodedFrame;6818UINT ConstantQP_InterPredictedFrame_PrevRefOnly;6819UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;6820} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP;68216822typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP16823{6824UINT ConstantQP_FullIntracodedFrame;6825UINT ConstantQP_InterPredictedFrame_PrevRefOnly;6826UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;6827UINT QualityVsSpeed;6828} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1;68296830typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR6831{6832UINT InitialQP;6833UINT MinQP;6834UINT MaxQP;6835UINT64 MaxFrameBitSize;6836UINT64 TargetBitRate;6837UINT64 VBVCapacity;6838UINT64 InitialVBVFullness;6839} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR;68406841typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR16842{6843UINT InitialQP;6844UINT MinQP;6845UINT MaxQP;6846UINT64 MaxFrameBitSize;6847UINT64 TargetBitRate;6848UINT64 VBVCapacity;6849UINT64 InitialVBVFullness;6850UINT QualityVsSpeed;6851} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1;68526853typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR6854{6855UINT InitialQP;6856UINT MinQP;6857UINT MaxQP;6858UINT64 MaxFrameBitSize;6859UINT64 TargetAvgBitRate;6860UINT64 PeakBitRate;6861UINT64 VBVCapacity;6862UINT64 InitialVBVFullness;6863} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR;68646865typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR16866{6867UINT InitialQP;6868UINT MinQP;6869UINT MaxQP;6870UINT64 MaxFrameBitSize;6871UINT64 TargetAvgBitRate;6872UINT64 PeakBitRate;6873UINT64 VBVCapacity;6874UINT64 InitialVBVFullness;6875UINT QualityVsSpeed;6876} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1;68776878typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR6879{6880UINT InitialQP;6881UINT MinQP;6882UINT MaxQP;6883UINT64 MaxFrameBitSize;6884UINT64 TargetAvgBitRate;6885UINT64 PeakBitRate;6886UINT ConstantQualityTarget;6887} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR;68886889typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR16890{6891UINT InitialQP;6892UINT MinQP;6893UINT MaxQP;6894UINT64 MaxFrameBitSize;6895UINT64 TargetAvgBitRate;6896UINT64 PeakBitRate;6897UINT ConstantQualityTarget;6898UINT64 VBVCapacity;6899UINT64 InitialVBVFullness;6900UINT QualityVsSpeed;6901} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1;69026903typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP6904{6905UINT QualityVsSpeed;6906} D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP;69076908typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS6909{6910UINT DataSize;6911union6912{6913const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP *pConfiguration_CQP;6914const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR *pConfiguration_CBR;6915const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR *pConfiguration_VBR;6916const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR *pConfiguration_QVBR;6917const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 *pConfiguration_CQP1;6918const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 *pConfiguration_CBR1;6919const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 *pConfiguration_VBR1;6920const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 *pConfiguration_QVBR1;6921const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP *pConfiguration_AbsoluteQPMap;6922} ;6923} D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS;69246925typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL6926{6927D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode;6928D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags;6929D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams;6930DXGI_RATIONAL TargetFrameRate;6931} D3D12_VIDEO_ENCODER_RATE_CONTROL;69326933typedef6934enum D3D12_VIDEO_ENCODER_CODEC6935{6936D3D12_VIDEO_ENCODER_CODEC_H264 = 0,6937D3D12_VIDEO_ENCODER_CODEC_HEVC = 1,6938D3D12_VIDEO_ENCODER_CODEC_AV1 = 26939} D3D12_VIDEO_ENCODER_CODEC;69406941typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC6942{6943UINT NodeIndex;6944D3D12_VIDEO_ENCODER_CODEC Codec;6945BOOL IsSupported;6946} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC;69476948typedef6949enum D3D12_VIDEO_ENCODER_PROFILE_H2646950{6951D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0,6952D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1,6953D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 26954} D3D12_VIDEO_ENCODER_PROFILE_H264;69556956typedef6957enum D3D12_VIDEO_ENCODER_PROFILE_HEVC6958{6959D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0,6960D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 16961} D3D12_VIDEO_ENCODER_PROFILE_HEVC;69626963typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC6964{6965UINT DataSize;6966union6967{6968D3D12_VIDEO_ENCODER_PROFILE_H264 *pH264Profile;6969D3D12_VIDEO_ENCODER_PROFILE_HEVC *pHEVCProfile;6970D3D12_VIDEO_ENCODER_AV1_PROFILE *pAV1Profile;6971} ;6972} D3D12_VIDEO_ENCODER_PROFILE_DESC;69736974typedef6975enum D3D12_VIDEO_ENCODER_LEVELS_H2646976{6977D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0,6978D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1,6979D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2,6980D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3,6981D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4,6982D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5,6983D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6,6984D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7,6985D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8,6986D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9,6987D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10,6988D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11,6989D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12,6990D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13,6991D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14,6992D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15,6993D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16,6994D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17,6995D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18,6996D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 196997} D3D12_VIDEO_ENCODER_LEVELS_H264;69986999typedef7000enum D3D12_VIDEO_ENCODER_TIER_HEVC7001{7002D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0,7003D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 17004} D3D12_VIDEO_ENCODER_TIER_HEVC;70057006typedef7007enum D3D12_VIDEO_ENCODER_LEVELS_HEVC7008{7009D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0,7010D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1,7011D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2,7012D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3,7013D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4,7014D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5,7015D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6,7016D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7,7017D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8,7018D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9,7019D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10,7020D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11,7021D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 127022} D3D12_VIDEO_ENCODER_LEVELS_HEVC;70237024typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC7025{7026D3D12_VIDEO_ENCODER_LEVELS_HEVC Level;7027D3D12_VIDEO_ENCODER_TIER_HEVC Tier;7028} D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC;70297030typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING7031{7032UINT DataSize;7033union7034{7035D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting;7036D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting;7037D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS *pAV1LevelSetting;7038} ;7039} D3D12_VIDEO_ENCODER_LEVEL_SETTING;70407041typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL7042{7043UINT NodeIndex;7044D3D12_VIDEO_ENCODER_CODEC Codec;7045D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7046BOOL IsSupported;7047D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel;7048D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel;7049} D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL;70507051typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC7052{7053UINT Width;7054UINT Height;7055} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC;70567057typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC7058{7059UINT WidthRatio;7060UINT HeightRatio;7061} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC;70627063typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT7064{7065UINT NodeIndex;7066D3D12_VIDEO_ENCODER_CODEC Codec;7067UINT ResolutionRatiosCount;7068} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT;70697070typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION7071{7072UINT NodeIndex;7073D3D12_VIDEO_ENCODER_CODEC Codec;7074UINT ResolutionRatiosCount;7075BOOL IsSupported;7076D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported;7077D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported;7078UINT ResolutionWidthMultipleRequirement;7079UINT ResolutionHeightMultipleRequirement;7080_Field_size_full_(ResolutionRatiosCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC *pResolutionRatios;7081} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION;70827083typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT7084{7085UINT NodeIndex;7086D3D12_VIDEO_ENCODER_CODEC Codec;7087D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7088DXGI_FORMAT Format;7089BOOL IsSupported;7090} D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT;70917092typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE7093{7094UINT NodeIndex;7095D3D12_VIDEO_ENCODER_CODEC Codec;7096D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode;7097BOOL IsSupported;7098} D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE;70997100typedef7101enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE7102{7103D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0,7104D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 17105} D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE;71067107typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE7108{7109UINT NodeIndex;7110D3D12_VIDEO_ENCODER_CODEC Codec;7111D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7112D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7113D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode;7114BOOL IsSupported;7115} D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE;71167117typedef7118enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE7119{7120D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0,7121D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1,7122D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2,7123D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3,7124D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4,7125D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5,7126D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 67127} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;71287129typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE7130{7131UINT NodeIndex;7132D3D12_VIDEO_ENCODER_CODEC Codec;7133D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7134D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7135D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;7136BOOL IsSupported;7137} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;71387139typedef7140enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS7141{7142D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0,7143D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1,7144D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2,7145D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4,7146D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8,7147D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10,7148D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20,7149D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40,7150D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x807151} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS;71527153DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS);7154typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT7155{7156BOOL Use128SuperBlocks;7157D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration;7158D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags;7159UINT MinTileRows;7160UINT MaxTileRows;7161UINT MinTileCols;7162UINT MaxTileCols;7163UINT MinTileWidth;7164UINT MaxTileWidth;7165UINT MinTileArea;7166UINT MaxTileArea;7167UINT TileSizeBytesMinus1;7168} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;71697170typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT7171{7172UINT DataSize;7173union7174{7175D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT *pAV1Support;7176} ;7177} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;71787179typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG7180{7181UINT NodeIndex;7182D3D12_VIDEO_ENCODER_CODEC Codec;7183D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7184D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;7185D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;7186D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution;7187D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport;7188BOOL IsSupported;7189} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG;71907191typedef7192enum D3D12_VIDEO_ENCODER_HEAP_FLAGS7193{7194D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 07195} D3D12_VIDEO_ENCODER_HEAP_FLAGS;71967197DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS);7198typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC7199{7200UINT NodeMask;7201D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags;7202D3D12_VIDEO_ENCODER_CODEC EncodeCodec;7203D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;7204D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel;7205UINT ResolutionsListCount;7206_Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7207} D3D12_VIDEO_ENCODER_HEAP_DESC;72087209typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE7210{7211D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc;7212BOOL IsSupported;7213UINT64 MemoryPoolL0Size;7214UINT64 MemoryPoolL1Size;7215} D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE;72167217typedef7218enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS7219{7220D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0,7221D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1,7222D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,7223D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4,7224D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8,7225D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10,7226D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20,7227D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x407228} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS;72297230DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS);7231typedef7232enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES7233{7234D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0,7235D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1,7236D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2,7237D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3,7238D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4,7239D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5,7240D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 67241} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES;72427243typedef7244enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS7245{7246D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0,7247D3D12_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 ) ,7248D3D12_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 ) ,7249D3D12_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 ) ,7250D3D12_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 ) ,7251D3D12_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 ) ,7252D3D12_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 ) ,7253D3D12_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 )7254} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS;72557256DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS);7257typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H2647258{7259D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags;7260D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes;7261} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264;72627263typedef7264enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS7265{7266D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0,7267D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1,7268D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,7269D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4,7270D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8,7271D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10,7272D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20,7273D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40,7274D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80,7275D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x1007276} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS;72777278DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS);7279typedef7280enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE7281{7282D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0,7283D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1,7284D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2,7285D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 37286} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE;72877288typedef7289enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE7290{7291D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0,7292D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1,7293D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2,7294D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 37295} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE;72967297typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC7298{7299D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags;7300D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;7301D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;7302D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;7303D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;7304UCHAR max_transform_hierarchy_depth_inter;7305UCHAR max_transform_hierarchy_depth_intra;7306} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC;73077308typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT7309{7310UINT DataSize;7311union7312{7313D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 *pH264Support;7314D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC *pHEVCSupport;7315D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT *pAV1Support;7316} ;7317} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;73187319typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT7320{7321UINT NodeIndex;7322D3D12_VIDEO_ENCODER_CODEC Codec;7323D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7324BOOL IsSupported;7325D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits;7326} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;73277328typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H2647329{7330UINT MaxL0ReferencesForP;7331UINT MaxL0ReferencesForB;7332UINT MaxL1ReferencesForB;7333UINT MaxLongTermReferences;7334UINT MaxDPBCapacity;7335} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264;73367337typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC7338{7339UINT MaxL0ReferencesForP;7340UINT MaxL0ReferencesForB;7341UINT MaxL1ReferencesForB;7342UINT MaxLongTermReferences;7343UINT MaxDPBCapacity;7344} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC;73457346typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT7347{7348UINT DataSize;7349union7350{7351D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 *pH264Support;7352D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC *pHEVCSupport;7353D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT *pAV1Support;7354} ;7355} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;73567357typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT7358{7359UINT NodeIndex;7360D3D12_VIDEO_ENCODER_CODEC Codec;7361D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7362BOOL IsSupported;7363D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport;7364} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;73657366typedef7367enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS7368{7369D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0,7370D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1,7371D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2,7372D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4,7373D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8,7374D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10,7375D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20,7376D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40,7377D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80,7378D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100,7379D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200,7380D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400,7381D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800,7382D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000,7383D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000,7384D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x40007385} D3D12_VIDEO_ENCODER_SUPPORT_FLAGS;73867387DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS);7388typedef7389enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS7390{7391D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0,7392D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1,7393D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2,7394D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4,7395D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x87396} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS;73977398DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS);7399typedef7400enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES7401{7402D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0,7403D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1,7404D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 27405} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES;74067407typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H2647408{7409D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags;7410D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig;7411D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig;7412} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264;74137414typedef7415enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS7416{7417D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0,7418D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1,7419D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2,7420D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4,7421D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8,7422D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10,7423D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20,7424D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x407425} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS;74267427DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS);7428typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC7429{7430D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags;7431D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;7432D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;7433D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;7434D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;7435UCHAR max_transform_hierarchy_depth_inter;7436UCHAR max_transform_hierarchy_depth_intra;7437} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC;74387439typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION7440{7441UINT DataSize;7442union7443{7444D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 *pH264Config;7445D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC *pHEVCConfig;7446D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION *pAV1Config;7447} ;7448} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION;74497450typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH7451{7452D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode;7453UINT IntraRefreshDuration;7454} D3D12_VIDEO_ENCODER_INTRA_REFRESH;74557456typedef7457enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE7458{7459D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0,7460D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1,7461D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2,7462D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3,7463D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 47464} D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE;74657466typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS7467{7468UINT MaxSubregionsNumber;7469UINT MaxIntraRefreshFrameDuration;7470UINT SubregionBlockPixelsSize;7471UINT QPMapRegionPixelsSize;7472} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS;74737474typedef7475enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS7476{7477D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0,7478D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1,7479D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8,7480D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10,7481D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20,7482D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40,7483D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80,7484D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100,7485D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200,7486D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800,7487D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x10007488} D3D12_VIDEO_ENCODER_VALIDATION_FLAGS;74897490DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS);7491typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H2647492{7493UINT GOPLength;7494UINT PPicturePeriod;7495UCHAR pic_order_cnt_type;7496UCHAR log2_max_frame_num_minus4;7497UCHAR log2_max_pic_order_cnt_lsb_minus4;7498} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264;74997500typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC7501{7502UINT GOPLength;7503UINT PPicturePeriod;7504UCHAR log2_max_pic_order_cnt_lsb_minus4;7505} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC;75067507typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE7508{7509UINT DataSize;7510union7511{7512D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 *pH264GroupOfPictures;7513D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC *pHEVCGroupOfPictures;7514D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE *pAV1SequenceStructure;7515} ;7516} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE;75177518typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT7519{7520UINT NodeIndex;7521D3D12_VIDEO_ENCODER_CODEC Codec;7522DXGI_FORMAT InputFormat;7523D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7524D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;7525D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;7526D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;7527D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;7528UINT ResolutionsListCount;7529const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7530UINT MaxReferenceFramesInDPB;7531D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;7532D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;7533D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;7534D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;7535_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;7536} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT;75377538typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES7539{7540union7541{7542UINT MaxBytesPerSlice;7543UINT NumberOfCodingUnitsPerSlice;7544UINT NumberOfRowsPerSlice;7545UINT NumberOfSlicesPerFrame;7546} ;7547} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES;75487549typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA7550{7551UINT DataSize;7552union7553{7554const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_H264;7555const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_HEVC;7556const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES *pTilesPartition_AV1;7557} ;7558} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA;75597560typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT17561{7562UINT NodeIndex;7563D3D12_VIDEO_ENCODER_CODEC Codec;7564DXGI_FORMAT InputFormat;7565D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7566D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;7567D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;7568D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;7569D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;7570UINT ResolutionsListCount;7571const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;7572UINT MaxReferenceFramesInDPB;7573D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;7574D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;7575D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;7576D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;7577_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;7578D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;7579UINT MaxQualityVsSpeed;7580} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1;75817582typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS7583{7584UINT NodeIndex;7585D3D12_VIDEO_ENCODER_CODEC Codec;7586D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;7587DXGI_FORMAT InputFormat;7588D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;7589BOOL IsSupported;7590UINT CompressedBitstreamBufferAccessAlignment;7591UINT EncoderMetadataBufferAccessAlignment;7592UINT MaxEncoderOutputMetadataBufferSize;7593} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS;75947595typedef7596enum D3D12_VIDEO_ENCODER_FLAGS7597{7598D3D12_VIDEO_ENCODER_FLAG_NONE = 07599} D3D12_VIDEO_ENCODER_FLAGS;76007601DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS);7602typedef struct D3D12_VIDEO_ENCODER_DESC7603{7604UINT NodeMask;7605D3D12_VIDEO_ENCODER_FLAGS Flags;7606D3D12_VIDEO_ENCODER_CODEC EncodeCodec;7607D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;7608DXGI_FORMAT InputFormat;7609D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;7610D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision;7611} D3D12_VIDEO_ENCODER_DESC;7612761376147615extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_c_ifspec;7616extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_s_ifspec;76177618#ifndef __ID3D12VideoEncoder_INTERFACE_DEFINED__7619#define __ID3D12VideoEncoder_INTERFACE_DEFINED__76207621/* interface ID3D12VideoEncoder */7622/* [unique][local][object][uuid] */762376247625EXTERN_C const IID IID_ID3D12VideoEncoder;76267627#if defined(__cplusplus) && !defined(CINTERFACE)76287629MIDL_INTERFACE("2E0D212D-8DF9-44A6-A770-BB289B182737")7630ID3D12VideoEncoder : public ID3D12Pageable7631{7632public:7633virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;76347635virtual D3D12_VIDEO_ENCODER_FLAGS STDMETHODCALLTYPE GetEncoderFlags( void) = 0;76367637virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;76387639virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(7640_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;76417642virtual HRESULT STDMETHODCALLTYPE GetCodecConfiguration(7643_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig) = 0;76447645virtual DXGI_FORMAT STDMETHODCALLTYPE GetInputFormat( void) = 0;76467647virtual D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE STDMETHODCALLTYPE GetMaxMotionEstimationPrecision( void) = 0;76487649};765076517652#else /* C style interface */76537654typedef struct ID3D12VideoEncoderVtbl7655{7656BEGIN_INTERFACE76577658DECLSPEC_XFGVIRT(IUnknown, QueryInterface)7659HRESULT ( STDMETHODCALLTYPE *QueryInterface )(7660ID3D12VideoEncoder * This,7661REFIID riid,7662_COM_Outptr_ void **ppvObject);76637664DECLSPEC_XFGVIRT(IUnknown, AddRef)7665ULONG ( STDMETHODCALLTYPE *AddRef )(7666ID3D12VideoEncoder * This);76677668DECLSPEC_XFGVIRT(IUnknown, Release)7669ULONG ( STDMETHODCALLTYPE *Release )(7670ID3D12VideoEncoder * This);76717672DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)7673HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(7674ID3D12VideoEncoder * This,7675_In_ REFGUID guid,7676_Inout_ UINT *pDataSize,7677_Out_writes_bytes_opt_( *pDataSize ) void *pData);76787679DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)7680HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(7681ID3D12VideoEncoder * This,7682_In_ REFGUID guid,7683_In_ UINT DataSize,7684_In_reads_bytes_opt_( DataSize ) const void *pData);76857686DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)7687HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(7688ID3D12VideoEncoder * This,7689_In_ REFGUID guid,7690_In_opt_ const IUnknown *pData);76917692DECLSPEC_XFGVIRT(ID3D12Object, SetName)7693HRESULT ( STDMETHODCALLTYPE *SetName )(7694ID3D12VideoEncoder * This,7695_In_z_ LPCWSTR Name);76967697DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)7698HRESULT ( STDMETHODCALLTYPE *GetDevice )(7699ID3D12VideoEncoder * This,7700REFIID riid,7701_COM_Outptr_opt_ void **ppvDevice);77027703DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetNodeMask)7704UINT ( STDMETHODCALLTYPE *GetNodeMask )(7705ID3D12VideoEncoder * This);77067707DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetEncoderFlags)7708D3D12_VIDEO_ENCODER_FLAGS ( STDMETHODCALLTYPE *GetEncoderFlags )(7709ID3D12VideoEncoder * This);77107711DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodec)7712D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(7713ID3D12VideoEncoder * This);77147715DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecProfile)7716HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(7717ID3D12VideoEncoder * This,7718_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);77197720DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecConfiguration)7721HRESULT ( STDMETHODCALLTYPE *GetCodecConfiguration )(7722ID3D12VideoEncoder * This,7723_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig);77247725DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetInputFormat)7726DXGI_FORMAT ( STDMETHODCALLTYPE *GetInputFormat )(7727ID3D12VideoEncoder * This);77287729DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetMaxMotionEstimationPrecision)7730D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE ( STDMETHODCALLTYPE *GetMaxMotionEstimationPrecision )(7731ID3D12VideoEncoder * This);77327733END_INTERFACE7734} ID3D12VideoEncoderVtbl;77357736interface ID3D12VideoEncoder7737{7738CONST_VTBL struct ID3D12VideoEncoderVtbl *lpVtbl;7739};7740774177427743#ifdef COBJMACROS774477457746#define ID3D12VideoEncoder_QueryInterface(This,riid,ppvObject) \7747( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )77487749#define ID3D12VideoEncoder_AddRef(This) \7750( (This)->lpVtbl -> AddRef(This) )77517752#define ID3D12VideoEncoder_Release(This) \7753( (This)->lpVtbl -> Release(This) )775477557756#define ID3D12VideoEncoder_GetPrivateData(This,guid,pDataSize,pData) \7757( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )77587759#define ID3D12VideoEncoder_SetPrivateData(This,guid,DataSize,pData) \7760( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )77617762#define ID3D12VideoEncoder_SetPrivateDataInterface(This,guid,pData) \7763( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )77647765#define ID3D12VideoEncoder_SetName(This,Name) \7766( (This)->lpVtbl -> SetName(This,Name) )776777687769#define ID3D12VideoEncoder_GetDevice(This,riid,ppvDevice) \7770( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )7771777277737774#define ID3D12VideoEncoder_GetNodeMask(This) \7775( (This)->lpVtbl -> GetNodeMask(This) )77767777#define ID3D12VideoEncoder_GetEncoderFlags(This) \7778( (This)->lpVtbl -> GetEncoderFlags(This) )77797780#define ID3D12VideoEncoder_GetCodec(This) \7781( (This)->lpVtbl -> GetCodec(This) )77827783#define ID3D12VideoEncoder_GetCodecProfile(This,dstProfile) \7784( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )77857786#define ID3D12VideoEncoder_GetCodecConfiguration(This,dstCodecConfig) \7787( (This)->lpVtbl -> GetCodecConfiguration(This,dstCodecConfig) )77887789#define ID3D12VideoEncoder_GetInputFormat(This) \7790( (This)->lpVtbl -> GetInputFormat(This) )77917792#define ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(This) \7793( (This)->lpVtbl -> GetMaxMotionEstimationPrecision(This) )77947795#endif /* COBJMACROS */779677977798#endif /* C style interface */77997800780178027803#endif /* __ID3D12VideoEncoder_INTERFACE_DEFINED__ */780478057806#ifndef __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__7807#define __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__78087809/* interface ID3D12VideoEncoderHeap */7810/* [unique][local][object][uuid] */781178127813EXTERN_C const IID IID_ID3D12VideoEncoderHeap;78147815#if defined(__cplusplus) && !defined(CINTERFACE)78167817MIDL_INTERFACE("22B35D96-876A-44C0-B25E-FB8C9C7F1C4A")7818ID3D12VideoEncoderHeap : public ID3D12Pageable7819{7820public:7821virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;78227823virtual D3D12_VIDEO_ENCODER_HEAP_FLAGS STDMETHODCALLTYPE GetEncoderHeapFlags( void) = 0;78247825virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;78267827virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(7828_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;78297830virtual HRESULT STDMETHODCALLTYPE GetCodecLevel(7831_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel) = 0;78327833virtual UINT STDMETHODCALLTYPE GetResolutionListCount( void) = 0;78347835virtual HRESULT STDMETHODCALLTYPE GetResolutionList(7836const UINT ResolutionsListCount,7837_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList) = 0;78387839};784078417842#else /* C style interface */78437844typedef struct ID3D12VideoEncoderHeapVtbl7845{7846BEGIN_INTERFACE78477848DECLSPEC_XFGVIRT(IUnknown, QueryInterface)7849HRESULT ( STDMETHODCALLTYPE *QueryInterface )(7850ID3D12VideoEncoderHeap * This,7851REFIID riid,7852_COM_Outptr_ void **ppvObject);78537854DECLSPEC_XFGVIRT(IUnknown, AddRef)7855ULONG ( STDMETHODCALLTYPE *AddRef )(7856ID3D12VideoEncoderHeap * This);78577858DECLSPEC_XFGVIRT(IUnknown, Release)7859ULONG ( STDMETHODCALLTYPE *Release )(7860ID3D12VideoEncoderHeap * This);78617862DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)7863HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(7864ID3D12VideoEncoderHeap * This,7865_In_ REFGUID guid,7866_Inout_ UINT *pDataSize,7867_Out_writes_bytes_opt_( *pDataSize ) void *pData);78687869DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)7870HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(7871ID3D12VideoEncoderHeap * This,7872_In_ REFGUID guid,7873_In_ UINT DataSize,7874_In_reads_bytes_opt_( DataSize ) const void *pData);78757876DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)7877HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(7878ID3D12VideoEncoderHeap * This,7879_In_ REFGUID guid,7880_In_opt_ const IUnknown *pData);78817882DECLSPEC_XFGVIRT(ID3D12Object, SetName)7883HRESULT ( STDMETHODCALLTYPE *SetName )(7884ID3D12VideoEncoderHeap * This,7885_In_z_ LPCWSTR Name);78867887DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)7888HRESULT ( STDMETHODCALLTYPE *GetDevice )(7889ID3D12VideoEncoderHeap * This,7890REFIID riid,7891_COM_Outptr_opt_ void **ppvDevice);78927893DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask)7894UINT ( STDMETHODCALLTYPE *GetNodeMask )(7895ID3D12VideoEncoderHeap * This);78967897DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags)7898D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )(7899ID3D12VideoEncoderHeap * This);79007901DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec)7902D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(7903ID3D12VideoEncoderHeap * This);79047905DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile)7906HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(7907ID3D12VideoEncoderHeap * This,7908_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);79097910DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel)7911HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )(7912ID3D12VideoEncoderHeap * This,7913_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel);79147915DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount)7916UINT ( STDMETHODCALLTYPE *GetResolutionListCount )(7917ID3D12VideoEncoderHeap * This);79187919DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList)7920HRESULT ( STDMETHODCALLTYPE *GetResolutionList )(7921ID3D12VideoEncoderHeap * This,7922const UINT ResolutionsListCount,7923_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList);79247925END_INTERFACE7926} ID3D12VideoEncoderHeapVtbl;79277928interface ID3D12VideoEncoderHeap7929{7930CONST_VTBL struct ID3D12VideoEncoderHeapVtbl *lpVtbl;7931};7932793379347935#ifdef COBJMACROS793679377938#define ID3D12VideoEncoderHeap_QueryInterface(This,riid,ppvObject) \7939( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )79407941#define ID3D12VideoEncoderHeap_AddRef(This) \7942( (This)->lpVtbl -> AddRef(This) )79437944#define ID3D12VideoEncoderHeap_Release(This) \7945( (This)->lpVtbl -> Release(This) )794679477948#define ID3D12VideoEncoderHeap_GetPrivateData(This,guid,pDataSize,pData) \7949( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )79507951#define ID3D12VideoEncoderHeap_SetPrivateData(This,guid,DataSize,pData) \7952( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )79537954#define ID3D12VideoEncoderHeap_SetPrivateDataInterface(This,guid,pData) \7955( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )79567957#define ID3D12VideoEncoderHeap_SetName(This,Name) \7958( (This)->lpVtbl -> SetName(This,Name) )795979607961#define ID3D12VideoEncoderHeap_GetDevice(This,riid,ppvDevice) \7962( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )7963796479657966#define ID3D12VideoEncoderHeap_GetNodeMask(This) \7967( (This)->lpVtbl -> GetNodeMask(This) )79687969#define ID3D12VideoEncoderHeap_GetEncoderHeapFlags(This) \7970( (This)->lpVtbl -> GetEncoderHeapFlags(This) )79717972#define ID3D12VideoEncoderHeap_GetCodec(This) \7973( (This)->lpVtbl -> GetCodec(This) )79747975#define ID3D12VideoEncoderHeap_GetCodecProfile(This,dstProfile) \7976( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )79777978#define ID3D12VideoEncoderHeap_GetCodecLevel(This,dstLevel) \7979( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) )79807981#define ID3D12VideoEncoderHeap_GetResolutionListCount(This) \7982( (This)->lpVtbl -> GetResolutionListCount(This) )79837984#define ID3D12VideoEncoderHeap_GetResolutionList(This,ResolutionsListCount,pResolutionList) \7985( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) )79867987#endif /* COBJMACROS */798879897990#endif /* C style interface */79917992799379947995#endif /* __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ */799679977998#ifndef __ID3D12VideoDevice3_INTERFACE_DEFINED__7999#define __ID3D12VideoDevice3_INTERFACE_DEFINED__80008001/* interface ID3D12VideoDevice3 */8002/* [unique][local][object][uuid] */800380048005EXTERN_C const IID IID_ID3D12VideoDevice3;80068007#if defined(__cplusplus) && !defined(CINTERFACE)80088009MIDL_INTERFACE("4243ADB4-3A32-4666-973C-0CCC5625DC44")8010ID3D12VideoDevice3 : public ID3D12VideoDevice28011{8012public:8013virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoder(8014_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,8015_In_ REFIID riid,8016_COM_Outptr_ void **ppVideoEncoder) = 0;80178018virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap(8019_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,8020_In_ REFIID riid,8021_COM_Outptr_ void **ppVideoEncoderHeap) = 0;80228023};802480258026#else /* C style interface */80278028typedef struct ID3D12VideoDevice3Vtbl8029{8030BEGIN_INTERFACE80318032DECLSPEC_XFGVIRT(IUnknown, QueryInterface)8033HRESULT ( STDMETHODCALLTYPE *QueryInterface )(8034ID3D12VideoDevice3 * This,8035REFIID riid,8036_COM_Outptr_ void **ppvObject);80378038DECLSPEC_XFGVIRT(IUnknown, AddRef)8039ULONG ( STDMETHODCALLTYPE *AddRef )(8040ID3D12VideoDevice3 * This);80418042DECLSPEC_XFGVIRT(IUnknown, Release)8043ULONG ( STDMETHODCALLTYPE *Release )(8044ID3D12VideoDevice3 * This);80458046DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)8047HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(8048ID3D12VideoDevice3 * This,8049D3D12_FEATURE_VIDEO FeatureVideo,8050_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,8051UINT FeatureSupportDataSize);80528053DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)8054HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(8055ID3D12VideoDevice3 * This,8056_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,8057_In_ REFIID riid,8058_COM_Outptr_ void **ppVideoDecoder);80598060DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)8061HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(8062ID3D12VideoDevice3 * This,8063_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,8064_In_ REFIID riid,8065_COM_Outptr_ void **ppVideoDecoderHeap);80668067DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)8068HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(8069ID3D12VideoDevice3 * This,8070UINT NodeMask,8071_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,8072UINT NumInputStreamDescs,8073_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,8074_In_ REFIID riid,8075_COM_Outptr_ void **ppVideoProcessor);80768077DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)8078HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(8079ID3D12VideoDevice3 * This,8080_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,8081_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8082_In_ REFIID riid,8083_COM_Outptr_ void **ppVideoMotionEstimator);80848085DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)8086HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(8087ID3D12VideoDevice3 * This,8088_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,8089_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8090_In_ REFIID riid,8091_COM_Outptr_ void **ppVideoMotionVectorHeap);80928093DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)8094HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(8095ID3D12VideoDevice3 * This,8096_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,8097_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8098_In_ REFIID riid,8099_COM_Outptr_ void **ppVideoDecoder);81008101DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)8102HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(8103ID3D12VideoDevice3 * This,8104_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,8105_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8106_In_ REFIID riid,8107_COM_Outptr_ void **ppVideoDecoderHeap);81088109DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)8110HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(8111ID3D12VideoDevice3 * This,8112UINT NodeMask,8113_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,8114UINT NumInputStreamDescs,8115_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,8116_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8117_In_ REFIID riid,8118_COM_Outptr_ void **ppVideoProcessor);81198120DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)8121HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(8122ID3D12VideoDevice3 * This,8123_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,8124_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,8125SIZE_T CreationParametersDataSizeInBytes,8126_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,8127_In_ REFIID riid,8128_COM_Outptr_ void **ppVideoExtensionCommand);81298130DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)8131HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(8132ID3D12VideoDevice3 * This,8133_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8134_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,8135SIZE_T ExecutionParametersSizeInBytes,8136_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,8137SIZE_T OutputDataSizeInBytes);81388139DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder)8140HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )(8141ID3D12VideoDevice3 * This,8142_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,8143_In_ REFIID riid,8144_COM_Outptr_ void **ppVideoEncoder);81458146DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap)8147HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )(8148ID3D12VideoDevice3 * This,8149_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,8150_In_ REFIID riid,8151_COM_Outptr_ void **ppVideoEncoderHeap);81528153END_INTERFACE8154} ID3D12VideoDevice3Vtbl;81558156interface ID3D12VideoDevice38157{8158CONST_VTBL struct ID3D12VideoDevice3Vtbl *lpVtbl;8159};8160816181628163#ifdef COBJMACROS816481658166#define ID3D12VideoDevice3_QueryInterface(This,riid,ppvObject) \8167( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )81688169#define ID3D12VideoDevice3_AddRef(This) \8170( (This)->lpVtbl -> AddRef(This) )81718172#define ID3D12VideoDevice3_Release(This) \8173( (This)->lpVtbl -> Release(This) )817481758176#define ID3D12VideoDevice3_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \8177( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )81788179#define ID3D12VideoDevice3_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \8180( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )81818182#define ID3D12VideoDevice3_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \8183( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )81848185#define ID3D12VideoDevice3_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \8186( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )818781888189#define ID3D12VideoDevice3_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \8190( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )81918192#define ID3D12VideoDevice3_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \8193( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )819481958196#define ID3D12VideoDevice3_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \8197( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )81988199#define ID3D12VideoDevice3_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \8200( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )82018202#define ID3D12VideoDevice3_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \8203( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )82048205#define ID3D12VideoDevice3_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \8206( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )82078208#define ID3D12VideoDevice3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \8209( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )821082118212#define ID3D12VideoDevice3_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \8213( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) )82148215#define ID3D12VideoDevice3_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \8216( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) )82178218#endif /* COBJMACROS */821982208221#endif /* C style interface */82228223822482258226#endif /* __ID3D12VideoDevice3_INTERFACE_DEFINED__ */822782288229/* interface __MIDL_itf_d3d12video_0000_0025 */8230/* [local] */82318232typedef8233enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H2648234{8235D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0,8236D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1,8237D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2,8238D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 38239} D3D12_VIDEO_ENCODER_FRAME_TYPE_H264;82408241typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H2648242{8243UINT ReconstructedPictureResourceIndex;8244BOOL IsLongTermReference;8245UINT LongTermPictureIdx;8246UINT PictureOrderCountNumber;8247UINT FrameDecodingOrderNumber;8248UINT TemporalLayerIndex;8249} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264;82508251typedef8252enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS8253{8254D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0,8255D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x18256} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS;82578258DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS);8259typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION8260{8261UCHAR memory_management_control_operation;8262UINT difference_of_pic_nums_minus1;8263UINT long_term_pic_num;8264UINT long_term_frame_idx;8265UINT max_long_term_frame_idx_plus1;8266} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION;82678268typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION8269{8270UCHAR modification_of_pic_nums_idc;8271UINT abs_diff_pic_num_minus1;8272UINT long_term_pic_num;8273} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION;82748275typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H2648276{8277D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags;8278D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType;8279UINT pic_parameter_set_id;8280UINT idr_pic_id;8281UINT PictureOrderCountNumber;8282UINT FrameDecodingOrderNumber;8283UINT TemporalLayerIndex;8284UINT List0ReferenceFramesCount;8285_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;8286UINT List1ReferenceFramesCount;8287_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;8288UINT ReferenceFramesReconPictureDescriptorsCount;8289_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 *pReferenceFramesReconPictureDescriptors;8290UCHAR adaptive_ref_pic_marking_mode_flag;8291UINT RefPicMarkingOperationsCommandsCount;8292_Field_size_full_(RefPicMarkingOperationsCommandsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION *pRefPicMarkingOperationsCommands;8293UINT List0RefPicModificationsCount;8294_Field_size_full_(List0RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList0RefPicModifications;8295UINT List1RefPicModificationsCount;8296_Field_size_full_(List1RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList1RefPicModifications;8297UINT QPMapValuesCount;8298_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;8299} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264;83008301typedef8302enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC8303{8304D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0,8305D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1,8306D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2,8307D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 38308} D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC;83098310typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC8311{8312UINT ReconstructedPictureResourceIndex;8313BOOL IsRefUsedByCurrentPic;8314BOOL IsLongTermReference;8315UINT PictureOrderCountNumber;8316UINT TemporalLayerIndex;8317} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC;83188319typedef8320enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS8321{8322D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0,8323D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x18324} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS;83258326DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS);8327typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC8328{8329D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags;8330D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType;8331UINT slice_pic_parameter_set_id;8332UINT PictureOrderCountNumber;8333UINT TemporalLayerIndex;8334UINT List0ReferenceFramesCount;8335_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;8336UINT List1ReferenceFramesCount;8337_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;8338UINT ReferenceFramesReconPictureDescriptorsCount;8339_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors;8340UINT List0RefPicModificationsCount;8341_Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications;8342UINT List1RefPicModificationsCount;8343_Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications;8344UINT QPMapValuesCount;8345_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;8346} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC;83478348typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA8349{8350UINT DataSize;8351union8352{8353D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData;8354D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC *pHEVCPicData;8355D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData;8356} ;8357} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA;83588359typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES8360{8361UINT NumTexture2Ds;8362_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;8363_Field_size_full_(NumTexture2Ds) UINT *pSubresources;8364} D3D12_VIDEO_ENCODE_REFERENCE_FRAMES;83658366typedef8367enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS8368{8369D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0,8370D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x18371} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS;83728373DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS);8374typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC8375{8376UINT IntraRefreshFrameIndex;8377D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;8378D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;8379D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;8380} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;83818382typedef8383enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS8384{8385D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0,8386D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1,8387D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2,8388D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4,8389D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8,8390D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x108391} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS;83928393DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS);8394typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC8395{8396D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags;8397D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig;8398D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;8399D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;8400D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode;8401D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;8402D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;8403} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;84048405typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS8406{8407D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc;8408D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc;8409ID3D12Resource *pInputFrame;8410UINT InputFrameSubresource;8411UINT CurrentFrameBitstreamMetadataSize;8412} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS;84138414typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM8415{8416ID3D12Resource *pBuffer;8417UINT64 FrameStartOffset;8418} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM;84198420typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE8421{8422ID3D12Resource *pReconstructedPicture;8423UINT ReconstructedPictureSubresource;8424} D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE;84258426typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA8427{8428UINT64 bSize;8429UINT64 bStartOffset;8430UINT64 bHeaderSize;8431} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA;84328433typedef8434enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS8435{8436D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0,8437D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1,8438D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2,8439D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4,8440D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8,8441D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x108442} D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS;84438444DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS);8445typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS8446{8447UINT64 AverageQP;8448UINT64 IntraCodingUnitsCount;8449UINT64 InterCodingUnitsCount;8450UINT64 SkipCodingUnitsCount;8451UINT64 AverageMotionEstimationXDirection;8452UINT64 AverageMotionEstimationYDirection;8453} D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS;84548455typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA8456{8457UINT64 EncodeErrorFlags;8458D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats;8459UINT64 EncodedBitstreamWrittenBytesCount;8460UINT64 WrittenSubregionsCount;8461} D3D12_VIDEO_ENCODER_OUTPUT_METADATA;84628463typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER8464{8465ID3D12Resource *pBuffer;8466UINT64 Offset;8467} D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER;84688469typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS8470{8471D3D12_VIDEO_ENCODER_CODEC EncoderCodec;8472D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile;8473DXGI_FORMAT EncoderInputFormat;8474D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution;8475D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata;8476} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS;84778478typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS8479{8480D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata;8481} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS;84828483typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS8484{8485D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream;8486D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture;8487D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata;8488} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS;8489849084918492extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_c_ifspec;8493extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_s_ifspec;84948495#ifndef __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__8496#define __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__84978498/* interface ID3D12VideoEncodeCommandList2 */8499/* [unique][local][object][uuid] */850085018502EXTERN_C const IID IID_ID3D12VideoEncodeCommandList2;85038504#if defined(__cplusplus) && !defined(CINTERFACE)85058506MIDL_INTERFACE("895491e2-e701-46a9-9a1f-8d3480ed867a")8507ID3D12VideoEncodeCommandList2 : public ID3D12VideoEncodeCommandList18508{8509public:8510virtual void STDMETHODCALLTYPE EncodeFrame(8511_In_ ID3D12VideoEncoder *pEncoder,8512_In_ ID3D12VideoEncoderHeap *pHeap,8513_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,8514_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments) = 0;85158516virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata(8517_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,8518_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments) = 0;85198520};852185228523#else /* C style interface */85248525typedef struct ID3D12VideoEncodeCommandList2Vtbl8526{8527BEGIN_INTERFACE85288529DECLSPEC_XFGVIRT(IUnknown, QueryInterface)8530HRESULT ( STDMETHODCALLTYPE *QueryInterface )(8531ID3D12VideoEncodeCommandList2 * This,8532REFIID riid,8533_COM_Outptr_ void **ppvObject);85348535DECLSPEC_XFGVIRT(IUnknown, AddRef)8536ULONG ( STDMETHODCALLTYPE *AddRef )(8537ID3D12VideoEncodeCommandList2 * This);85388539DECLSPEC_XFGVIRT(IUnknown, Release)8540ULONG ( STDMETHODCALLTYPE *Release )(8541ID3D12VideoEncodeCommandList2 * This);85428543DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)8544HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(8545ID3D12VideoEncodeCommandList2 * This,8546_In_ REFGUID guid,8547_Inout_ UINT *pDataSize,8548_Out_writes_bytes_opt_( *pDataSize ) void *pData);85498550DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)8551HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(8552ID3D12VideoEncodeCommandList2 * This,8553_In_ REFGUID guid,8554_In_ UINT DataSize,8555_In_reads_bytes_opt_( DataSize ) const void *pData);85568557DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)8558HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(8559ID3D12VideoEncodeCommandList2 * This,8560_In_ REFGUID guid,8561_In_opt_ const IUnknown *pData);85628563DECLSPEC_XFGVIRT(ID3D12Object, SetName)8564HRESULT ( STDMETHODCALLTYPE *SetName )(8565ID3D12VideoEncodeCommandList2 * This,8566_In_z_ LPCWSTR Name);85678568DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)8569HRESULT ( STDMETHODCALLTYPE *GetDevice )(8570ID3D12VideoEncodeCommandList2 * This,8571REFIID riid,8572_COM_Outptr_opt_ void **ppvDevice);85738574DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)8575D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(8576ID3D12VideoEncodeCommandList2 * This);85778578DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)8579HRESULT ( STDMETHODCALLTYPE *Close )(8580ID3D12VideoEncodeCommandList2 * This);85818582DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)8583HRESULT ( STDMETHODCALLTYPE *Reset )(8584ID3D12VideoEncodeCommandList2 * This,8585_In_ ID3D12CommandAllocator *pAllocator);85868587DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)8588void ( STDMETHODCALLTYPE *ClearState )(8589ID3D12VideoEncodeCommandList2 * This);85908591DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)8592void ( STDMETHODCALLTYPE *ResourceBarrier )(8593ID3D12VideoEncodeCommandList2 * This,8594_In_ UINT NumBarriers,8595_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);85968597DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)8598void ( STDMETHODCALLTYPE *DiscardResource )(8599ID3D12VideoEncodeCommandList2 * This,8600_In_ ID3D12Resource *pResource,8601_In_opt_ const D3D12_DISCARD_REGION *pRegion);86028603DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)8604void ( STDMETHODCALLTYPE *BeginQuery )(8605ID3D12VideoEncodeCommandList2 * This,8606_In_ ID3D12QueryHeap *pQueryHeap,8607_In_ D3D12_QUERY_TYPE Type,8608_In_ UINT Index);86098610DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)8611void ( STDMETHODCALLTYPE *EndQuery )(8612ID3D12VideoEncodeCommandList2 * This,8613_In_ ID3D12QueryHeap *pQueryHeap,8614_In_ D3D12_QUERY_TYPE Type,8615_In_ UINT Index);86168617DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)8618void ( STDMETHODCALLTYPE *ResolveQueryData )(8619ID3D12VideoEncodeCommandList2 * This,8620_In_ ID3D12QueryHeap *pQueryHeap,8621_In_ D3D12_QUERY_TYPE Type,8622_In_ UINT StartIndex,8623_In_ UINT NumQueries,8624_In_ ID3D12Resource *pDestinationBuffer,8625_In_ UINT64 AlignedDestinationBufferOffset);86268627DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)8628void ( STDMETHODCALLTYPE *SetPredication )(8629ID3D12VideoEncodeCommandList2 * This,8630_In_opt_ ID3D12Resource *pBuffer,8631_In_ UINT64 AlignedBufferOffset,8632_In_ D3D12_PREDICATION_OP Operation);86338634DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)8635void ( STDMETHODCALLTYPE *SetMarker )(8636ID3D12VideoEncodeCommandList2 * This,8637UINT Metadata,8638_In_reads_bytes_opt_(Size) const void *pData,8639UINT Size);86408641DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)8642void ( STDMETHODCALLTYPE *BeginEvent )(8643ID3D12VideoEncodeCommandList2 * This,8644UINT Metadata,8645_In_reads_bytes_opt_(Size) const void *pData,8646UINT Size);86478648DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)8649void ( STDMETHODCALLTYPE *EndEvent )(8650ID3D12VideoEncodeCommandList2 * This);86518652DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)8653void ( STDMETHODCALLTYPE *EstimateMotion )(8654ID3D12VideoEncodeCommandList2 * This,8655_In_ ID3D12VideoMotionEstimator *pMotionEstimator,8656_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,8657_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);86588659DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)8660void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(8661ID3D12VideoEncodeCommandList2 * This,8662const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,8663const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);86648665DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)8666void ( STDMETHODCALLTYPE *WriteBufferImmediate )(8667ID3D12VideoEncodeCommandList2 * This,8668UINT Count,8669_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,8670_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);86718672DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)8673void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(8674ID3D12VideoEncodeCommandList2 * This,8675_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);86768677DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)8678void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(8679ID3D12VideoEncodeCommandList2 * This,8680_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8681_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,8682SIZE_T InitializationParametersSizeInBytes);86838684DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)8685void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(8686ID3D12VideoEncodeCommandList2 * This,8687_In_ ID3D12VideoExtensionCommand *pExtensionCommand,8688_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,8689SIZE_T ExecutionParametersSizeInBytes);86908691DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)8692void ( STDMETHODCALLTYPE *EncodeFrame )(8693ID3D12VideoEncodeCommandList2 * This,8694_In_ ID3D12VideoEncoder *pEncoder,8695_In_ ID3D12VideoEncoderHeap *pHeap,8696_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,8697_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);86988699DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)8700void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(8701ID3D12VideoEncodeCommandList2 * This,8702_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,8703_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);87048705END_INTERFACE8706} ID3D12VideoEncodeCommandList2Vtbl;87078708interface ID3D12VideoEncodeCommandList28709{8710CONST_VTBL struct ID3D12VideoEncodeCommandList2Vtbl *lpVtbl;8711};8712871387148715#ifdef COBJMACROS871687178718#define ID3D12VideoEncodeCommandList2_QueryInterface(This,riid,ppvObject) \8719( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )87208721#define ID3D12VideoEncodeCommandList2_AddRef(This) \8722( (This)->lpVtbl -> AddRef(This) )87238724#define ID3D12VideoEncodeCommandList2_Release(This) \8725( (This)->lpVtbl -> Release(This) )872687278728#define ID3D12VideoEncodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \8729( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )87308731#define ID3D12VideoEncodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \8732( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )87338734#define ID3D12VideoEncodeCommandList2_SetPrivateDataInterface(This,guid,pData) \8735( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )87368737#define ID3D12VideoEncodeCommandList2_SetName(This,Name) \8738( (This)->lpVtbl -> SetName(This,Name) )873987408741#define ID3D12VideoEncodeCommandList2_GetDevice(This,riid,ppvDevice) \8742( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )874387448745#define ID3D12VideoEncodeCommandList2_GetType(This) \8746( (This)->lpVtbl -> GetType(This) )874787488749#define ID3D12VideoEncodeCommandList2_Close(This) \8750( (This)->lpVtbl -> Close(This) )87518752#define ID3D12VideoEncodeCommandList2_Reset(This,pAllocator) \8753( (This)->lpVtbl -> Reset(This,pAllocator) )87548755#define ID3D12VideoEncodeCommandList2_ClearState(This) \8756( (This)->lpVtbl -> ClearState(This) )87578758#define ID3D12VideoEncodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \8759( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )87608761#define ID3D12VideoEncodeCommandList2_DiscardResource(This,pResource,pRegion) \8762( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )87638764#define ID3D12VideoEncodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \8765( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )87668767#define ID3D12VideoEncodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \8768( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )87698770#define ID3D12VideoEncodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \8771( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )87728773#define ID3D12VideoEncodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \8774( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )87758776#define ID3D12VideoEncodeCommandList2_SetMarker(This,Metadata,pData,Size) \8777( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )87788779#define ID3D12VideoEncodeCommandList2_BeginEvent(This,Metadata,pData,Size) \8780( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )87818782#define ID3D12VideoEncodeCommandList2_EndEvent(This) \8783( (This)->lpVtbl -> EndEvent(This) )87848785#define ID3D12VideoEncodeCommandList2_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \8786( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )87878788#define ID3D12VideoEncodeCommandList2_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \8789( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )87908791#define ID3D12VideoEncodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \8792( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )87938794#define ID3D12VideoEncodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \8795( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )879687978798#define ID3D12VideoEncodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \8799( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )88008801#define ID3D12VideoEncodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \8802( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )880388048805#define ID3D12VideoEncodeCommandList2_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \8806( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )88078808#define ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \8809( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )88108811#endif /* COBJMACROS */881288138814#endif /* C style interface */88158816881788188819#endif /* __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ */882088218822#ifndef __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__8823#define __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__88248825/* interface ID3D12VideoEncodeCommandList3 */8826/* [unique][local][object][uuid] */882788288829EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3;88308831#if defined(__cplusplus) && !defined(CINTERFACE)88328833MIDL_INTERFACE("7f027b22-1515-4e85-aa0d-026486580576")8834ID3D12VideoEncodeCommandList3 : public ID3D12VideoEncodeCommandList28835{8836public:8837virtual void STDMETHODCALLTYPE Barrier(8838UINT32 NumBarrierGroups,8839_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;88408841};884288438844#else /* C style interface */88458846typedef struct ID3D12VideoEncodeCommandList3Vtbl8847{8848BEGIN_INTERFACE88498850DECLSPEC_XFGVIRT(IUnknown, QueryInterface)8851HRESULT ( STDMETHODCALLTYPE *QueryInterface )(8852ID3D12VideoEncodeCommandList3 * This,8853REFIID riid,8854_COM_Outptr_ void **ppvObject);88558856DECLSPEC_XFGVIRT(IUnknown, AddRef)8857ULONG ( STDMETHODCALLTYPE *AddRef )(8858ID3D12VideoEncodeCommandList3 * This);88598860DECLSPEC_XFGVIRT(IUnknown, Release)8861ULONG ( STDMETHODCALLTYPE *Release )(8862ID3D12VideoEncodeCommandList3 * This);88638864DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)8865HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(8866ID3D12VideoEncodeCommandList3 * This,8867_In_ REFGUID guid,8868_Inout_ UINT *pDataSize,8869_Out_writes_bytes_opt_( *pDataSize ) void *pData);88708871DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)8872HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(8873ID3D12VideoEncodeCommandList3 * This,8874_In_ REFGUID guid,8875_In_ UINT DataSize,8876_In_reads_bytes_opt_( DataSize ) const void *pData);88778878DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)8879HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(8880ID3D12VideoEncodeCommandList3 * This,8881_In_ REFGUID guid,8882_In_opt_ const IUnknown *pData);88838884DECLSPEC_XFGVIRT(ID3D12Object, SetName)8885HRESULT ( STDMETHODCALLTYPE *SetName )(8886ID3D12VideoEncodeCommandList3 * This,8887_In_z_ LPCWSTR Name);88888889DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)8890HRESULT ( STDMETHODCALLTYPE *GetDevice )(8891ID3D12VideoEncodeCommandList3 * This,8892REFIID riid,8893_COM_Outptr_opt_ void **ppvDevice);88948895DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)8896D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(8897ID3D12VideoEncodeCommandList3 * This);88988899DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)8900HRESULT ( STDMETHODCALLTYPE *Close )(8901ID3D12VideoEncodeCommandList3 * This);89028903DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)8904HRESULT ( STDMETHODCALLTYPE *Reset )(8905ID3D12VideoEncodeCommandList3 * This,8906_In_ ID3D12CommandAllocator *pAllocator);89078908DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)8909void ( STDMETHODCALLTYPE *ClearState )(8910ID3D12VideoEncodeCommandList3 * This);89118912DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)8913void ( STDMETHODCALLTYPE *ResourceBarrier )(8914ID3D12VideoEncodeCommandList3 * This,8915_In_ UINT NumBarriers,8916_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);89178918DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)8919void ( STDMETHODCALLTYPE *DiscardResource )(8920ID3D12VideoEncodeCommandList3 * This,8921_In_ ID3D12Resource *pResource,8922_In_opt_ const D3D12_DISCARD_REGION *pRegion);89238924DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)8925void ( STDMETHODCALLTYPE *BeginQuery )(8926ID3D12VideoEncodeCommandList3 * This,8927_In_ ID3D12QueryHeap *pQueryHeap,8928_In_ D3D12_QUERY_TYPE Type,8929_In_ UINT Index);89308931DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)8932void ( STDMETHODCALLTYPE *EndQuery )(8933ID3D12VideoEncodeCommandList3 * This,8934_In_ ID3D12QueryHeap *pQueryHeap,8935_In_ D3D12_QUERY_TYPE Type,8936_In_ UINT Index);89378938DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)8939void ( STDMETHODCALLTYPE *ResolveQueryData )(8940ID3D12VideoEncodeCommandList3 * This,8941_In_ ID3D12QueryHeap *pQueryHeap,8942_In_ D3D12_QUERY_TYPE Type,8943_In_ UINT StartIndex,8944_In_ UINT NumQueries,8945_In_ ID3D12Resource *pDestinationBuffer,8946_In_ UINT64 AlignedDestinationBufferOffset);89478948DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)8949void ( STDMETHODCALLTYPE *SetPredication )(8950ID3D12VideoEncodeCommandList3 * This,8951_In_opt_ ID3D12Resource *pBuffer,8952_In_ UINT64 AlignedBufferOffset,8953_In_ D3D12_PREDICATION_OP Operation);89548955DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)8956void ( STDMETHODCALLTYPE *SetMarker )(8957ID3D12VideoEncodeCommandList3 * This,8958UINT Metadata,8959_In_reads_bytes_opt_(Size) const void *pData,8960UINT Size);89618962DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)8963void ( STDMETHODCALLTYPE *BeginEvent )(8964ID3D12VideoEncodeCommandList3 * This,8965UINT Metadata,8966_In_reads_bytes_opt_(Size) const void *pData,8967UINT Size);89688969DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)8970void ( STDMETHODCALLTYPE *EndEvent )(8971ID3D12VideoEncodeCommandList3 * This);89728973DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)8974void ( STDMETHODCALLTYPE *EstimateMotion )(8975ID3D12VideoEncodeCommandList3 * This,8976_In_ ID3D12VideoMotionEstimator *pMotionEstimator,8977_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,8978_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);89798980DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)8981void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(8982ID3D12VideoEncodeCommandList3 * This,8983const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,8984const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);89858986DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)8987void ( STDMETHODCALLTYPE *WriteBufferImmediate )(8988ID3D12VideoEncodeCommandList3 * This,8989UINT Count,8990_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,8991_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);89928993DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)8994void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(8995ID3D12VideoEncodeCommandList3 * This,8996_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);89978998DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)8999void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(9000ID3D12VideoEncodeCommandList3 * This,9001_In_ ID3D12VideoExtensionCommand *pExtensionCommand,9002_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,9003SIZE_T InitializationParametersSizeInBytes);90049005DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)9006void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(9007ID3D12VideoEncodeCommandList3 * This,9008_In_ ID3D12VideoExtensionCommand *pExtensionCommand,9009_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,9010SIZE_T ExecutionParametersSizeInBytes);90119012DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)9013void ( STDMETHODCALLTYPE *EncodeFrame )(9014ID3D12VideoEncodeCommandList3 * This,9015_In_ ID3D12VideoEncoder *pEncoder,9016_In_ ID3D12VideoEncoderHeap *pHeap,9017_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,9018_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);90199020DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)9021void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(9022ID3D12VideoEncodeCommandList3 * This,9023_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,9024_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);90259026DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier)9027void ( STDMETHODCALLTYPE *Barrier )(9028ID3D12VideoEncodeCommandList3 * This,9029UINT32 NumBarrierGroups,9030_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);90319032END_INTERFACE9033} ID3D12VideoEncodeCommandList3Vtbl;90349035interface ID3D12VideoEncodeCommandList39036{9037CONST_VTBL struct ID3D12VideoEncodeCommandList3Vtbl *lpVtbl;9038};9039904090419042#ifdef COBJMACROS904390449045#define ID3D12VideoEncodeCommandList3_QueryInterface(This,riid,ppvObject) \9046( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )90479048#define ID3D12VideoEncodeCommandList3_AddRef(This) \9049( (This)->lpVtbl -> AddRef(This) )90509051#define ID3D12VideoEncodeCommandList3_Release(This) \9052( (This)->lpVtbl -> Release(This) )905390549055#define ID3D12VideoEncodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \9056( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )90579058#define ID3D12VideoEncodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \9059( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )90609061#define ID3D12VideoEncodeCommandList3_SetPrivateDataInterface(This,guid,pData) \9062( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )90639064#define ID3D12VideoEncodeCommandList3_SetName(This,Name) \9065( (This)->lpVtbl -> SetName(This,Name) )906690679068#define ID3D12VideoEncodeCommandList3_GetDevice(This,riid,ppvDevice) \9069( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )907090719072#define ID3D12VideoEncodeCommandList3_GetType(This) \9073( (This)->lpVtbl -> GetType(This) )907490759076#define ID3D12VideoEncodeCommandList3_Close(This) \9077( (This)->lpVtbl -> Close(This) )90789079#define ID3D12VideoEncodeCommandList3_Reset(This,pAllocator) \9080( (This)->lpVtbl -> Reset(This,pAllocator) )90819082#define ID3D12VideoEncodeCommandList3_ClearState(This) \9083( (This)->lpVtbl -> ClearState(This) )90849085#define ID3D12VideoEncodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \9086( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )90879088#define ID3D12VideoEncodeCommandList3_DiscardResource(This,pResource,pRegion) \9089( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )90909091#define ID3D12VideoEncodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \9092( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )90939094#define ID3D12VideoEncodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \9095( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )90969097#define ID3D12VideoEncodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \9098( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )90999100#define ID3D12VideoEncodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \9101( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )91029103#define ID3D12VideoEncodeCommandList3_SetMarker(This,Metadata,pData,Size) \9104( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )91059106#define ID3D12VideoEncodeCommandList3_BeginEvent(This,Metadata,pData,Size) \9107( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )91089109#define ID3D12VideoEncodeCommandList3_EndEvent(This) \9110( (This)->lpVtbl -> EndEvent(This) )91119112#define ID3D12VideoEncodeCommandList3_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \9113( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )91149115#define ID3D12VideoEncodeCommandList3_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \9116( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )91179118#define ID3D12VideoEncodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \9119( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )91209121#define ID3D12VideoEncodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \9122( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )912391249125#define ID3D12VideoEncodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \9126( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )91279128#define ID3D12VideoEncodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \9129( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )913091319132#define ID3D12VideoEncodeCommandList3_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \9133( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )91349135#define ID3D12VideoEncodeCommandList3_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \9136( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )913791389139#define ID3D12VideoEncodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \9140( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )91419142#endif /* COBJMACROS */914391449145#endif /* C style interface */91469147914891499150#endif /* __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ */915191529153/* interface __MIDL_itf_d3d12video_0000_0027 */9154/* [local] */91559156#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */9157#pragma endregion9158DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);9159DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);9160DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);9161DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);9162DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);9163DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);9164DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);9165DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);9166DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);9167DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);9168DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);9169DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);9170DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);9171DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);9172DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);9173DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);9174DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);9175DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);9176DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13);9177DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);9178DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff);9179DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);9180DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37);9181DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A);9182DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44);9183DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a);9184DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76);918591869187extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec;9188extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec;91899190/* Additional Prototypes for ALL interfaces */91919192/* end of Additional Prototypes */91939194#ifdef __cplusplus9195}9196#endif91979198#endif91999200920192029203