aboutsummaryrefslogtreecommitdiff
path: root/contrib/DirectX-Headers/include/directx/d3d12video.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/DirectX-Headers/include/directx/d3d12video.h')
-rw-r--r--contrib/DirectX-Headers/include/directx/d3d12video.h5533
1 files changed, 5533 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers/include/directx/d3d12video.h b/contrib/DirectX-Headers/include/directx/d3d12video.h
new file mode 100644
index 0000000..8d9d658
--- /dev/null
+++ b/contrib/DirectX-Headers/include/directx/d3d12video.h
@@ -0,0 +1,5533 @@
1/*-------------------------------------------------------------------------------------
2 *
3 * Copyright (c) Microsoft Corporation
4 * Licensed under the MIT license
5 *
6 *-------------------------------------------------------------------------------------*/
7
8
9/* this ALWAYS GENERATED file contains the definitions for the interfaces */
10
11
12 /* File created by MIDL compiler version 8.01.0625 */
13
14
15
16/* verify that the <rpcndr.h> version is high enough to compile this file*/
17#ifndef __REQUIRED_RPCNDR_H_VERSION__
18#define __REQUIRED_RPCNDR_H_VERSION__ 500
19#endif
20
21/* verify that the <rpcsal.h> version is high enough to compile this file*/
22#ifndef __REQUIRED_RPCSAL_H_VERSION__
23#define __REQUIRED_RPCSAL_H_VERSION__ 100
24#endif
25
26#include "rpc.h"
27#include "rpcndr.h"
28
29#ifndef __RPCNDR_H_VERSION__
30#error this stub requires an updated version of <rpcndr.h>
31#endif /* __RPCNDR_H_VERSION__ */
32
33#ifndef COM_NO_WINDOWS_H
34#include "windows.h"
35#include "ole2.h"
36#endif /*COM_NO_WINDOWS_H*/
37
38#ifndef __d3d12video_h__
39#define __d3d12video_h__
40
41#if defined(_MSC_VER) && (_MSC_VER >= 1020)
42#pragma once
43#endif
44
45#ifndef DECLSPEC_XFGVIRT
46#if _CONTROL_FLOW_GUARD_XFG
47#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
48#else
49#define DECLSPEC_XFGVIRT(base, func)
50#endif
51#endif
52
53/* Forward Declarations */
54
55#ifndef __ID3D12VideoDecoderHeap_FWD_DEFINED__
56#define __ID3D12VideoDecoderHeap_FWD_DEFINED__
57typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap;
58
59#endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */
60
61
62#ifndef __ID3D12VideoDevice_FWD_DEFINED__
63#define __ID3D12VideoDevice_FWD_DEFINED__
64typedef interface ID3D12VideoDevice ID3D12VideoDevice;
65
66#endif /* __ID3D12VideoDevice_FWD_DEFINED__ */
67
68
69#ifndef __ID3D12VideoDecoder_FWD_DEFINED__
70#define __ID3D12VideoDecoder_FWD_DEFINED__
71typedef interface ID3D12VideoDecoder ID3D12VideoDecoder;
72
73#endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */
74
75
76#ifndef __ID3D12VideoProcessor_FWD_DEFINED__
77#define __ID3D12VideoProcessor_FWD_DEFINED__
78typedef interface ID3D12VideoProcessor ID3D12VideoProcessor;
79
80#endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */
81
82
83#ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__
84#define __ID3D12VideoDecodeCommandList_FWD_DEFINED__
85typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList;
86
87#endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */
88
89
90#ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__
91#define __ID3D12VideoProcessCommandList_FWD_DEFINED__
92typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList;
93
94#endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */
95
96
97#ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__
98#define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__
99typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1;
100
101#endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */
102
103
104#ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__
105#define __ID3D12VideoProcessCommandList1_FWD_DEFINED__
106typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1;
107
108#endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */
109
110
111#ifndef __ID3D12VideoMotionEstimator_FWD_DEFINED__
112#define __ID3D12VideoMotionEstimator_FWD_DEFINED__
113typedef interface ID3D12VideoMotionEstimator ID3D12VideoMotionEstimator;
114
115#endif /* __ID3D12VideoMotionEstimator_FWD_DEFINED__ */
116
117
118#ifndef __ID3D12VideoMotionVectorHeap_FWD_DEFINED__
119#define __ID3D12VideoMotionVectorHeap_FWD_DEFINED__
120typedef interface ID3D12VideoMotionVectorHeap ID3D12VideoMotionVectorHeap;
121
122#endif /* __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ */
123
124
125#ifndef __ID3D12VideoDevice1_FWD_DEFINED__
126#define __ID3D12VideoDevice1_FWD_DEFINED__
127typedef interface ID3D12VideoDevice1 ID3D12VideoDevice1;
128
129#endif /* __ID3D12VideoDevice1_FWD_DEFINED__ */
130
131
132#ifndef __ID3D12VideoEncodeCommandList_FWD_DEFINED__
133#define __ID3D12VideoEncodeCommandList_FWD_DEFINED__
134typedef interface ID3D12VideoEncodeCommandList ID3D12VideoEncodeCommandList;
135
136#endif /* __ID3D12VideoEncodeCommandList_FWD_DEFINED__ */
137
138
139#ifndef __ID3D12VideoDecoder1_FWD_DEFINED__
140#define __ID3D12VideoDecoder1_FWD_DEFINED__
141typedef interface ID3D12VideoDecoder1 ID3D12VideoDecoder1;
142
143#endif /* __ID3D12VideoDecoder1_FWD_DEFINED__ */
144
145
146#ifndef __ID3D12VideoDecoderHeap1_FWD_DEFINED__
147#define __ID3D12VideoDecoderHeap1_FWD_DEFINED__
148typedef interface ID3D12VideoDecoderHeap1 ID3D12VideoDecoderHeap1;
149
150#endif /* __ID3D12VideoDecoderHeap1_FWD_DEFINED__ */
151
152
153#ifndef __ID3D12VideoProcessor1_FWD_DEFINED__
154#define __ID3D12VideoProcessor1_FWD_DEFINED__
155typedef interface ID3D12VideoProcessor1 ID3D12VideoProcessor1;
156
157#endif /* __ID3D12VideoProcessor1_FWD_DEFINED__ */
158
159
160#ifndef __ID3D12VideoExtensionCommand_FWD_DEFINED__
161#define __ID3D12VideoExtensionCommand_FWD_DEFINED__
162typedef interface ID3D12VideoExtensionCommand ID3D12VideoExtensionCommand;
163
164#endif /* __ID3D12VideoExtensionCommand_FWD_DEFINED__ */
165
166
167#ifndef __ID3D12VideoDevice2_FWD_DEFINED__
168#define __ID3D12VideoDevice2_FWD_DEFINED__
169typedef interface ID3D12VideoDevice2 ID3D12VideoDevice2;
170
171#endif /* __ID3D12VideoDevice2_FWD_DEFINED__ */
172
173
174#ifndef __ID3D12VideoDecodeCommandList2_FWD_DEFINED__
175#define __ID3D12VideoDecodeCommandList2_FWD_DEFINED__
176typedef interface ID3D12VideoDecodeCommandList2 ID3D12VideoDecodeCommandList2;
177
178#endif /* __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ */
179
180
181#ifndef __ID3D12VideoProcessCommandList2_FWD_DEFINED__
182#define __ID3D12VideoProcessCommandList2_FWD_DEFINED__
183typedef interface ID3D12VideoProcessCommandList2 ID3D12VideoProcessCommandList2;
184
185#endif /* __ID3D12VideoProcessCommandList2_FWD_DEFINED__ */
186
187
188#ifndef __ID3D12VideoEncodeCommandList1_FWD_DEFINED__
189#define __ID3D12VideoEncodeCommandList1_FWD_DEFINED__
190typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1;
191
192#endif /* __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ */
193
194
195/* header files for imported files */
196#include "OAIdl.h"
197#include "OCIdl.h"
198#include "dxgicommon.h"
199#include "d3d12.h"
200
201#ifdef __cplusplus
202extern "C"{
203#endif
204
205
206/* interface __MIDL_itf_d3d12video_0000_0000 */
207/* [local] */
208
209#include <winapifamily.h>
210#pragma region App Family
211#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
212typedef
213enum D3D12_VIDEO_FIELD_TYPE
214 {
215 D3D12_VIDEO_FIELD_TYPE_NONE = 0,
216 D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1,
217 D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2
218 } D3D12_VIDEO_FIELD_TYPE;
219
220typedef
221enum D3D12_VIDEO_FRAME_STEREO_FORMAT
222 {
223 D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0,
224 D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1,
225 D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2,
226 D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3,
227 D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4
228 } D3D12_VIDEO_FRAME_STEREO_FORMAT;
229
230typedef struct D3D12_VIDEO_FORMAT
231 {
232 DXGI_FORMAT Format;
233 DXGI_COLOR_SPACE_TYPE ColorSpace;
234 } D3D12_VIDEO_FORMAT;
235
236typedef struct D3D12_VIDEO_SAMPLE
237 {
238 UINT Width;
239 UINT Height;
240 D3D12_VIDEO_FORMAT Format;
241 } D3D12_VIDEO_SAMPLE;
242
243typedef
244enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE
245 {
246 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0,
247 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1
248 } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE;
249
250typedef
251enum D3D12_FEATURE_VIDEO
252 {
253 D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0,
254 D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1,
255 D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2,
256 D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3,
257 D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5,
258 D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6,
259 D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7,
260 D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8,
261 D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9,
262 D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10,
263 D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11,
264 D3D12_FEATURE_VIDEO_ARCHITECTURE = 17,
265 D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18,
266 D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19,
267 D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20,
268 D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21,
269 D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22,
270 D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23,
271 D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24,
272 D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25,
273 D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26,
274 D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27,
275 D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28,
276 D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29,
277 D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,
278 D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31,
279 D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32
280 } D3D12_FEATURE_VIDEO;
281
282typedef
283enum D3D12_BITSTREAM_ENCRYPTION_TYPE
284 {
285 D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0
286 } D3D12_BITSTREAM_ENCRYPTION_TYPE;
287
288typedef struct D3D12_VIDEO_DECODE_CONFIGURATION
289 {
290 GUID DecodeProfile;
291 D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption;
292 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType;
293 } D3D12_VIDEO_DECODE_CONFIGURATION;
294
295typedef struct D3D12_VIDEO_DECODER_DESC
296 {
297 UINT NodeMask;
298 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
299 } D3D12_VIDEO_DECODER_DESC;
300
301typedef struct D3D12_VIDEO_DECODER_HEAP_DESC
302 {
303 UINT NodeMask;
304 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
305 UINT DecodeWidth;
306 UINT DecodeHeight;
307 DXGI_FORMAT Format;
308 DXGI_RATIONAL FrameRate;
309 UINT BitRate;
310 UINT MaxDecodePictureBufferCount;
311 } D3D12_VIDEO_DECODER_HEAP_DESC;
312
313typedef struct D3D12_VIDEO_SIZE_RANGE
314 {
315 UINT MaxWidth;
316 UINT MaxHeight;
317 UINT MinWidth;
318 UINT MinHeight;
319 } D3D12_VIDEO_SIZE_RANGE;
320
321typedef
322enum D3D12_VIDEO_PROCESS_FILTER
323 {
324 D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0,
325 D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1,
326 D3D12_VIDEO_PROCESS_FILTER_HUE = 2,
327 D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3,
328 D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4,
329 D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5,
330 D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6,
331 D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7
332 } D3D12_VIDEO_PROCESS_FILTER;
333
334typedef
335enum D3D12_VIDEO_PROCESS_FILTER_FLAGS
336 {
337 D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0,
338 D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) ,
339 D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) ,
340 D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) ,
341 D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) ,
342 D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) ,
343 D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) ,
344 D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) ,
345 D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT )
346 } D3D12_VIDEO_PROCESS_FILTER_FLAGS;
347
348DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS );
349typedef
350enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS
351 {
352 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0,
353 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1,
354 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000
355 } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS;
356
357DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS );
358typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING
359 {
360 BOOL Enable;
361 FLOAT Alpha;
362 } D3D12_VIDEO_PROCESS_ALPHA_BLENDING;
363
364typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY
365 {
366 BOOL Enable;
367 FLOAT Lower;
368 FLOAT Upper;
369 } D3D12_VIDEO_PROCESS_LUMA_KEY;
370
371typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC
372 {
373 DXGI_FORMAT Format;
374 DXGI_COLOR_SPACE_TYPE ColorSpace;
375 DXGI_RATIONAL SourceAspectRatio;
376 DXGI_RATIONAL DestinationAspectRatio;
377 DXGI_RATIONAL FrameRate;
378 D3D12_VIDEO_SIZE_RANGE SourceSizeRange;
379 D3D12_VIDEO_SIZE_RANGE DestinationSizeRange;
380 BOOL EnableOrientation;
381 D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags;
382 D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat;
383 D3D12_VIDEO_FIELD_TYPE FieldType;
384 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;
385 BOOL EnableAlphaBlending;
386 D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey;
387 UINT NumPastFrames;
388 UINT NumFutureFrames;
389 BOOL EnableAutoProcessing;
390 } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC;
391
392typedef
393enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE
394 {
395 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0,
396 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1,
397 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2,
398 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3
399 } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE;
400
401typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC
402 {
403 DXGI_FORMAT Format;
404 DXGI_COLOR_SPACE_TYPE ColorSpace;
405 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode;
406 UINT AlphaFillModeSourceStreamIndex;
407 FLOAT BackgroundColor[ 4 ];
408 DXGI_RATIONAL FrameRate;
409 BOOL EnableStereo;
410 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC;
411
412
413
414extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec;
415extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec;
416
417#ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__
418#define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__
419
420/* interface ID3D12VideoDecoderHeap */
421/* [unique][local][object][uuid] */
422
423
424EXTERN_C const IID IID_ID3D12VideoDecoderHeap;
425
426#if defined(__cplusplus) && !defined(CINTERFACE)
427
428 MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F")
429 ID3D12VideoDecoderHeap : public ID3D12Pageable
430 {
431 public:
432 virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
433
434 };
435
436
437#else /* C style interface */
438
439 typedef struct ID3D12VideoDecoderHeapVtbl
440 {
441 BEGIN_INTERFACE
442
443 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
444 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
445 ID3D12VideoDecoderHeap * This,
446 REFIID riid,
447 _COM_Outptr_ void **ppvObject);
448
449 DECLSPEC_XFGVIRT(IUnknown, AddRef)
450 ULONG ( STDMETHODCALLTYPE *AddRef )(
451 ID3D12VideoDecoderHeap * This);
452
453 DECLSPEC_XFGVIRT(IUnknown, Release)
454 ULONG ( STDMETHODCALLTYPE *Release )(
455 ID3D12VideoDecoderHeap * This);
456
457 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
458 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
459 ID3D12VideoDecoderHeap * This,
460 _In_ REFGUID guid,
461 _Inout_ UINT *pDataSize,
462 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
463
464 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
465 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
466 ID3D12VideoDecoderHeap * This,
467 _In_ REFGUID guid,
468 _In_ UINT DataSize,
469 _In_reads_bytes_opt_( DataSize ) const void *pData);
470
471 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
472 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
473 ID3D12VideoDecoderHeap * This,
474 _In_ REFGUID guid,
475 _In_opt_ const IUnknown *pData);
476
477 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
478 HRESULT ( STDMETHODCALLTYPE *SetName )(
479 ID3D12VideoDecoderHeap * This,
480 _In_z_ LPCWSTR Name);
481
482 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
483 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
484 ID3D12VideoDecoderHeap * This,
485 REFIID riid,
486 _COM_Outptr_opt_ void **ppvDevice);
487
488 DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)
489 D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
490 ID3D12VideoDecoderHeap * This,
491 D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);
492
493 END_INTERFACE
494 } ID3D12VideoDecoderHeapVtbl;
495
496 interface ID3D12VideoDecoderHeap
497 {
498 CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl;
499 };
500
501
502
503#ifdef COBJMACROS
504
505
506#define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \
507 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
508
509#define ID3D12VideoDecoderHeap_AddRef(This) \
510 ( (This)->lpVtbl -> AddRef(This) )
511
512#define ID3D12VideoDecoderHeap_Release(This) \
513 ( (This)->lpVtbl -> Release(This) )
514
515
516#define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \
517 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
518
519#define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \
520 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
521
522#define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \
523 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
524
525#define ID3D12VideoDecoderHeap_SetName(This,Name) \
526 ( (This)->lpVtbl -> SetName(This,Name) )
527
528
529#define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \
530 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
531
532
533
534#define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \
535 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
536
537#endif /* COBJMACROS */
538
539
540#endif /* C style interface */
541
542
543
544
545#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */
546
547
548#ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__
549#define __ID3D12VideoDevice_INTERFACE_DEFINED__
550
551/* interface ID3D12VideoDevice */
552/* [unique][local][object][uuid] */
553
554
555EXTERN_C const IID IID_ID3D12VideoDevice;
556
557#if defined(__cplusplus) && !defined(CINTERFACE)
558
559 MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4")
560 ID3D12VideoDevice : public IUnknown
561 {
562 public:
563 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
564 D3D12_FEATURE_VIDEO FeatureVideo,
565 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
566 UINT FeatureSupportDataSize) = 0;
567
568 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
569 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
570 _In_ REFIID riid,
571 _COM_Outptr_ void **ppVideoDecoder) = 0;
572
573 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap(
574 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
575 _In_ REFIID riid,
576 _COM_Outptr_ void **ppVideoDecoderHeap) = 0;
577
578 virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
579 UINT NodeMask,
580 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
581 UINT NumInputStreamDescs,
582 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
583 _In_ REFIID riid,
584 _COM_Outptr_ void **ppVideoProcessor) = 0;
585
586 };
587
588
589#else /* C style interface */
590
591 typedef struct ID3D12VideoDeviceVtbl
592 {
593 BEGIN_INTERFACE
594
595 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
596 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
597 ID3D12VideoDevice * This,
598 REFIID riid,
599 _COM_Outptr_ void **ppvObject);
600
601 DECLSPEC_XFGVIRT(IUnknown, AddRef)
602 ULONG ( STDMETHODCALLTYPE *AddRef )(
603 ID3D12VideoDevice * This);
604
605 DECLSPEC_XFGVIRT(IUnknown, Release)
606 ULONG ( STDMETHODCALLTYPE *Release )(
607 ID3D12VideoDevice * This);
608
609 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
610 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
611 ID3D12VideoDevice * This,
612 D3D12_FEATURE_VIDEO FeatureVideo,
613 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
614 UINT FeatureSupportDataSize);
615
616 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
617 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
618 ID3D12VideoDevice * This,
619 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
620 _In_ REFIID riid,
621 _COM_Outptr_ void **ppVideoDecoder);
622
623 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
624 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
625 ID3D12VideoDevice * This,
626 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
627 _In_ REFIID riid,
628 _COM_Outptr_ void **ppVideoDecoderHeap);
629
630 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
631 HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
632 ID3D12VideoDevice * This,
633 UINT NodeMask,
634 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
635 UINT NumInputStreamDescs,
636 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
637 _In_ REFIID riid,
638 _COM_Outptr_ void **ppVideoProcessor);
639
640 END_INTERFACE
641 } ID3D12VideoDeviceVtbl;
642
643 interface ID3D12VideoDevice
644 {
645 CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl;
646 };
647
648
649
650#ifdef COBJMACROS
651
652
653#define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \
654 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
655
656#define ID3D12VideoDevice_AddRef(This) \
657 ( (This)->lpVtbl -> AddRef(This) )
658
659#define ID3D12VideoDevice_Release(This) \
660 ( (This)->lpVtbl -> Release(This) )
661
662
663#define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
664 ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
665
666#define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
667 ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
668
669#define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
670 ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
671
672#define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
673 ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
674
675#endif /* COBJMACROS */
676
677
678#endif /* C style interface */
679
680
681
682
683#endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */
684
685
686#ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__
687#define __ID3D12VideoDecoder_INTERFACE_DEFINED__
688
689/* interface ID3D12VideoDecoder */
690/* [unique][local][object][uuid] */
691
692
693EXTERN_C const IID IID_ID3D12VideoDecoder;
694
695#if defined(__cplusplus) && !defined(CINTERFACE)
696
697 MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470")
698 ID3D12VideoDecoder : public ID3D12Pageable
699 {
700 public:
701 virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
702
703 };
704
705
706#else /* C style interface */
707
708 typedef struct ID3D12VideoDecoderVtbl
709 {
710 BEGIN_INTERFACE
711
712 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
713 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
714 ID3D12VideoDecoder * This,
715 REFIID riid,
716 _COM_Outptr_ void **ppvObject);
717
718 DECLSPEC_XFGVIRT(IUnknown, AddRef)
719 ULONG ( STDMETHODCALLTYPE *AddRef )(
720 ID3D12VideoDecoder * This);
721
722 DECLSPEC_XFGVIRT(IUnknown, Release)
723 ULONG ( STDMETHODCALLTYPE *Release )(
724 ID3D12VideoDecoder * This);
725
726 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
727 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
728 ID3D12VideoDecoder * This,
729 _In_ REFGUID guid,
730 _Inout_ UINT *pDataSize,
731 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
732
733 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
734 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
735 ID3D12VideoDecoder * This,
736 _In_ REFGUID guid,
737 _In_ UINT DataSize,
738 _In_reads_bytes_opt_( DataSize ) const void *pData);
739
740 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
741 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
742 ID3D12VideoDecoder * This,
743 _In_ REFGUID guid,
744 _In_opt_ const IUnknown *pData);
745
746 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
747 HRESULT ( STDMETHODCALLTYPE *SetName )(
748 ID3D12VideoDecoder * This,
749 _In_z_ LPCWSTR Name);
750
751 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
752 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
753 ID3D12VideoDecoder * This,
754 REFIID riid,
755 _COM_Outptr_opt_ void **ppvDevice);
756
757 DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)
758 D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(
759 ID3D12VideoDecoder * This,
760 D3D12_VIDEO_DECODER_DESC * RetVal);
761
762 END_INTERFACE
763 } ID3D12VideoDecoderVtbl;
764
765 interface ID3D12VideoDecoder
766 {
767 CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl;
768 };
769
770
771
772#ifdef COBJMACROS
773
774
775#define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \
776 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
777
778#define ID3D12VideoDecoder_AddRef(This) \
779 ( (This)->lpVtbl -> AddRef(This) )
780
781#define ID3D12VideoDecoder_Release(This) \
782 ( (This)->lpVtbl -> Release(This) )
783
784
785#define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \
786 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
787
788#define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \
789 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
790
791#define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \
792 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
793
794#define ID3D12VideoDecoder_SetName(This,Name) \
795 ( (This)->lpVtbl -> SetName(This,Name) )
796
797
798#define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \
799 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
800
801
802
803#define ID3D12VideoDecoder_GetDesc(This,RetVal) \
804 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
805
806#endif /* COBJMACROS */
807
808
809#endif /* C style interface */
810
811
812
813
814#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */
815
816
817/* interface __MIDL_itf_d3d12video_0000_0003 */
818/* [local] */
819
820typedef
821enum D3D12_VIDEO_DECODE_TIER
822 {
823 D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0,
824 D3D12_VIDEO_DECODE_TIER_1 = 1,
825 D3D12_VIDEO_DECODE_TIER_2 = 2,
826 D3D12_VIDEO_DECODE_TIER_3 = 3
827 } D3D12_VIDEO_DECODE_TIER;
828
829typedef
830enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS
831 {
832 D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0,
833 D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1
834 } D3D12_VIDEO_DECODE_SUPPORT_FLAGS;
835
836DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS );
837typedef
838enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS
839 {
840 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0,
841 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1,
842 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2,
843 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4,
844 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8
845 } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS;
846
847DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS );
848typedef
849enum D3D12_VIDEO_DECODE_STATUS
850 {
851 D3D12_VIDEO_DECODE_STATUS_OK = 0,
852 D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1,
853 D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2,
854 D3D12_VIDEO_DECODE_STATUS_RESTART = 3,
855 D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4
856 } D3D12_VIDEO_DECODE_STATUS;
857
858typedef
859enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE
860 {
861 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0,
862 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1,
863 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2,
864 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3
865 } D3D12_VIDEO_DECODE_ARGUMENT_TYPE;
866
867typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT
868 {
869 UINT NodeIndex;
870 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
871 UINT Width;
872 UINT Height;
873 DXGI_FORMAT DecodeFormat;
874 DXGI_RATIONAL FrameRate;
875 UINT BitRate;
876 D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags;
877 D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags;
878 D3D12_VIDEO_DECODE_TIER DecodeTier;
879 } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT;
880
881typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT
882 {
883 UINT NodeIndex;
884 UINT ProfileCount;
885 } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT;
886
887typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES
888 {
889 UINT NodeIndex;
890 UINT ProfileCount;
891 _Field_size_full_(ProfileCount) GUID *pProfiles;
892 } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES;
893
894typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT
895 {
896 UINT NodeIndex;
897 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
898 UINT FormatCount;
899 } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT;
900
901typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS
902 {
903 UINT NodeIndex;
904 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
905 UINT FormatCount;
906 _Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats;
907 } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS;
908
909typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE
910 {
911 BOOL IOCoherent;
912 } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE;
913
914typedef
915enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT
916 {
917 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0,
918 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1,
919 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2,
920 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0,
921 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1,
922 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2,
923 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3
924 } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT;
925
926typedef
927enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS
928 {
929 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0,
930 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) ,
931 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) ,
932 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) ,
933 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) ,
934 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) ,
935 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) ,
936 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A )
937 } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS;
938
939DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS );
940typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM
941 {
942 UINT NodeIndex;
943 GUID DecodeProfile;
944 UINT Width;
945 UINT Height;
946 DXGI_FORMAT DecodeFormat;
947 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components;
948 UINT BinCount;
949 UINT CounterBitDepth;
950 } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM;
951
952typedef
953enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS
954 {
955 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0,
956 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1
957 } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS;
958
959DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS );
960typedef
961enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS
962 {
963 D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0,
964 D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1,
965 D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2
966 } D3D12_VIDEO_SCALE_SUPPORT_FLAGS;
967
968DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS );
969typedef struct D3D12_VIDEO_SCALE_SUPPORT
970 {
971 D3D12_VIDEO_SIZE_RANGE OutputSizeRange;
972 D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags;
973 } D3D12_VIDEO_SCALE_SUPPORT;
974
975typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT
976 {
977 UINT NodeIndex;
978 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
979 D3D12_VIDEO_SAMPLE DecodeSample;
980 D3D12_VIDEO_FORMAT OutputFormat;
981 DXGI_RATIONAL FrameRate;
982 UINT BitRate;
983 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags;
984 D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;
985 } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT;
986
987typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE
988 {
989 D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;
990 UINT64 MemoryPoolL0Size;
991 UINT64 MemoryPoolL1Size;
992 } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE;
993
994typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE
995 {
996 UINT NodeMask;
997 const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;
998 UINT NumInputStreamDescs;
999 const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;
1000 UINT64 MemoryPoolL0Size;
1001 UINT64 MemoryPoolL1Size;
1002 } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;
1003
1004typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS
1005 {
1006 UINT64 Status;
1007 UINT64 NumMacroblocksAffected;
1008 DXGI_RATIONAL FrameRate;
1009 UINT BitRate;
1010 } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS;
1011
1012typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT
1013 {
1014 D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;
1015 UINT Size;
1016 _Field_size_bytes_full_(Size) void *pData;
1017 } D3D12_VIDEO_DECODE_FRAME_ARGUMENT;
1018
1019typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES
1020 {
1021 UINT NumTexture2Ds;
1022 _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;
1023 _Field_size_full_(NumTexture2Ds) UINT *pSubresources;
1024 _Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps;
1025 } D3D12_VIDEO_DECODE_REFERENCE_FRAMES;
1026
1027typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM
1028 {
1029 ID3D12Resource *pBuffer;
1030 UINT64 Offset;
1031 UINT64 Size;
1032 } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM;
1033
1034typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS
1035 {
1036 BOOL Enable;
1037 ID3D12Resource *pReferenceTexture2D;
1038 UINT ReferenceSubresource;
1039 DXGI_COLOR_SPACE_TYPE OutputColorSpace;
1040 DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
1041 } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS;
1042
1043typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS
1044 {
1045 UINT NumFrameArguments;
1046 D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ];
1047 D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames;
1048 D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream;
1049 ID3D12VideoDecoderHeap *pHeap;
1050 } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS;
1051
1052typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS
1053 {
1054 ID3D12Resource *pOutputTexture2D;
1055 UINT OutputSubresource;
1056 D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments;
1057 } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS;
1058
1059
1060
1061extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec;
1062extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec;
1063
1064#ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__
1065#define __ID3D12VideoProcessor_INTERFACE_DEFINED__
1066
1067/* interface ID3D12VideoProcessor */
1068/* [unique][local][object][uuid] */
1069
1070
1071EXTERN_C const IID IID_ID3D12VideoProcessor;
1072
1073#if defined(__cplusplus) && !defined(CINTERFACE)
1074
1075 MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138")
1076 ID3D12VideoProcessor : public ID3D12Pageable
1077 {
1078 public:
1079 virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;
1080
1081 virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0;
1082
1083 virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs(
1084 UINT NumInputStreamDescs,
1085 _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0;
1086
1087 virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0;
1088
1089 };
1090
1091
1092#else /* C style interface */
1093
1094 typedef struct ID3D12VideoProcessorVtbl
1095 {
1096 BEGIN_INTERFACE
1097
1098 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1099 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1100 ID3D12VideoProcessor * This,
1101 REFIID riid,
1102 _COM_Outptr_ void **ppvObject);
1103
1104 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1105 ULONG ( STDMETHODCALLTYPE *AddRef )(
1106 ID3D12VideoProcessor * This);
1107
1108 DECLSPEC_XFGVIRT(IUnknown, Release)
1109 ULONG ( STDMETHODCALLTYPE *Release )(
1110 ID3D12VideoProcessor * This);
1111
1112 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1113 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1114 ID3D12VideoProcessor * This,
1115 _In_ REFGUID guid,
1116 _Inout_ UINT *pDataSize,
1117 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1118
1119 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1120 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1121 ID3D12VideoProcessor * This,
1122 _In_ REFGUID guid,
1123 _In_ UINT DataSize,
1124 _In_reads_bytes_opt_( DataSize ) const void *pData);
1125
1126 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1127 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1128 ID3D12VideoProcessor * This,
1129 _In_ REFGUID guid,
1130 _In_opt_ const IUnknown *pData);
1131
1132 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1133 HRESULT ( STDMETHODCALLTYPE *SetName )(
1134 ID3D12VideoProcessor * This,
1135 _In_z_ LPCWSTR Name);
1136
1137 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1138 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1139 ID3D12VideoProcessor * This,
1140 REFIID riid,
1141 _COM_Outptr_opt_ void **ppvDevice);
1142
1143 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)
1144 UINT ( STDMETHODCALLTYPE *GetNodeMask )(
1145 ID3D12VideoProcessor * This);
1146
1147 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)
1148 UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(
1149 ID3D12VideoProcessor * This);
1150
1151 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)
1152 HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(
1153 ID3D12VideoProcessor * This,
1154 UINT NumInputStreamDescs,
1155 _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);
1156
1157 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)
1158 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(
1159 ID3D12VideoProcessor * This,
1160 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);
1161
1162 END_INTERFACE
1163 } ID3D12VideoProcessorVtbl;
1164
1165 interface ID3D12VideoProcessor
1166 {
1167 CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl;
1168 };
1169
1170
1171
1172#ifdef COBJMACROS
1173
1174
1175#define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \
1176 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1177
1178#define ID3D12VideoProcessor_AddRef(This) \
1179 ( (This)->lpVtbl -> AddRef(This) )
1180
1181#define ID3D12VideoProcessor_Release(This) \
1182 ( (This)->lpVtbl -> Release(This) )
1183
1184
1185#define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \
1186 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1187
1188#define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \
1189 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1190
1191#define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \
1192 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1193
1194#define ID3D12VideoProcessor_SetName(This,Name) \
1195 ( (This)->lpVtbl -> SetName(This,Name) )
1196
1197
1198#define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \
1199 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1200
1201
1202
1203#define ID3D12VideoProcessor_GetNodeMask(This) \
1204 ( (This)->lpVtbl -> GetNodeMask(This) )
1205
1206#define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \
1207 ( (This)->lpVtbl -> GetNumInputStreamDescs(This) )
1208
1209#define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \
1210 ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )
1211
1212#define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \
1213 ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )
1214
1215#endif /* COBJMACROS */
1216
1217
1218#endif /* C style interface */
1219
1220
1221
1222
1223#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */
1224
1225
1226/* interface __MIDL_itf_d3d12video_0000_0004 */
1227/* [local] */
1228
1229typedef
1230enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS
1231 {
1232 D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0,
1233 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1,
1234 D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2,
1235 D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4,
1236 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8,
1237 D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10,
1238 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20,
1239 D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40
1240 } D3D12_VIDEO_PROCESS_FEATURE_FLAGS;
1241
1242DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS );
1243typedef
1244enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS
1245 {
1246 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0,
1247 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1,
1248 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2,
1249 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4,
1250 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8,
1251 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10,
1252 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20,
1253 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40,
1254 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80,
1255 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000
1256 } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS;
1257
1258DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS );
1259typedef
1260enum D3D12_VIDEO_PROCESS_ORIENTATION
1261 {
1262 D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0,
1263 D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1,
1264 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2,
1265 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3,
1266 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4,
1267 D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5,
1268 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6,
1269 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7
1270 } D3D12_VIDEO_PROCESS_ORIENTATION;
1271
1272typedef
1273enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS
1274 {
1275 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0,
1276 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1,
1277 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2
1278 } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS;
1279
1280DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS );
1281typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE
1282 {
1283 INT Minimum;
1284 INT Maximum;
1285 INT Default;
1286 FLOAT Multiplier;
1287 } D3D12_VIDEO_PROCESS_FILTER_RANGE;
1288
1289typedef
1290enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS
1291 {
1292 D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0,
1293 D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1
1294 } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS;
1295
1296DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS );
1297typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT
1298 {
1299 UINT NodeIndex;
1300 D3D12_VIDEO_SAMPLE InputSample;
1301 D3D12_VIDEO_FIELD_TYPE InputFieldType;
1302 D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat;
1303 DXGI_RATIONAL InputFrameRate;
1304 D3D12_VIDEO_FORMAT OutputFormat;
1305 D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat;
1306 DXGI_RATIONAL OutputFrameRate;
1307 D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags;
1308 D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;
1309 D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;
1310 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport;
1311 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport;
1312 D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport;
1313 D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ];
1314 } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;
1315
1316typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS
1317 {
1318 UINT NodeIndex;
1319 UINT MaxInputStreams;
1320 } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS;
1321
1322typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO
1323 {
1324 UINT NodeIndex;
1325 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;
1326 D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters;
1327 D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;
1328 DXGI_RATIONAL InputFrameRate;
1329 DXGI_RATIONAL OutputFrameRate;
1330 BOOL EnableAutoProcessing;
1331 UINT PastFrames;
1332 UINT FutureFrames;
1333 } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO;
1334
1335typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET
1336 {
1337 UINT NumPastFrames;
1338 ID3D12Resource **ppPastFrames;
1339 UINT *pPastSubresources;
1340 UINT NumFutureFrames;
1341 ID3D12Resource **ppFutureFrames;
1342 UINT *pFutureSubresources;
1343 } D3D12_VIDEO_PROCESS_REFERENCE_SET;
1344
1345typedef struct D3D12_VIDEO_PROCESS_TRANSFORM
1346 {
1347 D3D12_RECT SourceRectangle;
1348 D3D12_RECT DestinationRectangle;
1349 D3D12_VIDEO_PROCESS_ORIENTATION Orientation;
1350 } D3D12_VIDEO_PROCESS_TRANSFORM;
1351
1352typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE
1353 {
1354 UINT OutputIndex;
1355 UINT InputFrameOrField;
1356 } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;
1357
1358typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM
1359 {
1360 ID3D12Resource *pTexture2D;
1361 UINT Subresource;
1362 D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet;
1363 } D3D12_VIDEO_PROCESS_INPUT_STREAM;
1364
1365typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS
1366 {
1367 D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];
1368 D3D12_VIDEO_PROCESS_TRANSFORM Transform;
1369 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
1370 D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
1371 INT FilterLevels[ 32 ];
1372 D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
1373 } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS;
1374
1375typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM
1376 {
1377 ID3D12Resource *pTexture2D;
1378 UINT Subresource;
1379 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM;
1380
1381typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS
1382 {
1383 D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ];
1384 D3D12_RECT TargetRectangle;
1385 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS;
1386
1387
1388
1389extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec;
1390extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec;
1391
1392#ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__
1393#define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__
1394
1395/* interface ID3D12VideoDecodeCommandList */
1396/* [unique][local][object][uuid] */
1397
1398
1399EXTERN_C const IID IID_ID3D12VideoDecodeCommandList;
1400
1401#if defined(__cplusplus) && !defined(CINTERFACE)
1402
1403 MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53")
1404 ID3D12VideoDecodeCommandList : public ID3D12CommandList
1405 {
1406 public:
1407 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
1408
1409 virtual HRESULT STDMETHODCALLTYPE Reset(
1410 _In_ ID3D12CommandAllocator *pAllocator) = 0;
1411
1412 virtual void STDMETHODCALLTYPE ClearState( void) = 0;
1413
1414 virtual void STDMETHODCALLTYPE ResourceBarrier(
1415 _In_ UINT NumBarriers,
1416 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
1417
1418 virtual void STDMETHODCALLTYPE DiscardResource(
1419 _In_ ID3D12Resource *pResource,
1420 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
1421
1422 virtual void STDMETHODCALLTYPE BeginQuery(
1423 _In_ ID3D12QueryHeap *pQueryHeap,
1424 _In_ D3D12_QUERY_TYPE Type,
1425 _In_ UINT Index) = 0;
1426
1427 virtual void STDMETHODCALLTYPE EndQuery(
1428 _In_ ID3D12QueryHeap *pQueryHeap,
1429 _In_ D3D12_QUERY_TYPE Type,
1430 _In_ UINT Index) = 0;
1431
1432 virtual void STDMETHODCALLTYPE ResolveQueryData(
1433 _In_ ID3D12QueryHeap *pQueryHeap,
1434 _In_ D3D12_QUERY_TYPE Type,
1435 _In_ UINT StartIndex,
1436 _In_ UINT NumQueries,
1437 _In_ ID3D12Resource *pDestinationBuffer,
1438 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
1439
1440 virtual void STDMETHODCALLTYPE SetPredication(
1441 _In_opt_ ID3D12Resource *pBuffer,
1442 _In_ UINT64 AlignedBufferOffset,
1443 _In_ D3D12_PREDICATION_OP Operation) = 0;
1444
1445 virtual void STDMETHODCALLTYPE SetMarker(
1446 UINT Metadata,
1447 _In_reads_bytes_opt_(Size) const void *pData,
1448 UINT Size) = 0;
1449
1450 virtual void STDMETHODCALLTYPE BeginEvent(
1451 UINT Metadata,
1452 _In_reads_bytes_opt_(Size) const void *pData,
1453 UINT Size) = 0;
1454
1455 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
1456
1457 virtual void STDMETHODCALLTYPE DecodeFrame(
1458 _In_ ID3D12VideoDecoder *pDecoder,
1459 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1460 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
1461
1462 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
1463 UINT Count,
1464 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1465 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
1466
1467 };
1468
1469
1470#else /* C style interface */
1471
1472 typedef struct ID3D12VideoDecodeCommandListVtbl
1473 {
1474 BEGIN_INTERFACE
1475
1476 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1477 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1478 ID3D12VideoDecodeCommandList * This,
1479 REFIID riid,
1480 _COM_Outptr_ void **ppvObject);
1481
1482 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1483 ULONG ( STDMETHODCALLTYPE *AddRef )(
1484 ID3D12VideoDecodeCommandList * This);
1485
1486 DECLSPEC_XFGVIRT(IUnknown, Release)
1487 ULONG ( STDMETHODCALLTYPE *Release )(
1488 ID3D12VideoDecodeCommandList * This);
1489
1490 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1491 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1492 ID3D12VideoDecodeCommandList * This,
1493 _In_ REFGUID guid,
1494 _Inout_ UINT *pDataSize,
1495 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1496
1497 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1498 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1499 ID3D12VideoDecodeCommandList * This,
1500 _In_ REFGUID guid,
1501 _In_ UINT DataSize,
1502 _In_reads_bytes_opt_( DataSize ) const void *pData);
1503
1504 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1505 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1506 ID3D12VideoDecodeCommandList * This,
1507 _In_ REFGUID guid,
1508 _In_opt_ const IUnknown *pData);
1509
1510 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1511 HRESULT ( STDMETHODCALLTYPE *SetName )(
1512 ID3D12VideoDecodeCommandList * This,
1513 _In_z_ LPCWSTR Name);
1514
1515 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1516 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1517 ID3D12VideoDecodeCommandList * This,
1518 REFIID riid,
1519 _COM_Outptr_opt_ void **ppvDevice);
1520
1521 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
1522 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
1523 ID3D12VideoDecodeCommandList * This);
1524
1525 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
1526 HRESULT ( STDMETHODCALLTYPE *Close )(
1527 ID3D12VideoDecodeCommandList * This);
1528
1529 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
1530 HRESULT ( STDMETHODCALLTYPE *Reset )(
1531 ID3D12VideoDecodeCommandList * This,
1532 _In_ ID3D12CommandAllocator *pAllocator);
1533
1534 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
1535 void ( STDMETHODCALLTYPE *ClearState )(
1536 ID3D12VideoDecodeCommandList * This);
1537
1538 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
1539 void ( STDMETHODCALLTYPE *ResourceBarrier )(
1540 ID3D12VideoDecodeCommandList * This,
1541 _In_ UINT NumBarriers,
1542 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
1543
1544 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
1545 void ( STDMETHODCALLTYPE *DiscardResource )(
1546 ID3D12VideoDecodeCommandList * This,
1547 _In_ ID3D12Resource *pResource,
1548 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
1549
1550 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
1551 void ( STDMETHODCALLTYPE *BeginQuery )(
1552 ID3D12VideoDecodeCommandList * This,
1553 _In_ ID3D12QueryHeap *pQueryHeap,
1554 _In_ D3D12_QUERY_TYPE Type,
1555 _In_ UINT Index);
1556
1557 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
1558 void ( STDMETHODCALLTYPE *EndQuery )(
1559 ID3D12VideoDecodeCommandList * This,
1560 _In_ ID3D12QueryHeap *pQueryHeap,
1561 _In_ D3D12_QUERY_TYPE Type,
1562 _In_ UINT Index);
1563
1564 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
1565 void ( STDMETHODCALLTYPE *ResolveQueryData )(
1566 ID3D12VideoDecodeCommandList * This,
1567 _In_ ID3D12QueryHeap *pQueryHeap,
1568 _In_ D3D12_QUERY_TYPE Type,
1569 _In_ UINT StartIndex,
1570 _In_ UINT NumQueries,
1571 _In_ ID3D12Resource *pDestinationBuffer,
1572 _In_ UINT64 AlignedDestinationBufferOffset);
1573
1574 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
1575 void ( STDMETHODCALLTYPE *SetPredication )(
1576 ID3D12VideoDecodeCommandList * This,
1577 _In_opt_ ID3D12Resource *pBuffer,
1578 _In_ UINT64 AlignedBufferOffset,
1579 _In_ D3D12_PREDICATION_OP Operation);
1580
1581 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
1582 void ( STDMETHODCALLTYPE *SetMarker )(
1583 ID3D12VideoDecodeCommandList * This,
1584 UINT Metadata,
1585 _In_reads_bytes_opt_(Size) const void *pData,
1586 UINT Size);
1587
1588 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
1589 void ( STDMETHODCALLTYPE *BeginEvent )(
1590 ID3D12VideoDecodeCommandList * This,
1591 UINT Metadata,
1592 _In_reads_bytes_opt_(Size) const void *pData,
1593 UINT Size);
1594
1595 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
1596 void ( STDMETHODCALLTYPE *EndEvent )(
1597 ID3D12VideoDecodeCommandList * This);
1598
1599 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
1600 void ( STDMETHODCALLTYPE *DecodeFrame )(
1601 ID3D12VideoDecodeCommandList * This,
1602 _In_ ID3D12VideoDecoder *pDecoder,
1603 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1604 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
1605
1606 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
1607 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
1608 ID3D12VideoDecodeCommandList * This,
1609 UINT Count,
1610 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1611 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
1612
1613 END_INTERFACE
1614 } ID3D12VideoDecodeCommandListVtbl;
1615
1616 interface ID3D12VideoDecodeCommandList
1617 {
1618 CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl;
1619 };
1620
1621
1622
1623#ifdef COBJMACROS
1624
1625
1626#define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \
1627 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1628
1629#define ID3D12VideoDecodeCommandList_AddRef(This) \
1630 ( (This)->lpVtbl -> AddRef(This) )
1631
1632#define ID3D12VideoDecodeCommandList_Release(This) \
1633 ( (This)->lpVtbl -> Release(This) )
1634
1635
1636#define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \
1637 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1638
1639#define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \
1640 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1641
1642#define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \
1643 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1644
1645#define ID3D12VideoDecodeCommandList_SetName(This,Name) \
1646 ( (This)->lpVtbl -> SetName(This,Name) )
1647
1648
1649#define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \
1650 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1651
1652
1653#define ID3D12VideoDecodeCommandList_GetType(This) \
1654 ( (This)->lpVtbl -> GetType(This) )
1655
1656
1657#define ID3D12VideoDecodeCommandList_Close(This) \
1658 ( (This)->lpVtbl -> Close(This) )
1659
1660#define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \
1661 ( (This)->lpVtbl -> Reset(This,pAllocator) )
1662
1663#define ID3D12VideoDecodeCommandList_ClearState(This) \
1664 ( (This)->lpVtbl -> ClearState(This) )
1665
1666#define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
1667 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
1668
1669#define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \
1670 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
1671
1672#define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
1673 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
1674
1675#define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \
1676 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
1677
1678#define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
1679 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
1680
1681#define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
1682 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
1683
1684#define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \
1685 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
1686
1687#define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \
1688 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
1689
1690#define ID3D12VideoDecodeCommandList_EndEvent(This) \
1691 ( (This)->lpVtbl -> EndEvent(This) )
1692
1693#define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
1694 ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
1695
1696#define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
1697 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
1698
1699#endif /* COBJMACROS */
1700
1701
1702#endif /* C style interface */
1703
1704
1705
1706
1707#endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */
1708
1709
1710#ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__
1711#define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__
1712
1713/* interface ID3D12VideoProcessCommandList */
1714/* [unique][local][object][uuid] */
1715
1716
1717EXTERN_C const IID IID_ID3D12VideoProcessCommandList;
1718
1719#if defined(__cplusplus) && !defined(CINTERFACE)
1720
1721 MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209")
1722 ID3D12VideoProcessCommandList : public ID3D12CommandList
1723 {
1724 public:
1725 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
1726
1727 virtual HRESULT STDMETHODCALLTYPE Reset(
1728 _In_ ID3D12CommandAllocator *pAllocator) = 0;
1729
1730 virtual void STDMETHODCALLTYPE ClearState( void) = 0;
1731
1732 virtual void STDMETHODCALLTYPE ResourceBarrier(
1733 _In_ UINT NumBarriers,
1734 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
1735
1736 virtual void STDMETHODCALLTYPE DiscardResource(
1737 _In_ ID3D12Resource *pResource,
1738 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
1739
1740 virtual void STDMETHODCALLTYPE BeginQuery(
1741 _In_ ID3D12QueryHeap *pQueryHeap,
1742 _In_ D3D12_QUERY_TYPE Type,
1743 _In_ UINT Index) = 0;
1744
1745 virtual void STDMETHODCALLTYPE EndQuery(
1746 _In_ ID3D12QueryHeap *pQueryHeap,
1747 _In_ D3D12_QUERY_TYPE Type,
1748 _In_ UINT Index) = 0;
1749
1750 virtual void STDMETHODCALLTYPE ResolveQueryData(
1751 _In_ ID3D12QueryHeap *pQueryHeap,
1752 _In_ D3D12_QUERY_TYPE Type,
1753 _In_ UINT StartIndex,
1754 _In_ UINT NumQueries,
1755 _In_ ID3D12Resource *pDestinationBuffer,
1756 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
1757
1758 virtual void STDMETHODCALLTYPE SetPredication(
1759 _In_opt_ ID3D12Resource *pBuffer,
1760 _In_ UINT64 AlignedBufferOffset,
1761 _In_ D3D12_PREDICATION_OP Operation) = 0;
1762
1763 virtual void STDMETHODCALLTYPE SetMarker(
1764 UINT Metadata,
1765 _In_reads_bytes_opt_(Size) const void *pData,
1766 UINT Size) = 0;
1767
1768 virtual void STDMETHODCALLTYPE BeginEvent(
1769 UINT Metadata,
1770 _In_reads_bytes_opt_(Size) const void *pData,
1771 UINT Size) = 0;
1772
1773 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
1774
1775 virtual void STDMETHODCALLTYPE ProcessFrames(
1776 _In_ ID3D12VideoProcessor *pVideoProcessor,
1777 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1778 UINT NumInputStreams,
1779 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
1780
1781 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
1782 UINT Count,
1783 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1784 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
1785
1786 };
1787
1788
1789#else /* C style interface */
1790
1791 typedef struct ID3D12VideoProcessCommandListVtbl
1792 {
1793 BEGIN_INTERFACE
1794
1795 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1796 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1797 ID3D12VideoProcessCommandList * This,
1798 REFIID riid,
1799 _COM_Outptr_ void **ppvObject);
1800
1801 DECLSPEC_XFGVIRT(IUnknown, AddRef)
1802 ULONG ( STDMETHODCALLTYPE *AddRef )(
1803 ID3D12VideoProcessCommandList * This);
1804
1805 DECLSPEC_XFGVIRT(IUnknown, Release)
1806 ULONG ( STDMETHODCALLTYPE *Release )(
1807 ID3D12VideoProcessCommandList * This);
1808
1809 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1810 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1811 ID3D12VideoProcessCommandList * This,
1812 _In_ REFGUID guid,
1813 _Inout_ UINT *pDataSize,
1814 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
1815
1816 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1817 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1818 ID3D12VideoProcessCommandList * This,
1819 _In_ REFGUID guid,
1820 _In_ UINT DataSize,
1821 _In_reads_bytes_opt_( DataSize ) const void *pData);
1822
1823 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1824 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1825 ID3D12VideoProcessCommandList * This,
1826 _In_ REFGUID guid,
1827 _In_opt_ const IUnknown *pData);
1828
1829 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1830 HRESULT ( STDMETHODCALLTYPE *SetName )(
1831 ID3D12VideoProcessCommandList * This,
1832 _In_z_ LPCWSTR Name);
1833
1834 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1835 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1836 ID3D12VideoProcessCommandList * This,
1837 REFIID riid,
1838 _COM_Outptr_opt_ void **ppvDevice);
1839
1840 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
1841 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
1842 ID3D12VideoProcessCommandList * This);
1843
1844 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
1845 HRESULT ( STDMETHODCALLTYPE *Close )(
1846 ID3D12VideoProcessCommandList * This);
1847
1848 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
1849 HRESULT ( STDMETHODCALLTYPE *Reset )(
1850 ID3D12VideoProcessCommandList * This,
1851 _In_ ID3D12CommandAllocator *pAllocator);
1852
1853 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
1854 void ( STDMETHODCALLTYPE *ClearState )(
1855 ID3D12VideoProcessCommandList * This);
1856
1857 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
1858 void ( STDMETHODCALLTYPE *ResourceBarrier )(
1859 ID3D12VideoProcessCommandList * This,
1860 _In_ UINT NumBarriers,
1861 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
1862
1863 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
1864 void ( STDMETHODCALLTYPE *DiscardResource )(
1865 ID3D12VideoProcessCommandList * This,
1866 _In_ ID3D12Resource *pResource,
1867 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
1868
1869 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
1870 void ( STDMETHODCALLTYPE *BeginQuery )(
1871 ID3D12VideoProcessCommandList * This,
1872 _In_ ID3D12QueryHeap *pQueryHeap,
1873 _In_ D3D12_QUERY_TYPE Type,
1874 _In_ UINT Index);
1875
1876 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
1877 void ( STDMETHODCALLTYPE *EndQuery )(
1878 ID3D12VideoProcessCommandList * This,
1879 _In_ ID3D12QueryHeap *pQueryHeap,
1880 _In_ D3D12_QUERY_TYPE Type,
1881 _In_ UINT Index);
1882
1883 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
1884 void ( STDMETHODCALLTYPE *ResolveQueryData )(
1885 ID3D12VideoProcessCommandList * This,
1886 _In_ ID3D12QueryHeap *pQueryHeap,
1887 _In_ D3D12_QUERY_TYPE Type,
1888 _In_ UINT StartIndex,
1889 _In_ UINT NumQueries,
1890 _In_ ID3D12Resource *pDestinationBuffer,
1891 _In_ UINT64 AlignedDestinationBufferOffset);
1892
1893 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
1894 void ( STDMETHODCALLTYPE *SetPredication )(
1895 ID3D12VideoProcessCommandList * This,
1896 _In_opt_ ID3D12Resource *pBuffer,
1897 _In_ UINT64 AlignedBufferOffset,
1898 _In_ D3D12_PREDICATION_OP Operation);
1899
1900 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
1901 void ( STDMETHODCALLTYPE *SetMarker )(
1902 ID3D12VideoProcessCommandList * This,
1903 UINT Metadata,
1904 _In_reads_bytes_opt_(Size) const void *pData,
1905 UINT Size);
1906
1907 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
1908 void ( STDMETHODCALLTYPE *BeginEvent )(
1909 ID3D12VideoProcessCommandList * This,
1910 UINT Metadata,
1911 _In_reads_bytes_opt_(Size) const void *pData,
1912 UINT Size);
1913
1914 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
1915 void ( STDMETHODCALLTYPE *EndEvent )(
1916 ID3D12VideoProcessCommandList * This);
1917
1918 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
1919 void ( STDMETHODCALLTYPE *ProcessFrames )(
1920 ID3D12VideoProcessCommandList * This,
1921 _In_ ID3D12VideoProcessor *pVideoProcessor,
1922 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1923 UINT NumInputStreams,
1924 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
1925
1926 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
1927 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
1928 ID3D12VideoProcessCommandList * This,
1929 UINT Count,
1930 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1931 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
1932
1933 END_INTERFACE
1934 } ID3D12VideoProcessCommandListVtbl;
1935
1936 interface ID3D12VideoProcessCommandList
1937 {
1938 CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl;
1939 };
1940
1941
1942
1943#ifdef COBJMACROS
1944
1945
1946#define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \
1947 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1948
1949#define ID3D12VideoProcessCommandList_AddRef(This) \
1950 ( (This)->lpVtbl -> AddRef(This) )
1951
1952#define ID3D12VideoProcessCommandList_Release(This) \
1953 ( (This)->lpVtbl -> Release(This) )
1954
1955
1956#define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \
1957 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1958
1959#define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \
1960 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1961
1962#define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \
1963 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1964
1965#define ID3D12VideoProcessCommandList_SetName(This,Name) \
1966 ( (This)->lpVtbl -> SetName(This,Name) )
1967
1968
1969#define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \
1970 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1971
1972
1973#define ID3D12VideoProcessCommandList_GetType(This) \
1974 ( (This)->lpVtbl -> GetType(This) )
1975
1976
1977#define ID3D12VideoProcessCommandList_Close(This) \
1978 ( (This)->lpVtbl -> Close(This) )
1979
1980#define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \
1981 ( (This)->lpVtbl -> Reset(This,pAllocator) )
1982
1983#define ID3D12VideoProcessCommandList_ClearState(This) \
1984 ( (This)->lpVtbl -> ClearState(This) )
1985
1986#define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
1987 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
1988
1989#define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \
1990 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
1991
1992#define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
1993 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
1994
1995#define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \
1996 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
1997
1998#define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
1999 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2000
2001#define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2002 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2003
2004#define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \
2005 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2006
2007#define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \
2008 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2009
2010#define ID3D12VideoProcessCommandList_EndEvent(This) \
2011 ( (This)->lpVtbl -> EndEvent(This) )
2012
2013#define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2014 ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2015
2016#define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
2017 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2018
2019#endif /* COBJMACROS */
2020
2021
2022#endif /* C style interface */
2023
2024
2025
2026
2027#endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */
2028
2029
2030/* interface __MIDL_itf_d3d12video_0000_0006 */
2031/* [local] */
2032
2033typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM
2034 {
2035 UINT64 Offset;
2036 ID3D12Resource *pBuffer;
2037 } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM;
2038
2039typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1
2040 {
2041 BOOL Enable;
2042 ID3D12Resource *pReferenceTexture2D;
2043 UINT ReferenceSubresource;
2044 DXGI_COLOR_SPACE_TYPE OutputColorSpace;
2045 DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
2046 UINT OutputWidth;
2047 UINT OutputHeight;
2048 } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1;
2049
2050typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1
2051 {
2052 ID3D12Resource *pOutputTexture2D;
2053 UINT OutputSubresource;
2054 D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments;
2055 D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ];
2056 } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;
2057
2058
2059
2060extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec;
2061extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec;
2062
2063#ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__
2064#define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__
2065
2066/* interface ID3D12VideoDecodeCommandList1 */
2067/* [unique][local][object][uuid] */
2068
2069
2070EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1;
2071
2072#if defined(__cplusplus) && !defined(CINTERFACE)
2073
2074 MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472")
2075 ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList
2076 {
2077 public:
2078 virtual void STDMETHODCALLTYPE DecodeFrame1(
2079 _In_ ID3D12VideoDecoder *pDecoder,
2080 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
2081 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
2082
2083 };
2084
2085
2086#else /* C style interface */
2087
2088 typedef struct ID3D12VideoDecodeCommandList1Vtbl
2089 {
2090 BEGIN_INTERFACE
2091
2092 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2093 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2094 ID3D12VideoDecodeCommandList1 * This,
2095 REFIID riid,
2096 _COM_Outptr_ void **ppvObject);
2097
2098 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2099 ULONG ( STDMETHODCALLTYPE *AddRef )(
2100 ID3D12VideoDecodeCommandList1 * This);
2101
2102 DECLSPEC_XFGVIRT(IUnknown, Release)
2103 ULONG ( STDMETHODCALLTYPE *Release )(
2104 ID3D12VideoDecodeCommandList1 * This);
2105
2106 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2107 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2108 ID3D12VideoDecodeCommandList1 * This,
2109 _In_ REFGUID guid,
2110 _Inout_ UINT *pDataSize,
2111 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2112
2113 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2114 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2115 ID3D12VideoDecodeCommandList1 * This,
2116 _In_ REFGUID guid,
2117 _In_ UINT DataSize,
2118 _In_reads_bytes_opt_( DataSize ) const void *pData);
2119
2120 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2121 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2122 ID3D12VideoDecodeCommandList1 * This,
2123 _In_ REFGUID guid,
2124 _In_opt_ const IUnknown *pData);
2125
2126 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2127 HRESULT ( STDMETHODCALLTYPE *SetName )(
2128 ID3D12VideoDecodeCommandList1 * This,
2129 _In_z_ LPCWSTR Name);
2130
2131 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2132 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2133 ID3D12VideoDecodeCommandList1 * This,
2134 REFIID riid,
2135 _COM_Outptr_opt_ void **ppvDevice);
2136
2137 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
2138 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
2139 ID3D12VideoDecodeCommandList1 * This);
2140
2141 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
2142 HRESULT ( STDMETHODCALLTYPE *Close )(
2143 ID3D12VideoDecodeCommandList1 * This);
2144
2145 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
2146 HRESULT ( STDMETHODCALLTYPE *Reset )(
2147 ID3D12VideoDecodeCommandList1 * This,
2148 _In_ ID3D12CommandAllocator *pAllocator);
2149
2150 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
2151 void ( STDMETHODCALLTYPE *ClearState )(
2152 ID3D12VideoDecodeCommandList1 * This);
2153
2154 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
2155 void ( STDMETHODCALLTYPE *ResourceBarrier )(
2156 ID3D12VideoDecodeCommandList1 * This,
2157 _In_ UINT NumBarriers,
2158 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
2159
2160 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
2161 void ( STDMETHODCALLTYPE *DiscardResource )(
2162 ID3D12VideoDecodeCommandList1 * This,
2163 _In_ ID3D12Resource *pResource,
2164 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
2165
2166 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
2167 void ( STDMETHODCALLTYPE *BeginQuery )(
2168 ID3D12VideoDecodeCommandList1 * This,
2169 _In_ ID3D12QueryHeap *pQueryHeap,
2170 _In_ D3D12_QUERY_TYPE Type,
2171 _In_ UINT Index);
2172
2173 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
2174 void ( STDMETHODCALLTYPE *EndQuery )(
2175 ID3D12VideoDecodeCommandList1 * This,
2176 _In_ ID3D12QueryHeap *pQueryHeap,
2177 _In_ D3D12_QUERY_TYPE Type,
2178 _In_ UINT Index);
2179
2180 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
2181 void ( STDMETHODCALLTYPE *ResolveQueryData )(
2182 ID3D12VideoDecodeCommandList1 * This,
2183 _In_ ID3D12QueryHeap *pQueryHeap,
2184 _In_ D3D12_QUERY_TYPE Type,
2185 _In_ UINT StartIndex,
2186 _In_ UINT NumQueries,
2187 _In_ ID3D12Resource *pDestinationBuffer,
2188 _In_ UINT64 AlignedDestinationBufferOffset);
2189
2190 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
2191 void ( STDMETHODCALLTYPE *SetPredication )(
2192 ID3D12VideoDecodeCommandList1 * This,
2193 _In_opt_ ID3D12Resource *pBuffer,
2194 _In_ UINT64 AlignedBufferOffset,
2195 _In_ D3D12_PREDICATION_OP Operation);
2196
2197 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
2198 void ( STDMETHODCALLTYPE *SetMarker )(
2199 ID3D12VideoDecodeCommandList1 * This,
2200 UINT Metadata,
2201 _In_reads_bytes_opt_(Size) const void *pData,
2202 UINT Size);
2203
2204 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
2205 void ( STDMETHODCALLTYPE *BeginEvent )(
2206 ID3D12VideoDecodeCommandList1 * This,
2207 UINT Metadata,
2208 _In_reads_bytes_opt_(Size) const void *pData,
2209 UINT Size);
2210
2211 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
2212 void ( STDMETHODCALLTYPE *EndEvent )(
2213 ID3D12VideoDecodeCommandList1 * This);
2214
2215 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
2216 void ( STDMETHODCALLTYPE *DecodeFrame )(
2217 ID3D12VideoDecodeCommandList1 * This,
2218 _In_ ID3D12VideoDecoder *pDecoder,
2219 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2220 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
2221
2222 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
2223 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
2224 ID3D12VideoDecodeCommandList1 * This,
2225 UINT Count,
2226 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
2227 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
2228
2229 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)
2230 void ( STDMETHODCALLTYPE *DecodeFrame1 )(
2231 ID3D12VideoDecodeCommandList1 * This,
2232 _In_ ID3D12VideoDecoder *pDecoder,
2233 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
2234 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
2235
2236 END_INTERFACE
2237 } ID3D12VideoDecodeCommandList1Vtbl;
2238
2239 interface ID3D12VideoDecodeCommandList1
2240 {
2241 CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl;
2242 };
2243
2244
2245
2246#ifdef COBJMACROS
2247
2248
2249#define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \
2250 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2251
2252#define ID3D12VideoDecodeCommandList1_AddRef(This) \
2253 ( (This)->lpVtbl -> AddRef(This) )
2254
2255#define ID3D12VideoDecodeCommandList1_Release(This) \
2256 ( (This)->lpVtbl -> Release(This) )
2257
2258
2259#define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
2260 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2261
2262#define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \
2263 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2264
2265#define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \
2266 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2267
2268#define ID3D12VideoDecodeCommandList1_SetName(This,Name) \
2269 ( (This)->lpVtbl -> SetName(This,Name) )
2270
2271
2272#define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \
2273 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2274
2275
2276#define ID3D12VideoDecodeCommandList1_GetType(This) \
2277 ( (This)->lpVtbl -> GetType(This) )
2278
2279
2280#define ID3D12VideoDecodeCommandList1_Close(This) \
2281 ( (This)->lpVtbl -> Close(This) )
2282
2283#define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \
2284 ( (This)->lpVtbl -> Reset(This,pAllocator) )
2285
2286#define ID3D12VideoDecodeCommandList1_ClearState(This) \
2287 ( (This)->lpVtbl -> ClearState(This) )
2288
2289#define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
2290 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
2291
2292#define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \
2293 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
2294
2295#define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
2296 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
2297
2298#define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
2299 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
2300
2301#define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
2302 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2303
2304#define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2305 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2306
2307#define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \
2308 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2309
2310#define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \
2311 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2312
2313#define ID3D12VideoDecodeCommandList1_EndEvent(This) \
2314 ( (This)->lpVtbl -> EndEvent(This) )
2315
2316#define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
2317 ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
2318
2319#define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
2320 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2321
2322
2323#define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \
2324 ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )
2325
2326#endif /* COBJMACROS */
2327
2328
2329#endif /* C style interface */
2330
2331
2332
2333
2334#endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */
2335
2336
2337/* interface __MIDL_itf_d3d12video_0000_0007 */
2338/* [local] */
2339
2340typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1
2341 {
2342 D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];
2343 D3D12_VIDEO_PROCESS_TRANSFORM Transform;
2344 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
2345 D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
2346 INT FilterLevels[ 32 ];
2347 D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
2348 D3D12_VIDEO_FIELD_TYPE FieldType;
2349 } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1;
2350
2351
2352
2353extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec;
2354extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec;
2355
2356#ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__
2357#define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__
2358
2359/* interface ID3D12VideoProcessCommandList1 */
2360/* [unique][local][object][uuid] */
2361
2362
2363EXTERN_C const IID IID_ID3D12VideoProcessCommandList1;
2364
2365#if defined(__cplusplus) && !defined(CINTERFACE)
2366
2367 MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267")
2368 ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList
2369 {
2370 public:
2371 virtual void STDMETHODCALLTYPE ProcessFrames1(
2372 _In_ ID3D12VideoProcessor *pVideoProcessor,
2373 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2374 UINT NumInputStreams,
2375 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0;
2376
2377 };
2378
2379
2380#else /* C style interface */
2381
2382 typedef struct ID3D12VideoProcessCommandList1Vtbl
2383 {
2384 BEGIN_INTERFACE
2385
2386 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2387 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2388 ID3D12VideoProcessCommandList1 * This,
2389 REFIID riid,
2390 _COM_Outptr_ void **ppvObject);
2391
2392 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2393 ULONG ( STDMETHODCALLTYPE *AddRef )(
2394 ID3D12VideoProcessCommandList1 * This);
2395
2396 DECLSPEC_XFGVIRT(IUnknown, Release)
2397 ULONG ( STDMETHODCALLTYPE *Release )(
2398 ID3D12VideoProcessCommandList1 * This);
2399
2400 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2401 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2402 ID3D12VideoProcessCommandList1 * This,
2403 _In_ REFGUID guid,
2404 _Inout_ UINT *pDataSize,
2405 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2406
2407 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2408 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2409 ID3D12VideoProcessCommandList1 * This,
2410 _In_ REFGUID guid,
2411 _In_ UINT DataSize,
2412 _In_reads_bytes_opt_( DataSize ) const void *pData);
2413
2414 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2415 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2416 ID3D12VideoProcessCommandList1 * This,
2417 _In_ REFGUID guid,
2418 _In_opt_ const IUnknown *pData);
2419
2420 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2421 HRESULT ( STDMETHODCALLTYPE *SetName )(
2422 ID3D12VideoProcessCommandList1 * This,
2423 _In_z_ LPCWSTR Name);
2424
2425 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2426 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2427 ID3D12VideoProcessCommandList1 * This,
2428 REFIID riid,
2429 _COM_Outptr_opt_ void **ppvDevice);
2430
2431 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
2432 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
2433 ID3D12VideoProcessCommandList1 * This);
2434
2435 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
2436 HRESULT ( STDMETHODCALLTYPE *Close )(
2437 ID3D12VideoProcessCommandList1 * This);
2438
2439 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
2440 HRESULT ( STDMETHODCALLTYPE *Reset )(
2441 ID3D12VideoProcessCommandList1 * This,
2442 _In_ ID3D12CommandAllocator *pAllocator);
2443
2444 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
2445 void ( STDMETHODCALLTYPE *ClearState )(
2446 ID3D12VideoProcessCommandList1 * This);
2447
2448 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
2449 void ( STDMETHODCALLTYPE *ResourceBarrier )(
2450 ID3D12VideoProcessCommandList1 * This,
2451 _In_ UINT NumBarriers,
2452 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
2453
2454 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
2455 void ( STDMETHODCALLTYPE *DiscardResource )(
2456 ID3D12VideoProcessCommandList1 * This,
2457 _In_ ID3D12Resource *pResource,
2458 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
2459
2460 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
2461 void ( STDMETHODCALLTYPE *BeginQuery )(
2462 ID3D12VideoProcessCommandList1 * This,
2463 _In_ ID3D12QueryHeap *pQueryHeap,
2464 _In_ D3D12_QUERY_TYPE Type,
2465 _In_ UINT Index);
2466
2467 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
2468 void ( STDMETHODCALLTYPE *EndQuery )(
2469 ID3D12VideoProcessCommandList1 * This,
2470 _In_ ID3D12QueryHeap *pQueryHeap,
2471 _In_ D3D12_QUERY_TYPE Type,
2472 _In_ UINT Index);
2473
2474 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
2475 void ( STDMETHODCALLTYPE *ResolveQueryData )(
2476 ID3D12VideoProcessCommandList1 * This,
2477 _In_ ID3D12QueryHeap *pQueryHeap,
2478 _In_ D3D12_QUERY_TYPE Type,
2479 _In_ UINT StartIndex,
2480 _In_ UINT NumQueries,
2481 _In_ ID3D12Resource *pDestinationBuffer,
2482 _In_ UINT64 AlignedDestinationBufferOffset);
2483
2484 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
2485 void ( STDMETHODCALLTYPE *SetPredication )(
2486 ID3D12VideoProcessCommandList1 * This,
2487 _In_opt_ ID3D12Resource *pBuffer,
2488 _In_ UINT64 AlignedBufferOffset,
2489 _In_ D3D12_PREDICATION_OP Operation);
2490
2491 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
2492 void ( STDMETHODCALLTYPE *SetMarker )(
2493 ID3D12VideoProcessCommandList1 * This,
2494 UINT Metadata,
2495 _In_reads_bytes_opt_(Size) const void *pData,
2496 UINT Size);
2497
2498 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
2499 void ( STDMETHODCALLTYPE *BeginEvent )(
2500 ID3D12VideoProcessCommandList1 * This,
2501 UINT Metadata,
2502 _In_reads_bytes_opt_(Size) const void *pData,
2503 UINT Size);
2504
2505 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
2506 void ( STDMETHODCALLTYPE *EndEvent )(
2507 ID3D12VideoProcessCommandList1 * This);
2508
2509 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
2510 void ( STDMETHODCALLTYPE *ProcessFrames )(
2511 ID3D12VideoProcessCommandList1 * This,
2512 _In_ ID3D12VideoProcessor *pVideoProcessor,
2513 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2514 UINT NumInputStreams,
2515 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
2516
2517 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
2518 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
2519 ID3D12VideoProcessCommandList1 * This,
2520 UINT Count,
2521 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
2522 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
2523
2524 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)
2525 void ( STDMETHODCALLTYPE *ProcessFrames1 )(
2526 ID3D12VideoProcessCommandList1 * This,
2527 _In_ ID3D12VideoProcessor *pVideoProcessor,
2528 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2529 UINT NumInputStreams,
2530 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);
2531
2532 END_INTERFACE
2533 } ID3D12VideoProcessCommandList1Vtbl;
2534
2535 interface ID3D12VideoProcessCommandList1
2536 {
2537 CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl;
2538 };
2539
2540
2541
2542#ifdef COBJMACROS
2543
2544
2545#define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \
2546 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2547
2548#define ID3D12VideoProcessCommandList1_AddRef(This) \
2549 ( (This)->lpVtbl -> AddRef(This) )
2550
2551#define ID3D12VideoProcessCommandList1_Release(This) \
2552 ( (This)->lpVtbl -> Release(This) )
2553
2554
2555#define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
2556 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2557
2558#define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \
2559 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2560
2561#define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \
2562 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2563
2564#define ID3D12VideoProcessCommandList1_SetName(This,Name) \
2565 ( (This)->lpVtbl -> SetName(This,Name) )
2566
2567
2568#define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \
2569 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2570
2571
2572#define ID3D12VideoProcessCommandList1_GetType(This) \
2573 ( (This)->lpVtbl -> GetType(This) )
2574
2575
2576#define ID3D12VideoProcessCommandList1_Close(This) \
2577 ( (This)->lpVtbl -> Close(This) )
2578
2579#define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \
2580 ( (This)->lpVtbl -> Reset(This,pAllocator) )
2581
2582#define ID3D12VideoProcessCommandList1_ClearState(This) \
2583 ( (This)->lpVtbl -> ClearState(This) )
2584
2585#define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
2586 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
2587
2588#define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \
2589 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
2590
2591#define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
2592 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
2593
2594#define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
2595 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
2596
2597#define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
2598 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2599
2600#define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2601 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2602
2603#define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \
2604 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2605
2606#define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \
2607 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2608
2609#define ID3D12VideoProcessCommandList1_EndEvent(This) \
2610 ( (This)->lpVtbl -> EndEvent(This) )
2611
2612#define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2613 ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2614
2615#define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
2616 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2617
2618
2619#define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2620 ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2621
2622#endif /* COBJMACROS */
2623
2624
2625#endif /* C style interface */
2626
2627
2628
2629
2630#endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */
2631
2632
2633/* interface __MIDL_itf_d3d12video_0000_0008 */
2634/* [local] */
2635
2636typedef
2637enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE
2638 {
2639 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0,
2640 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1
2641 } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE;
2642
2643typedef
2644enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS
2645 {
2646 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0,
2647 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) ,
2648 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 )
2649 } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS;
2650
2651DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS );
2652typedef
2653enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION
2654 {
2655 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0
2656 } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION;
2657
2658typedef
2659enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS
2660 {
2661 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0,
2662 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL )
2663 } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS;
2664
2665DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS );
2666typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT
2667 {
2668 UINT NodeIndex;
2669 BOOL VideoDecodeSupport;
2670 BOOL VideoProcessSupport;
2671 BOOL VideoEncodeSupport;
2672 } D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT;
2673
2674typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR
2675 {
2676 UINT NodeIndex;
2677 DXGI_FORMAT InputFormat;
2678 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags;
2679 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags;
2680 D3D12_VIDEO_SIZE_RANGE SizeRange;
2681 } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR;
2682
2683typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE
2684 {
2685 UINT NodeIndex;
2686 DXGI_FORMAT InputFormat;
2687 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2688 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2689 D3D12_VIDEO_SIZE_RANGE SizeRange;
2690 BOOL Protected;
2691 UINT64 MotionVectorHeapMemoryPoolL0Size;
2692 UINT64 MotionVectorHeapMemoryPoolL1Size;
2693 UINT64 MotionEstimatorMemoryPoolL0Size;
2694 UINT64 MotionEstimatorMemoryPoolL1Size;
2695 } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE;
2696
2697typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC
2698 {
2699 UINT NodeMask;
2700 DXGI_FORMAT InputFormat;
2701 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2702 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2703 D3D12_VIDEO_SIZE_RANGE SizeRange;
2704 } D3D12_VIDEO_MOTION_ESTIMATOR_DESC;
2705
2706
2707
2708extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec;
2709extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec;
2710
2711#ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__
2712#define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__
2713
2714/* interface ID3D12VideoMotionEstimator */
2715/* [unique][local][object][uuid] */
2716
2717
2718EXTERN_C const IID IID_ID3D12VideoMotionEstimator;
2719
2720#if defined(__cplusplus) && !defined(CINTERFACE)
2721
2722 MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8")
2723 ID3D12VideoMotionEstimator : public ID3D12Pageable
2724 {
2725 public:
2726 virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
2727
2728 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
2729 REFIID riid,
2730 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
2731
2732 };
2733
2734
2735#else /* C style interface */
2736
2737 typedef struct ID3D12VideoMotionEstimatorVtbl
2738 {
2739 BEGIN_INTERFACE
2740
2741 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2742 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2743 ID3D12VideoMotionEstimator * This,
2744 REFIID riid,
2745 _COM_Outptr_ void **ppvObject);
2746
2747 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2748 ULONG ( STDMETHODCALLTYPE *AddRef )(
2749 ID3D12VideoMotionEstimator * This);
2750
2751 DECLSPEC_XFGVIRT(IUnknown, Release)
2752 ULONG ( STDMETHODCALLTYPE *Release )(
2753 ID3D12VideoMotionEstimator * This);
2754
2755 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2756 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2757 ID3D12VideoMotionEstimator * This,
2758 _In_ REFGUID guid,
2759 _Inout_ UINT *pDataSize,
2760 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2761
2762 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2763 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2764 ID3D12VideoMotionEstimator * This,
2765 _In_ REFGUID guid,
2766 _In_ UINT DataSize,
2767 _In_reads_bytes_opt_( DataSize ) const void *pData);
2768
2769 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2770 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2771 ID3D12VideoMotionEstimator * This,
2772 _In_ REFGUID guid,
2773 _In_opt_ const IUnknown *pData);
2774
2775 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2776 HRESULT ( STDMETHODCALLTYPE *SetName )(
2777 ID3D12VideoMotionEstimator * This,
2778 _In_z_ LPCWSTR Name);
2779
2780 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2781 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2782 ID3D12VideoMotionEstimator * This,
2783 REFIID riid,
2784 _COM_Outptr_opt_ void **ppvDevice);
2785
2786 DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc)
2787 D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )(
2788 ID3D12VideoMotionEstimator * This,
2789 D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal);
2790
2791 DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession)
2792 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
2793 ID3D12VideoMotionEstimator * This,
2794 REFIID riid,
2795 _COM_Outptr_opt_ void **ppProtectedSession);
2796
2797 END_INTERFACE
2798 } ID3D12VideoMotionEstimatorVtbl;
2799
2800 interface ID3D12VideoMotionEstimator
2801 {
2802 CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl;
2803 };
2804
2805
2806
2807#ifdef COBJMACROS
2808
2809
2810#define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \
2811 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2812
2813#define ID3D12VideoMotionEstimator_AddRef(This) \
2814 ( (This)->lpVtbl -> AddRef(This) )
2815
2816#define ID3D12VideoMotionEstimator_Release(This) \
2817 ( (This)->lpVtbl -> Release(This) )
2818
2819
2820#define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \
2821 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2822
2823#define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \
2824 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2825
2826#define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \
2827 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2828
2829#define ID3D12VideoMotionEstimator_SetName(This,Name) \
2830 ( (This)->lpVtbl -> SetName(This,Name) )
2831
2832
2833#define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \
2834 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2835
2836
2837
2838#define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \
2839 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
2840
2841#define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \
2842 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
2843
2844#endif /* COBJMACROS */
2845
2846
2847#endif /* C style interface */
2848
2849
2850
2851
2852#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */
2853
2854
2855/* interface __MIDL_itf_d3d12video_0000_0009 */
2856/* [local] */
2857
2858typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC
2859 {
2860 UINT NodeMask;
2861 DXGI_FORMAT InputFormat;
2862 D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2863 D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2864 D3D12_VIDEO_SIZE_RANGE SizeRange;
2865 } D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC;
2866
2867
2868
2869extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec;
2870extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec;
2871
2872#ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__
2873#define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__
2874
2875/* interface ID3D12VideoMotionVectorHeap */
2876/* [unique][local][object][uuid] */
2877
2878
2879EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap;
2880
2881#if defined(__cplusplus) && !defined(CINTERFACE)
2882
2883 MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505")
2884 ID3D12VideoMotionVectorHeap : public ID3D12Pageable
2885 {
2886 public:
2887 virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
2888
2889 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
2890 REFIID riid,
2891 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
2892
2893 };
2894
2895
2896#else /* C style interface */
2897
2898 typedef struct ID3D12VideoMotionVectorHeapVtbl
2899 {
2900 BEGIN_INTERFACE
2901
2902 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2903 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2904 ID3D12VideoMotionVectorHeap * This,
2905 REFIID riid,
2906 _COM_Outptr_ void **ppvObject);
2907
2908 DECLSPEC_XFGVIRT(IUnknown, AddRef)
2909 ULONG ( STDMETHODCALLTYPE *AddRef )(
2910 ID3D12VideoMotionVectorHeap * This);
2911
2912 DECLSPEC_XFGVIRT(IUnknown, Release)
2913 ULONG ( STDMETHODCALLTYPE *Release )(
2914 ID3D12VideoMotionVectorHeap * This);
2915
2916 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2917 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2918 ID3D12VideoMotionVectorHeap * This,
2919 _In_ REFGUID guid,
2920 _Inout_ UINT *pDataSize,
2921 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
2922
2923 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2924 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2925 ID3D12VideoMotionVectorHeap * This,
2926 _In_ REFGUID guid,
2927 _In_ UINT DataSize,
2928 _In_reads_bytes_opt_( DataSize ) const void *pData);
2929
2930 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2931 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2932 ID3D12VideoMotionVectorHeap * This,
2933 _In_ REFGUID guid,
2934 _In_opt_ const IUnknown *pData);
2935
2936 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2937 HRESULT ( STDMETHODCALLTYPE *SetName )(
2938 ID3D12VideoMotionVectorHeap * This,
2939 _In_z_ LPCWSTR Name);
2940
2941 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2942 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2943 ID3D12VideoMotionVectorHeap * This,
2944 REFIID riid,
2945 _COM_Outptr_opt_ void **ppvDevice);
2946
2947 DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc)
2948 D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
2949 ID3D12VideoMotionVectorHeap * This,
2950 D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal);
2951
2952 DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession)
2953 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
2954 ID3D12VideoMotionVectorHeap * This,
2955 REFIID riid,
2956 _COM_Outptr_opt_ void **ppProtectedSession);
2957
2958 END_INTERFACE
2959 } ID3D12VideoMotionVectorHeapVtbl;
2960
2961 interface ID3D12VideoMotionVectorHeap
2962 {
2963 CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl;
2964 };
2965
2966
2967
2968#ifdef COBJMACROS
2969
2970
2971#define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \
2972 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2973
2974#define ID3D12VideoMotionVectorHeap_AddRef(This) \
2975 ( (This)->lpVtbl -> AddRef(This) )
2976
2977#define ID3D12VideoMotionVectorHeap_Release(This) \
2978 ( (This)->lpVtbl -> Release(This) )
2979
2980
2981#define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \
2982 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2983
2984#define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \
2985 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2986
2987#define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \
2988 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2989
2990#define ID3D12VideoMotionVectorHeap_SetName(This,Name) \
2991 ( (This)->lpVtbl -> SetName(This,Name) )
2992
2993
2994#define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \
2995 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2996
2997
2998
2999#define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \
3000 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
3001
3002#define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \
3003 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
3004
3005#endif /* COBJMACROS */
3006
3007
3008#endif /* C style interface */
3009
3010
3011
3012
3013#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */
3014
3015
3016#ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__
3017#define __ID3D12VideoDevice1_INTERFACE_DEFINED__
3018
3019/* interface ID3D12VideoDevice1 */
3020/* [unique][local][object][uuid] */
3021
3022
3023EXTERN_C const IID IID_ID3D12VideoDevice1;
3024
3025#if defined(__cplusplus) && !defined(CINTERFACE)
3026
3027 MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB")
3028 ID3D12VideoDevice1 : public ID3D12VideoDevice
3029 {
3030 public:
3031 virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator(
3032 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
3033 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3034 _In_ REFIID riid,
3035 _COM_Outptr_ void **ppVideoMotionEstimator) = 0;
3036
3037 virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap(
3038 _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
3039 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3040 _In_ REFIID riid,
3041 _COM_Outptr_ void **ppVideoMotionVectorHeap) = 0;
3042
3043 };
3044
3045
3046#else /* C style interface */
3047
3048 typedef struct ID3D12VideoDevice1Vtbl
3049 {
3050 BEGIN_INTERFACE
3051
3052 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3053 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3054 ID3D12VideoDevice1 * This,
3055 REFIID riid,
3056 _COM_Outptr_ void **ppvObject);
3057
3058 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3059 ULONG ( STDMETHODCALLTYPE *AddRef )(
3060 ID3D12VideoDevice1 * This);
3061
3062 DECLSPEC_XFGVIRT(IUnknown, Release)
3063 ULONG ( STDMETHODCALLTYPE *Release )(
3064 ID3D12VideoDevice1 * This);
3065
3066 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
3067 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
3068 ID3D12VideoDevice1 * This,
3069 D3D12_FEATURE_VIDEO FeatureVideo,
3070 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
3071 UINT FeatureSupportDataSize);
3072
3073 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
3074 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
3075 ID3D12VideoDevice1 * This,
3076 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
3077 _In_ REFIID riid,
3078 _COM_Outptr_ void **ppVideoDecoder);
3079
3080 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
3081 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
3082 ID3D12VideoDevice1 * This,
3083 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
3084 _In_ REFIID riid,
3085 _COM_Outptr_ void **ppVideoDecoderHeap);
3086
3087 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
3088 HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
3089 ID3D12VideoDevice1 * This,
3090 UINT NodeMask,
3091 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
3092 UINT NumInputStreamDescs,
3093 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
3094 _In_ REFIID riid,
3095 _COM_Outptr_ void **ppVideoProcessor);
3096
3097 DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)
3098 HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(
3099 ID3D12VideoDevice1 * This,
3100 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
3101 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3102 _In_ REFIID riid,
3103 _COM_Outptr_ void **ppVideoMotionEstimator);
3104
3105 DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)
3106 HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(
3107 ID3D12VideoDevice1 * This,
3108 _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
3109 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3110 _In_ REFIID riid,
3111 _COM_Outptr_ void **ppVideoMotionVectorHeap);
3112
3113 END_INTERFACE
3114 } ID3D12VideoDevice1Vtbl;
3115
3116 interface ID3D12VideoDevice1
3117 {
3118 CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl;
3119 };
3120
3121
3122
3123#ifdef COBJMACROS
3124
3125
3126#define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \
3127 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3128
3129#define ID3D12VideoDevice1_AddRef(This) \
3130 ( (This)->lpVtbl -> AddRef(This) )
3131
3132#define ID3D12VideoDevice1_Release(This) \
3133 ( (This)->lpVtbl -> Release(This) )
3134
3135
3136#define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
3137 ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
3138
3139#define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
3140 ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
3141
3142#define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
3143 ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
3144
3145#define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
3146 ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
3147
3148
3149#define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \
3150 ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )
3151
3152#define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \
3153 ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )
3154
3155#endif /* COBJMACROS */
3156
3157
3158#endif /* C style interface */
3159
3160
3161
3162
3163#endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */
3164
3165
3166/* interface __MIDL_itf_d3d12video_0000_0011 */
3167/* [local] */
3168
3169typedef struct D3D12_RESOURCE_COORDINATE
3170 {
3171 UINT64 X;
3172 UINT Y;
3173 UINT Z;
3174 UINT SubresourceIndex;
3175 } D3D12_RESOURCE_COORDINATE;
3176
3177typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT
3178 {
3179 ID3D12VideoMotionVectorHeap *pMotionVectorHeap;
3180 } D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT;
3181
3182typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT
3183 {
3184 ID3D12Resource *pInputTexture2D;
3185 UINT InputSubresourceIndex;
3186 ID3D12Resource *pReferenceTexture2D;
3187 UINT ReferenceSubresourceIndex;
3188 ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap;
3189 } D3D12_VIDEO_MOTION_ESTIMATOR_INPUT;
3190
3191typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT
3192 {
3193 ID3D12Resource *pMotionVectorTexture2D;
3194 D3D12_RESOURCE_COORDINATE MotionVectorCoordinate;
3195 } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT;
3196
3197typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT
3198 {
3199 ID3D12VideoMotionVectorHeap *pMotionVectorHeap;
3200 UINT PixelWidth;
3201 UINT PixelHeight;
3202 } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT;
3203
3204
3205
3206extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec;
3207extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec;
3208
3209#ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__
3210#define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__
3211
3212/* interface ID3D12VideoEncodeCommandList */
3213/* [unique][local][object][uuid] */
3214
3215
3216EXTERN_C const IID IID_ID3D12VideoEncodeCommandList;
3217
3218#if defined(__cplusplus) && !defined(CINTERFACE)
3219
3220 MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723")
3221 ID3D12VideoEncodeCommandList : public ID3D12CommandList
3222 {
3223 public:
3224 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
3225
3226 virtual HRESULT STDMETHODCALLTYPE Reset(
3227 _In_ ID3D12CommandAllocator *pAllocator) = 0;
3228
3229 virtual void STDMETHODCALLTYPE ClearState( void) = 0;
3230
3231 virtual void STDMETHODCALLTYPE ResourceBarrier(
3232 _In_ UINT NumBarriers,
3233 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
3234
3235 virtual void STDMETHODCALLTYPE DiscardResource(
3236 _In_ ID3D12Resource *pResource,
3237 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
3238
3239 virtual void STDMETHODCALLTYPE BeginQuery(
3240 _In_ ID3D12QueryHeap *pQueryHeap,
3241 _In_ D3D12_QUERY_TYPE Type,
3242 _In_ UINT Index) = 0;
3243
3244 virtual void STDMETHODCALLTYPE EndQuery(
3245 _In_ ID3D12QueryHeap *pQueryHeap,
3246 _In_ D3D12_QUERY_TYPE Type,
3247 _In_ UINT Index) = 0;
3248
3249 virtual void STDMETHODCALLTYPE ResolveQueryData(
3250 _In_ ID3D12QueryHeap *pQueryHeap,
3251 _In_ D3D12_QUERY_TYPE Type,
3252 _In_ UINT StartIndex,
3253 _In_ UINT NumQueries,
3254 _In_ ID3D12Resource *pDestinationBuffer,
3255 _In_ UINT64 AlignedDestinationBufferOffset) = 0;
3256
3257 virtual void STDMETHODCALLTYPE SetPredication(
3258 _In_opt_ ID3D12Resource *pBuffer,
3259 _In_ UINT64 AlignedBufferOffset,
3260 _In_ D3D12_PREDICATION_OP Operation) = 0;
3261
3262 virtual void STDMETHODCALLTYPE SetMarker(
3263 UINT Metadata,
3264 _In_reads_bytes_opt_(Size) const void *pData,
3265 UINT Size) = 0;
3266
3267 virtual void STDMETHODCALLTYPE BeginEvent(
3268 UINT Metadata,
3269 _In_reads_bytes_opt_(Size) const void *pData,
3270 UINT Size) = 0;
3271
3272 virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
3273
3274 virtual void STDMETHODCALLTYPE EstimateMotion(
3275 _In_ ID3D12VideoMotionEstimator *pMotionEstimator,
3276 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
3277 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0;
3278
3279 virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap(
3280 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
3281 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0;
3282
3283 virtual void STDMETHODCALLTYPE WriteBufferImmediate(
3284 UINT Count,
3285 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
3286 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
3287
3288 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
3289 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
3290
3291 };
3292
3293
3294#else /* C style interface */
3295
3296 typedef struct ID3D12VideoEncodeCommandListVtbl
3297 {
3298 BEGIN_INTERFACE
3299
3300 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3301 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3302 ID3D12VideoEncodeCommandList * This,
3303 REFIID riid,
3304 _COM_Outptr_ void **ppvObject);
3305
3306 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3307 ULONG ( STDMETHODCALLTYPE *AddRef )(
3308 ID3D12VideoEncodeCommandList * This);
3309
3310 DECLSPEC_XFGVIRT(IUnknown, Release)
3311 ULONG ( STDMETHODCALLTYPE *Release )(
3312 ID3D12VideoEncodeCommandList * This);
3313
3314 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3315 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3316 ID3D12VideoEncodeCommandList * This,
3317 _In_ REFGUID guid,
3318 _Inout_ UINT *pDataSize,
3319 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
3320
3321 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3322 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3323 ID3D12VideoEncodeCommandList * This,
3324 _In_ REFGUID guid,
3325 _In_ UINT DataSize,
3326 _In_reads_bytes_opt_( DataSize ) const void *pData);
3327
3328 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3329 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3330 ID3D12VideoEncodeCommandList * This,
3331 _In_ REFGUID guid,
3332 _In_opt_ const IUnknown *pData);
3333
3334 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3335 HRESULT ( STDMETHODCALLTYPE *SetName )(
3336 ID3D12VideoEncodeCommandList * This,
3337 _In_z_ LPCWSTR Name);
3338
3339 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3340 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3341 ID3D12VideoEncodeCommandList * This,
3342 REFIID riid,
3343 _COM_Outptr_opt_ void **ppvDevice);
3344
3345 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
3346 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
3347 ID3D12VideoEncodeCommandList * This);
3348
3349 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
3350 HRESULT ( STDMETHODCALLTYPE *Close )(
3351 ID3D12VideoEncodeCommandList * This);
3352
3353 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
3354 HRESULT ( STDMETHODCALLTYPE *Reset )(
3355 ID3D12VideoEncodeCommandList * This,
3356 _In_ ID3D12CommandAllocator *pAllocator);
3357
3358 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
3359 void ( STDMETHODCALLTYPE *ClearState )(
3360 ID3D12VideoEncodeCommandList * This);
3361
3362 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
3363 void ( STDMETHODCALLTYPE *ResourceBarrier )(
3364 ID3D12VideoEncodeCommandList * This,
3365 _In_ UINT NumBarriers,
3366 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
3367
3368 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
3369 void ( STDMETHODCALLTYPE *DiscardResource )(
3370 ID3D12VideoEncodeCommandList * This,
3371 _In_ ID3D12Resource *pResource,
3372 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
3373
3374 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
3375 void ( STDMETHODCALLTYPE *BeginQuery )(
3376 ID3D12VideoEncodeCommandList * This,
3377 _In_ ID3D12QueryHeap *pQueryHeap,
3378 _In_ D3D12_QUERY_TYPE Type,
3379 _In_ UINT Index);
3380
3381 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
3382 void ( STDMETHODCALLTYPE *EndQuery )(
3383 ID3D12VideoEncodeCommandList * This,
3384 _In_ ID3D12QueryHeap *pQueryHeap,
3385 _In_ D3D12_QUERY_TYPE Type,
3386 _In_ UINT Index);
3387
3388 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
3389 void ( STDMETHODCALLTYPE *ResolveQueryData )(
3390 ID3D12VideoEncodeCommandList * This,
3391 _In_ ID3D12QueryHeap *pQueryHeap,
3392 _In_ D3D12_QUERY_TYPE Type,
3393 _In_ UINT StartIndex,
3394 _In_ UINT NumQueries,
3395 _In_ ID3D12Resource *pDestinationBuffer,
3396 _In_ UINT64 AlignedDestinationBufferOffset);
3397
3398 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
3399 void ( STDMETHODCALLTYPE *SetPredication )(
3400 ID3D12VideoEncodeCommandList * This,
3401 _In_opt_ ID3D12Resource *pBuffer,
3402 _In_ UINT64 AlignedBufferOffset,
3403 _In_ D3D12_PREDICATION_OP Operation);
3404
3405 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
3406 void ( STDMETHODCALLTYPE *SetMarker )(
3407 ID3D12VideoEncodeCommandList * This,
3408 UINT Metadata,
3409 _In_reads_bytes_opt_(Size) const void *pData,
3410 UINT Size);
3411
3412 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
3413 void ( STDMETHODCALLTYPE *BeginEvent )(
3414 ID3D12VideoEncodeCommandList * This,
3415 UINT Metadata,
3416 _In_reads_bytes_opt_(Size) const void *pData,
3417 UINT Size);
3418
3419 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
3420 void ( STDMETHODCALLTYPE *EndEvent )(
3421 ID3D12VideoEncodeCommandList * This);
3422
3423 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
3424 void ( STDMETHODCALLTYPE *EstimateMotion )(
3425 ID3D12VideoEncodeCommandList * This,
3426 _In_ ID3D12VideoMotionEstimator *pMotionEstimator,
3427 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
3428 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
3429
3430 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
3431 void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
3432 ID3D12VideoEncodeCommandList * This,
3433 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
3434 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
3435
3436 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
3437 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
3438 ID3D12VideoEncodeCommandList * This,
3439 UINT Count,
3440 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
3441 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
3442
3443 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
3444 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
3445 ID3D12VideoEncodeCommandList * This,
3446 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
3447
3448 END_INTERFACE
3449 } ID3D12VideoEncodeCommandListVtbl;
3450
3451 interface ID3D12VideoEncodeCommandList
3452 {
3453 CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl;
3454 };
3455
3456
3457
3458#ifdef COBJMACROS
3459
3460
3461#define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \
3462 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3463
3464#define ID3D12VideoEncodeCommandList_AddRef(This) \
3465 ( (This)->lpVtbl -> AddRef(This) )
3466
3467#define ID3D12VideoEncodeCommandList_Release(This) \
3468 ( (This)->lpVtbl -> Release(This) )
3469
3470
3471#define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \
3472 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3473
3474#define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \
3475 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3476
3477#define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \
3478 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3479
3480#define ID3D12VideoEncodeCommandList_SetName(This,Name) \
3481 ( (This)->lpVtbl -> SetName(This,Name) )
3482
3483
3484#define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \
3485 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3486
3487
3488#define ID3D12VideoEncodeCommandList_GetType(This) \
3489 ( (This)->lpVtbl -> GetType(This) )
3490
3491
3492#define ID3D12VideoEncodeCommandList_Close(This) \
3493 ( (This)->lpVtbl -> Close(This) )
3494
3495#define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \
3496 ( (This)->lpVtbl -> Reset(This,pAllocator) )
3497
3498#define ID3D12VideoEncodeCommandList_ClearState(This) \
3499 ( (This)->lpVtbl -> ClearState(This) )
3500
3501#define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
3502 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
3503
3504#define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \
3505 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
3506
3507#define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
3508 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
3509
3510#define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \
3511 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
3512
3513#define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
3514 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
3515
3516#define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
3517 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
3518
3519#define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \
3520 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
3521
3522#define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \
3523 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
3524
3525#define ID3D12VideoEncodeCommandList_EndEvent(This) \
3526 ( (This)->lpVtbl -> EndEvent(This) )
3527
3528#define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
3529 ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
3530
3531#define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
3532 ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
3533
3534#define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
3535 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
3536
3537#define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \
3538 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
3539
3540#endif /* COBJMACROS */
3541
3542
3543#endif /* C style interface */
3544
3545
3546
3547
3548#endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */
3549
3550
3551/* interface __MIDL_itf_d3d12video_0000_0012 */
3552/* [local] */
3553
3554typedef
3555enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS
3556 {
3557 D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0,
3558 D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1
3559 } D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS;
3560
3561DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS );
3562typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES
3563 {
3564 UINT NodeIndex;
3565 D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
3566 D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3567 } D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES;
3568
3569typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES
3570 {
3571 UINT NodeIndex;
3572 D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3573 } D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES;
3574
3575typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES
3576 {
3577 UINT NodeIndex;
3578 D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3579 } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES;
3580
3581typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1
3582 {
3583 D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;
3584 BOOL Protected;
3585 UINT64 MemoryPoolL0Size;
3586 UINT64 MemoryPoolL1Size;
3587 } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1;
3588
3589typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1
3590 {
3591 UINT NodeMask;
3592 const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;
3593 UINT NumInputStreamDescs;
3594 const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;
3595 BOOL Protected;
3596 UINT64 MemoryPoolL0Size;
3597 UINT64 MemoryPoolL1Size;
3598 } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1;
3599
3600typedef
3601enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE
3602 {
3603 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0,
3604 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
3605 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2,
3606 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3,
3607 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4,
3608 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5,
3609 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6
3610 } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE;
3611
3612typedef
3613enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE
3614 {
3615 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0,
3616 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1,
3617 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2,
3618 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3,
3619 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4,
3620 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5,
3621 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6,
3622 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7,
3623 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8,
3624 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9,
3625 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10
3626 } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE;
3627
3628typedef
3629enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS
3630 {
3631 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0,
3632 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1,
3633 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x2
3634 } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS;
3635
3636DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS );
3637typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT
3638 {
3639 UINT NodeIndex;
3640 UINT CommandCount;
3641 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT;
3642
3643typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO
3644 {
3645 GUID CommandId;
3646 LPCWSTR Name;
3647 D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags;
3648 } D3D12_VIDEO_EXTENSION_COMMAND_INFO;
3649
3650typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS
3651 {
3652 UINT NodeIndex;
3653 UINT CommandCount;
3654 _Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos;
3655 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS;
3656
3657typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT
3658 {
3659 GUID CommandId;
3660 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;
3661 UINT ParameterCount;
3662 UINT ParameterPacking;
3663 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT;
3664
3665typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO
3666 {
3667 LPCWSTR Name;
3668 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type;
3669 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags;
3670 } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO;
3671
3672typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS
3673 {
3674 GUID CommandId;
3675 D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;
3676 UINT ParameterCount;
3677 _Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos;
3678 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS;
3679
3680typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT
3681 {
3682 UINT NodeIndex;
3683 GUID CommandId;
3684 _Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData;
3685 SIZE_T InputDataSizeInBytes;
3686 _Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData;
3687 SIZE_T OutputDataSizeInBytes;
3688 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT;
3689
3690typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE
3691 {
3692 UINT NodeIndex;
3693 GUID CommandId;
3694 _Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters;
3695 SIZE_T CreationParametersSizeInBytes;
3696 UINT64 MemoryPoolL0Size;
3697 UINT64 MemoryPoolL1Size;
3698 } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE;
3699
3700typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC
3701 {
3702 UINT NodeMask;
3703 GUID CommandId;
3704 } D3D12_VIDEO_EXTENSION_COMMAND_DESC;
3705
3706
3707
3708extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec;
3709extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec;
3710
3711#ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__
3712#define __ID3D12VideoDecoder1_INTERFACE_DEFINED__
3713
3714/* interface ID3D12VideoDecoder1 */
3715/* [unique][local][object][uuid] */
3716
3717
3718EXTERN_C const IID IID_ID3D12VideoDecoder1;
3719
3720#if defined(__cplusplus) && !defined(CINTERFACE)
3721
3722 MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E")
3723 ID3D12VideoDecoder1 : public ID3D12VideoDecoder
3724 {
3725 public:
3726 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
3727 REFIID riid,
3728 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
3729
3730 };
3731
3732
3733#else /* C style interface */
3734
3735 typedef struct ID3D12VideoDecoder1Vtbl
3736 {
3737 BEGIN_INTERFACE
3738
3739 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3740 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3741 ID3D12VideoDecoder1 * This,
3742 REFIID riid,
3743 _COM_Outptr_ void **ppvObject);
3744
3745 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3746 ULONG ( STDMETHODCALLTYPE *AddRef )(
3747 ID3D12VideoDecoder1 * This);
3748
3749 DECLSPEC_XFGVIRT(IUnknown, Release)
3750 ULONG ( STDMETHODCALLTYPE *Release )(
3751 ID3D12VideoDecoder1 * This);
3752
3753 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3754 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3755 ID3D12VideoDecoder1 * This,
3756 _In_ REFGUID guid,
3757 _Inout_ UINT *pDataSize,
3758 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
3759
3760 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3761 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3762 ID3D12VideoDecoder1 * This,
3763 _In_ REFGUID guid,
3764 _In_ UINT DataSize,
3765 _In_reads_bytes_opt_( DataSize ) const void *pData);
3766
3767 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3768 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3769 ID3D12VideoDecoder1 * This,
3770 _In_ REFGUID guid,
3771 _In_opt_ const IUnknown *pData);
3772
3773 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3774 HRESULT ( STDMETHODCALLTYPE *SetName )(
3775 ID3D12VideoDecoder1 * This,
3776 _In_z_ LPCWSTR Name);
3777
3778 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3779 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3780 ID3D12VideoDecoder1 * This,
3781 REFIID riid,
3782 _COM_Outptr_opt_ void **ppvDevice);
3783
3784 DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)
3785 D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(
3786 ID3D12VideoDecoder1 * This,
3787 D3D12_VIDEO_DECODER_DESC * RetVal);
3788
3789 DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession)
3790 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
3791 ID3D12VideoDecoder1 * This,
3792 REFIID riid,
3793 _COM_Outptr_opt_ void **ppProtectedSession);
3794
3795 END_INTERFACE
3796 } ID3D12VideoDecoder1Vtbl;
3797
3798 interface ID3D12VideoDecoder1
3799 {
3800 CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl;
3801 };
3802
3803
3804
3805#ifdef COBJMACROS
3806
3807
3808#define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \
3809 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3810
3811#define ID3D12VideoDecoder1_AddRef(This) \
3812 ( (This)->lpVtbl -> AddRef(This) )
3813
3814#define ID3D12VideoDecoder1_Release(This) \
3815 ( (This)->lpVtbl -> Release(This) )
3816
3817
3818#define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \
3819 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3820
3821#define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \
3822 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3823
3824#define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \
3825 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3826
3827#define ID3D12VideoDecoder1_SetName(This,Name) \
3828 ( (This)->lpVtbl -> SetName(This,Name) )
3829
3830
3831#define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \
3832 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3833
3834
3835
3836#define ID3D12VideoDecoder1_GetDesc(This,RetVal) \
3837 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
3838
3839
3840#define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
3841 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
3842
3843#endif /* COBJMACROS */
3844
3845
3846#endif /* C style interface */
3847
3848
3849
3850
3851#endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */
3852
3853
3854#ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__
3855#define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__
3856
3857/* interface ID3D12VideoDecoderHeap1 */
3858/* [unique][local][object][uuid] */
3859
3860
3861EXTERN_C const IID IID_ID3D12VideoDecoderHeap1;
3862
3863#if defined(__cplusplus) && !defined(CINTERFACE)
3864
3865 MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26")
3866 ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap
3867 {
3868 public:
3869 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
3870 REFIID riid,
3871 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
3872
3873 };
3874
3875
3876#else /* C style interface */
3877
3878 typedef struct ID3D12VideoDecoderHeap1Vtbl
3879 {
3880 BEGIN_INTERFACE
3881
3882 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3883 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3884 ID3D12VideoDecoderHeap1 * This,
3885 REFIID riid,
3886 _COM_Outptr_ void **ppvObject);
3887
3888 DECLSPEC_XFGVIRT(IUnknown, AddRef)
3889 ULONG ( STDMETHODCALLTYPE *AddRef )(
3890 ID3D12VideoDecoderHeap1 * This);
3891
3892 DECLSPEC_XFGVIRT(IUnknown, Release)
3893 ULONG ( STDMETHODCALLTYPE *Release )(
3894 ID3D12VideoDecoderHeap1 * This);
3895
3896 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3897 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3898 ID3D12VideoDecoderHeap1 * This,
3899 _In_ REFGUID guid,
3900 _Inout_ UINT *pDataSize,
3901 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
3902
3903 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3904 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3905 ID3D12VideoDecoderHeap1 * This,
3906 _In_ REFGUID guid,
3907 _In_ UINT DataSize,
3908 _In_reads_bytes_opt_( DataSize ) const void *pData);
3909
3910 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3911 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3912 ID3D12VideoDecoderHeap1 * This,
3913 _In_ REFGUID guid,
3914 _In_opt_ const IUnknown *pData);
3915
3916 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3917 HRESULT ( STDMETHODCALLTYPE *SetName )(
3918 ID3D12VideoDecoderHeap1 * This,
3919 _In_z_ LPCWSTR Name);
3920
3921 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3922 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3923 ID3D12VideoDecoderHeap1 * This,
3924 REFIID riid,
3925 _COM_Outptr_opt_ void **ppvDevice);
3926
3927 DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)
3928 D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
3929 ID3D12VideoDecoderHeap1 * This,
3930 D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);
3931
3932 DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession)
3933 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
3934 ID3D12VideoDecoderHeap1 * This,
3935 REFIID riid,
3936 _COM_Outptr_opt_ void **ppProtectedSession);
3937
3938 END_INTERFACE
3939 } ID3D12VideoDecoderHeap1Vtbl;
3940
3941 interface ID3D12VideoDecoderHeap1
3942 {
3943 CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl;
3944 };
3945
3946
3947
3948#ifdef COBJMACROS
3949
3950
3951#define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \
3952 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3953
3954#define ID3D12VideoDecoderHeap1_AddRef(This) \
3955 ( (This)->lpVtbl -> AddRef(This) )
3956
3957#define ID3D12VideoDecoderHeap1_Release(This) \
3958 ( (This)->lpVtbl -> Release(This) )
3959
3960
3961#define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \
3962 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3963
3964#define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \
3965 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3966
3967#define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \
3968 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3969
3970#define ID3D12VideoDecoderHeap1_SetName(This,Name) \
3971 ( (This)->lpVtbl -> SetName(This,Name) )
3972
3973
3974#define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \
3975 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3976
3977
3978
3979#define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \
3980 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
3981
3982
3983#define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
3984 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
3985
3986#endif /* COBJMACROS */
3987
3988
3989#endif /* C style interface */
3990
3991
3992
3993
3994#endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */
3995
3996
3997#ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__
3998#define __ID3D12VideoProcessor1_INTERFACE_DEFINED__
3999
4000/* interface ID3D12VideoProcessor1 */
4001/* [unique][local][object][uuid] */
4002
4003
4004EXTERN_C const IID IID_ID3D12VideoProcessor1;
4005
4006#if defined(__cplusplus) && !defined(CINTERFACE)
4007
4008 MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C")
4009 ID3D12VideoProcessor1 : public ID3D12VideoProcessor
4010 {
4011 public:
4012 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
4013 REFIID riid,
4014 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
4015
4016 };
4017
4018
4019#else /* C style interface */
4020
4021 typedef struct ID3D12VideoProcessor1Vtbl
4022 {
4023 BEGIN_INTERFACE
4024
4025 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4026 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4027 ID3D12VideoProcessor1 * This,
4028 REFIID riid,
4029 _COM_Outptr_ void **ppvObject);
4030
4031 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4032 ULONG ( STDMETHODCALLTYPE *AddRef )(
4033 ID3D12VideoProcessor1 * This);
4034
4035 DECLSPEC_XFGVIRT(IUnknown, Release)
4036 ULONG ( STDMETHODCALLTYPE *Release )(
4037 ID3D12VideoProcessor1 * This);
4038
4039 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4040 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4041 ID3D12VideoProcessor1 * This,
4042 _In_ REFGUID guid,
4043 _Inout_ UINT *pDataSize,
4044 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4045
4046 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4047 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4048 ID3D12VideoProcessor1 * This,
4049 _In_ REFGUID guid,
4050 _In_ UINT DataSize,
4051 _In_reads_bytes_opt_( DataSize ) const void *pData);
4052
4053 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4054 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4055 ID3D12VideoProcessor1 * This,
4056 _In_ REFGUID guid,
4057 _In_opt_ const IUnknown *pData);
4058
4059 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4060 HRESULT ( STDMETHODCALLTYPE *SetName )(
4061 ID3D12VideoProcessor1 * This,
4062 _In_z_ LPCWSTR Name);
4063
4064 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4065 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4066 ID3D12VideoProcessor1 * This,
4067 REFIID riid,
4068 _COM_Outptr_opt_ void **ppvDevice);
4069
4070 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)
4071 UINT ( STDMETHODCALLTYPE *GetNodeMask )(
4072 ID3D12VideoProcessor1 * This);
4073
4074 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)
4075 UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(
4076 ID3D12VideoProcessor1 * This);
4077
4078 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)
4079 HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(
4080 ID3D12VideoProcessor1 * This,
4081 UINT NumInputStreamDescs,
4082 _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);
4083
4084 DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)
4085 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(
4086 ID3D12VideoProcessor1 * This,
4087 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);
4088
4089 DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession)
4090 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
4091 ID3D12VideoProcessor1 * This,
4092 REFIID riid,
4093 _COM_Outptr_opt_ void **ppProtectedSession);
4094
4095 END_INTERFACE
4096 } ID3D12VideoProcessor1Vtbl;
4097
4098 interface ID3D12VideoProcessor1
4099 {
4100 CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl;
4101 };
4102
4103
4104
4105#ifdef COBJMACROS
4106
4107
4108#define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \
4109 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4110
4111#define ID3D12VideoProcessor1_AddRef(This) \
4112 ( (This)->lpVtbl -> AddRef(This) )
4113
4114#define ID3D12VideoProcessor1_Release(This) \
4115 ( (This)->lpVtbl -> Release(This) )
4116
4117
4118#define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \
4119 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4120
4121#define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \
4122 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4123
4124#define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \
4125 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4126
4127#define ID3D12VideoProcessor1_SetName(This,Name) \
4128 ( (This)->lpVtbl -> SetName(This,Name) )
4129
4130
4131#define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \
4132 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4133
4134
4135
4136#define ID3D12VideoProcessor1_GetNodeMask(This) \
4137 ( (This)->lpVtbl -> GetNodeMask(This) )
4138
4139#define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \
4140 ( (This)->lpVtbl -> GetNumInputStreamDescs(This) )
4141
4142#define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \
4143 ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )
4144
4145#define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \
4146 ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )
4147
4148
4149#define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4150 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4151
4152#endif /* COBJMACROS */
4153
4154
4155#endif /* C style interface */
4156
4157
4158
4159
4160#endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */
4161
4162
4163#ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__
4164#define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__
4165
4166/* interface ID3D12VideoExtensionCommand */
4167/* [unique][local][object][uuid] */
4168
4169
4170EXTERN_C const IID IID_ID3D12VideoExtensionCommand;
4171
4172#if defined(__cplusplus) && !defined(CINTERFACE)
4173
4174 MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4")
4175 ID3D12VideoExtensionCommand : public ID3D12Pageable
4176 {
4177 public:
4178 virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4179
4180 virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
4181 REFIID riid,
4182 _COM_Outptr_opt_ void **ppProtectedSession) = 0;
4183
4184 };
4185
4186
4187#else /* C style interface */
4188
4189 typedef struct ID3D12VideoExtensionCommandVtbl
4190 {
4191 BEGIN_INTERFACE
4192
4193 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4194 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4195 ID3D12VideoExtensionCommand * This,
4196 REFIID riid,
4197 _COM_Outptr_ void **ppvObject);
4198
4199 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4200 ULONG ( STDMETHODCALLTYPE *AddRef )(
4201 ID3D12VideoExtensionCommand * This);
4202
4203 DECLSPEC_XFGVIRT(IUnknown, Release)
4204 ULONG ( STDMETHODCALLTYPE *Release )(
4205 ID3D12VideoExtensionCommand * This);
4206
4207 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4208 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4209 ID3D12VideoExtensionCommand * This,
4210 _In_ REFGUID guid,
4211 _Inout_ UINT *pDataSize,
4212 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4213
4214 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4215 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4216 ID3D12VideoExtensionCommand * This,
4217 _In_ REFGUID guid,
4218 _In_ UINT DataSize,
4219 _In_reads_bytes_opt_( DataSize ) const void *pData);
4220
4221 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4222 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4223 ID3D12VideoExtensionCommand * This,
4224 _In_ REFGUID guid,
4225 _In_opt_ const IUnknown *pData);
4226
4227 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4228 HRESULT ( STDMETHODCALLTYPE *SetName )(
4229 ID3D12VideoExtensionCommand * This,
4230 _In_z_ LPCWSTR Name);
4231
4232 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4233 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4234 ID3D12VideoExtensionCommand * This,
4235 REFIID riid,
4236 _COM_Outptr_opt_ void **ppvDevice);
4237
4238 DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc)
4239 D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )(
4240 ID3D12VideoExtensionCommand * This,
4241 D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal);
4242
4243 DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession)
4244 HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
4245 ID3D12VideoExtensionCommand * This,
4246 REFIID riid,
4247 _COM_Outptr_opt_ void **ppProtectedSession);
4248
4249 END_INTERFACE
4250 } ID3D12VideoExtensionCommandVtbl;
4251
4252 interface ID3D12VideoExtensionCommand
4253 {
4254 CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl;
4255 };
4256
4257
4258
4259#ifdef COBJMACROS
4260
4261
4262#define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \
4263 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4264
4265#define ID3D12VideoExtensionCommand_AddRef(This) \
4266 ( (This)->lpVtbl -> AddRef(This) )
4267
4268#define ID3D12VideoExtensionCommand_Release(This) \
4269 ( (This)->lpVtbl -> Release(This) )
4270
4271
4272#define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \
4273 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4274
4275#define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \
4276 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4277
4278#define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \
4279 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4280
4281#define ID3D12VideoExtensionCommand_SetName(This,Name) \
4282 ( (This)->lpVtbl -> SetName(This,Name) )
4283
4284
4285#define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \
4286 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4287
4288
4289
4290#define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \
4291 ( (This)->lpVtbl -> GetDesc(This,RetVal) )
4292
4293#define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4294 ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4295
4296#endif /* COBJMACROS */
4297
4298
4299#endif /* C style interface */
4300
4301
4302
4303
4304#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */
4305
4306
4307#ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__
4308#define __ID3D12VideoDevice2_INTERFACE_DEFINED__
4309
4310/* interface ID3D12VideoDevice2 */
4311/* [unique][local][object][uuid] */
4312
4313
4314EXTERN_C const IID IID_ID3D12VideoDevice2;
4315
4316#if defined(__cplusplus) && !defined(CINTERFACE)
4317
4318 MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513")
4319 ID3D12VideoDevice2 : public ID3D12VideoDevice1
4320 {
4321 public:
4322 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1(
4323 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4324 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4325 _In_ REFIID riid,
4326 _COM_Outptr_ void **ppVideoDecoder) = 0;
4327
4328 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1(
4329 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4330 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4331 _In_ REFIID riid,
4332 _COM_Outptr_ void **ppVideoDecoderHeap) = 0;
4333
4334 virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1(
4335 UINT NodeMask,
4336 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4337 UINT NumInputStreamDescs,
4338 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4339 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4340 _In_ REFIID riid,
4341 _COM_Outptr_ void **ppVideoProcessor) = 0;
4342
4343 virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand(
4344 _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,
4345 _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,
4346 SIZE_T CreationParametersDataSizeInBytes,
4347 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4348 _In_ REFIID riid,
4349 _COM_Outptr_ void **ppVideoExtensionCommand) = 0;
4350
4351 virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand(
4352 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4353 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4354 SIZE_T ExecutionParametersSizeInBytes,
4355 _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,
4356 SIZE_T OutputDataSizeInBytes) = 0;
4357
4358 };
4359
4360
4361#else /* C style interface */
4362
4363 typedef struct ID3D12VideoDevice2Vtbl
4364 {
4365 BEGIN_INTERFACE
4366
4367 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4368 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4369 ID3D12VideoDevice2 * This,
4370 REFIID riid,
4371 _COM_Outptr_ void **ppvObject);
4372
4373 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4374 ULONG ( STDMETHODCALLTYPE *AddRef )(
4375 ID3D12VideoDevice2 * This);
4376
4377 DECLSPEC_XFGVIRT(IUnknown, Release)
4378 ULONG ( STDMETHODCALLTYPE *Release )(
4379 ID3D12VideoDevice2 * This);
4380
4381 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
4382 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
4383 ID3D12VideoDevice2 * This,
4384 D3D12_FEATURE_VIDEO FeatureVideo,
4385 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4386 UINT FeatureSupportDataSize);
4387
4388 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
4389 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
4390 ID3D12VideoDevice2 * This,
4391 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4392 _In_ REFIID riid,
4393 _COM_Outptr_ void **ppVideoDecoder);
4394
4395 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
4396 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
4397 ID3D12VideoDevice2 * This,
4398 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4399 _In_ REFIID riid,
4400 _COM_Outptr_ void **ppVideoDecoderHeap);
4401
4402 DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
4403 HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
4404 ID3D12VideoDevice2 * This,
4405 UINT NodeMask,
4406 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4407 UINT NumInputStreamDescs,
4408 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4409 _In_ REFIID riid,
4410 _COM_Outptr_ void **ppVideoProcessor);
4411
4412 DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)
4413 HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(
4414 ID3D12VideoDevice2 * This,
4415 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
4416 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4417 _In_ REFIID riid,
4418 _COM_Outptr_ void **ppVideoMotionEstimator);
4419
4420 DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)
4421 HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(
4422 ID3D12VideoDevice2 * This,
4423 _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
4424 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4425 _In_ REFIID riid,
4426 _COM_Outptr_ void **ppVideoMotionVectorHeap);
4427
4428 DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)
4429 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(
4430 ID3D12VideoDevice2 * This,
4431 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4432 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4433 _In_ REFIID riid,
4434 _COM_Outptr_ void **ppVideoDecoder);
4435
4436 DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)
4437 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(
4438 ID3D12VideoDevice2 * This,
4439 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4440 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4441 _In_ REFIID riid,
4442 _COM_Outptr_ void **ppVideoDecoderHeap);
4443
4444 DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)
4445 HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(
4446 ID3D12VideoDevice2 * This,
4447 UINT NodeMask,
4448 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4449 UINT NumInputStreamDescs,
4450 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4451 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4452 _In_ REFIID riid,
4453 _COM_Outptr_ void **ppVideoProcessor);
4454
4455 DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)
4456 HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(
4457 ID3D12VideoDevice2 * This,
4458 _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,
4459 _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,
4460 SIZE_T CreationParametersDataSizeInBytes,
4461 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4462 _In_ REFIID riid,
4463 _COM_Outptr_ void **ppVideoExtensionCommand);
4464
4465 DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)
4466 HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
4467 ID3D12VideoDevice2 * This,
4468 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4469 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4470 SIZE_T ExecutionParametersSizeInBytes,
4471 _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,
4472 SIZE_T OutputDataSizeInBytes);
4473
4474 END_INTERFACE
4475 } ID3D12VideoDevice2Vtbl;
4476
4477 interface ID3D12VideoDevice2
4478 {
4479 CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl;
4480 };
4481
4482
4483
4484#ifdef COBJMACROS
4485
4486
4487#define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \
4488 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4489
4490#define ID3D12VideoDevice2_AddRef(This) \
4491 ( (This)->lpVtbl -> AddRef(This) )
4492
4493#define ID3D12VideoDevice2_Release(This) \
4494 ( (This)->lpVtbl -> Release(This) )
4495
4496
4497#define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
4498 ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
4499
4500#define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
4501 ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
4502
4503#define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
4504 ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
4505
4506#define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
4507 ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
4508
4509
4510#define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \
4511 ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )
4512
4513#define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \
4514 ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )
4515
4516
4517#define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \
4518 ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )
4519
4520#define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \
4521 ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )
4522
4523#define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \
4524 ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )
4525
4526#define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \
4527 ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )
4528
4529#define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \
4530 ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )
4531
4532#endif /* COBJMACROS */
4533
4534
4535#endif /* C style interface */
4536
4537
4538
4539
4540#endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */
4541
4542
4543#ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__
4544#define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__
4545
4546/* interface ID3D12VideoDecodeCommandList2 */
4547/* [unique][local][object][uuid] */
4548
4549
4550EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2;
4551
4552#if defined(__cplusplus) && !defined(CINTERFACE)
4553
4554 MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729")
4555 ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList1
4556 {
4557 public:
4558 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
4559 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
4560
4561 virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
4562 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4563 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
4564 SIZE_T InitializationParametersSizeInBytes) = 0;
4565
4566 virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
4567 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4568 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4569 SIZE_T ExecutionParametersSizeInBytes) = 0;
4570
4571 };
4572
4573
4574#else /* C style interface */
4575
4576 typedef struct ID3D12VideoDecodeCommandList2Vtbl
4577 {
4578 BEGIN_INTERFACE
4579
4580 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4581 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4582 ID3D12VideoDecodeCommandList2 * This,
4583 REFIID riid,
4584 _COM_Outptr_ void **ppvObject);
4585
4586 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4587 ULONG ( STDMETHODCALLTYPE *AddRef )(
4588 ID3D12VideoDecodeCommandList2 * This);
4589
4590 DECLSPEC_XFGVIRT(IUnknown, Release)
4591 ULONG ( STDMETHODCALLTYPE *Release )(
4592 ID3D12VideoDecodeCommandList2 * This);
4593
4594 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4595 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4596 ID3D12VideoDecodeCommandList2 * This,
4597 _In_ REFGUID guid,
4598 _Inout_ UINT *pDataSize,
4599 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4600
4601 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4602 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4603 ID3D12VideoDecodeCommandList2 * This,
4604 _In_ REFGUID guid,
4605 _In_ UINT DataSize,
4606 _In_reads_bytes_opt_( DataSize ) const void *pData);
4607
4608 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4609 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4610 ID3D12VideoDecodeCommandList2 * This,
4611 _In_ REFGUID guid,
4612 _In_opt_ const IUnknown *pData);
4613
4614 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4615 HRESULT ( STDMETHODCALLTYPE *SetName )(
4616 ID3D12VideoDecodeCommandList2 * This,
4617 _In_z_ LPCWSTR Name);
4618
4619 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4620 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4621 ID3D12VideoDecodeCommandList2 * This,
4622 REFIID riid,
4623 _COM_Outptr_opt_ void **ppvDevice);
4624
4625 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
4626 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
4627 ID3D12VideoDecodeCommandList2 * This);
4628
4629 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
4630 HRESULT ( STDMETHODCALLTYPE *Close )(
4631 ID3D12VideoDecodeCommandList2 * This);
4632
4633 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
4634 HRESULT ( STDMETHODCALLTYPE *Reset )(
4635 ID3D12VideoDecodeCommandList2 * This,
4636 _In_ ID3D12CommandAllocator *pAllocator);
4637
4638 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
4639 void ( STDMETHODCALLTYPE *ClearState )(
4640 ID3D12VideoDecodeCommandList2 * This);
4641
4642 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
4643 void ( STDMETHODCALLTYPE *ResourceBarrier )(
4644 ID3D12VideoDecodeCommandList2 * This,
4645 _In_ UINT NumBarriers,
4646 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
4647
4648 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
4649 void ( STDMETHODCALLTYPE *DiscardResource )(
4650 ID3D12VideoDecodeCommandList2 * This,
4651 _In_ ID3D12Resource *pResource,
4652 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
4653
4654 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
4655 void ( STDMETHODCALLTYPE *BeginQuery )(
4656 ID3D12VideoDecodeCommandList2 * This,
4657 _In_ ID3D12QueryHeap *pQueryHeap,
4658 _In_ D3D12_QUERY_TYPE Type,
4659 _In_ UINT Index);
4660
4661 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
4662 void ( STDMETHODCALLTYPE *EndQuery )(
4663 ID3D12VideoDecodeCommandList2 * This,
4664 _In_ ID3D12QueryHeap *pQueryHeap,
4665 _In_ D3D12_QUERY_TYPE Type,
4666 _In_ UINT Index);
4667
4668 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
4669 void ( STDMETHODCALLTYPE *ResolveQueryData )(
4670 ID3D12VideoDecodeCommandList2 * This,
4671 _In_ ID3D12QueryHeap *pQueryHeap,
4672 _In_ D3D12_QUERY_TYPE Type,
4673 _In_ UINT StartIndex,
4674 _In_ UINT NumQueries,
4675 _In_ ID3D12Resource *pDestinationBuffer,
4676 _In_ UINT64 AlignedDestinationBufferOffset);
4677
4678 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
4679 void ( STDMETHODCALLTYPE *SetPredication )(
4680 ID3D12VideoDecodeCommandList2 * This,
4681 _In_opt_ ID3D12Resource *pBuffer,
4682 _In_ UINT64 AlignedBufferOffset,
4683 _In_ D3D12_PREDICATION_OP Operation);
4684
4685 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
4686 void ( STDMETHODCALLTYPE *SetMarker )(
4687 ID3D12VideoDecodeCommandList2 * This,
4688 UINT Metadata,
4689 _In_reads_bytes_opt_(Size) const void *pData,
4690 UINT Size);
4691
4692 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
4693 void ( STDMETHODCALLTYPE *BeginEvent )(
4694 ID3D12VideoDecodeCommandList2 * This,
4695 UINT Metadata,
4696 _In_reads_bytes_opt_(Size) const void *pData,
4697 UINT Size);
4698
4699 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
4700 void ( STDMETHODCALLTYPE *EndEvent )(
4701 ID3D12VideoDecodeCommandList2 * This);
4702
4703 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
4704 void ( STDMETHODCALLTYPE *DecodeFrame )(
4705 ID3D12VideoDecodeCommandList2 * This,
4706 _In_ ID3D12VideoDecoder *pDecoder,
4707 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
4708 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
4709
4710 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
4711 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
4712 ID3D12VideoDecodeCommandList2 * This,
4713 UINT Count,
4714 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
4715 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
4716
4717 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)
4718 void ( STDMETHODCALLTYPE *DecodeFrame1 )(
4719 ID3D12VideoDecodeCommandList2 * This,
4720 _In_ ID3D12VideoDecoder *pDecoder,
4721 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
4722 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
4723
4724 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)
4725 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
4726 ID3D12VideoDecodeCommandList2 * This,
4727 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
4728
4729 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)
4730 void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
4731 ID3D12VideoDecodeCommandList2 * This,
4732 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4733 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
4734 SIZE_T InitializationParametersSizeInBytes);
4735
4736 DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)
4737 void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
4738 ID3D12VideoDecodeCommandList2 * This,
4739 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4740 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4741 SIZE_T ExecutionParametersSizeInBytes);
4742
4743 END_INTERFACE
4744 } ID3D12VideoDecodeCommandList2Vtbl;
4745
4746 interface ID3D12VideoDecodeCommandList2
4747 {
4748 CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl;
4749 };
4750
4751
4752
4753#ifdef COBJMACROS
4754
4755
4756#define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \
4757 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4758
4759#define ID3D12VideoDecodeCommandList2_AddRef(This) \
4760 ( (This)->lpVtbl -> AddRef(This) )
4761
4762#define ID3D12VideoDecodeCommandList2_Release(This) \
4763 ( (This)->lpVtbl -> Release(This) )
4764
4765
4766#define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
4767 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4768
4769#define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \
4770 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4771
4772#define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \
4773 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4774
4775#define ID3D12VideoDecodeCommandList2_SetName(This,Name) \
4776 ( (This)->lpVtbl -> SetName(This,Name) )
4777
4778
4779#define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \
4780 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4781
4782
4783#define ID3D12VideoDecodeCommandList2_GetType(This) \
4784 ( (This)->lpVtbl -> GetType(This) )
4785
4786
4787#define ID3D12VideoDecodeCommandList2_Close(This) \
4788 ( (This)->lpVtbl -> Close(This) )
4789
4790#define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \
4791 ( (This)->lpVtbl -> Reset(This,pAllocator) )
4792
4793#define ID3D12VideoDecodeCommandList2_ClearState(This) \
4794 ( (This)->lpVtbl -> ClearState(This) )
4795
4796#define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
4797 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
4798
4799#define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \
4800 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
4801
4802#define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
4803 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
4804
4805#define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
4806 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
4807
4808#define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
4809 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
4810
4811#define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
4812 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
4813
4814#define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \
4815 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
4816
4817#define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \
4818 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
4819
4820#define ID3D12VideoDecodeCommandList2_EndEvent(This) \
4821 ( (This)->lpVtbl -> EndEvent(This) )
4822
4823#define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
4824 ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
4825
4826#define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
4827 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
4828
4829
4830#define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \
4831 ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )
4832
4833
4834#define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \
4835 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
4836
4837#define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
4838 ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
4839
4840#define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
4841 ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
4842
4843#endif /* COBJMACROS */
4844
4845
4846#endif /* C style interface */
4847
4848
4849
4850
4851#endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */
4852
4853
4854#ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__
4855#define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__
4856
4857/* interface ID3D12VideoProcessCommandList2 */
4858/* [unique][local][object][uuid] */
4859
4860
4861EXTERN_C const IID IID_ID3D12VideoProcessCommandList2;
4862
4863#if defined(__cplusplus) && !defined(CINTERFACE)
4864
4865 MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4")
4866 ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList1
4867 {
4868 public:
4869 virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
4870 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
4871
4872 virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
4873 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4874 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
4875 SIZE_T InitializationParametersSizeInBytes) = 0;
4876
4877 virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
4878 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4879 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4880 SIZE_T ExecutionParametersSizeInBytes) = 0;
4881
4882 };
4883
4884
4885#else /* C style interface */
4886
4887 typedef struct ID3D12VideoProcessCommandList2Vtbl
4888 {
4889 BEGIN_INTERFACE
4890
4891 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4892 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4893 ID3D12VideoProcessCommandList2 * This,
4894 REFIID riid,
4895 _COM_Outptr_ void **ppvObject);
4896
4897 DECLSPEC_XFGVIRT(IUnknown, AddRef)
4898 ULONG ( STDMETHODCALLTYPE *AddRef )(
4899 ID3D12VideoProcessCommandList2 * This);
4900
4901 DECLSPEC_XFGVIRT(IUnknown, Release)
4902 ULONG ( STDMETHODCALLTYPE *Release )(
4903 ID3D12VideoProcessCommandList2 * This);
4904
4905 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4906 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4907 ID3D12VideoProcessCommandList2 * This,
4908 _In_ REFGUID guid,
4909 _Inout_ UINT *pDataSize,
4910 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
4911
4912 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4913 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4914 ID3D12VideoProcessCommandList2 * This,
4915 _In_ REFGUID guid,
4916 _In_ UINT DataSize,
4917 _In_reads_bytes_opt_( DataSize ) const void *pData);
4918
4919 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4920 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4921 ID3D12VideoProcessCommandList2 * This,
4922 _In_ REFGUID guid,
4923 _In_opt_ const IUnknown *pData);
4924
4925 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4926 HRESULT ( STDMETHODCALLTYPE *SetName )(
4927 ID3D12VideoProcessCommandList2 * This,
4928 _In_z_ LPCWSTR Name);
4929
4930 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4931 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4932 ID3D12VideoProcessCommandList2 * This,
4933 REFIID riid,
4934 _COM_Outptr_opt_ void **ppvDevice);
4935
4936 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
4937 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
4938 ID3D12VideoProcessCommandList2 * This);
4939
4940 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
4941 HRESULT ( STDMETHODCALLTYPE *Close )(
4942 ID3D12VideoProcessCommandList2 * This);
4943
4944 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
4945 HRESULT ( STDMETHODCALLTYPE *Reset )(
4946 ID3D12VideoProcessCommandList2 * This,
4947 _In_ ID3D12CommandAllocator *pAllocator);
4948
4949 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
4950 void ( STDMETHODCALLTYPE *ClearState )(
4951 ID3D12VideoProcessCommandList2 * This);
4952
4953 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
4954 void ( STDMETHODCALLTYPE *ResourceBarrier )(
4955 ID3D12VideoProcessCommandList2 * This,
4956 _In_ UINT NumBarriers,
4957 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
4958
4959 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
4960 void ( STDMETHODCALLTYPE *DiscardResource )(
4961 ID3D12VideoProcessCommandList2 * This,
4962 _In_ ID3D12Resource *pResource,
4963 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
4964
4965 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
4966 void ( STDMETHODCALLTYPE *BeginQuery )(
4967 ID3D12VideoProcessCommandList2 * This,
4968 _In_ ID3D12QueryHeap *pQueryHeap,
4969 _In_ D3D12_QUERY_TYPE Type,
4970 _In_ UINT Index);
4971
4972 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
4973 void ( STDMETHODCALLTYPE *EndQuery )(
4974 ID3D12VideoProcessCommandList2 * This,
4975 _In_ ID3D12QueryHeap *pQueryHeap,
4976 _In_ D3D12_QUERY_TYPE Type,
4977 _In_ UINT Index);
4978
4979 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
4980 void ( STDMETHODCALLTYPE *ResolveQueryData )(
4981 ID3D12VideoProcessCommandList2 * This,
4982 _In_ ID3D12QueryHeap *pQueryHeap,
4983 _In_ D3D12_QUERY_TYPE Type,
4984 _In_ UINT StartIndex,
4985 _In_ UINT NumQueries,
4986 _In_ ID3D12Resource *pDestinationBuffer,
4987 _In_ UINT64 AlignedDestinationBufferOffset);
4988
4989 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
4990 void ( STDMETHODCALLTYPE *SetPredication )(
4991 ID3D12VideoProcessCommandList2 * This,
4992 _In_opt_ ID3D12Resource *pBuffer,
4993 _In_ UINT64 AlignedBufferOffset,
4994 _In_ D3D12_PREDICATION_OP Operation);
4995
4996 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
4997 void ( STDMETHODCALLTYPE *SetMarker )(
4998 ID3D12VideoProcessCommandList2 * This,
4999 UINT Metadata,
5000 _In_reads_bytes_opt_(Size) const void *pData,
5001 UINT Size);
5002
5003 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
5004 void ( STDMETHODCALLTYPE *BeginEvent )(
5005 ID3D12VideoProcessCommandList2 * This,
5006 UINT Metadata,
5007 _In_reads_bytes_opt_(Size) const void *pData,
5008 UINT Size);
5009
5010 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
5011 void ( STDMETHODCALLTYPE *EndEvent )(
5012 ID3D12VideoProcessCommandList2 * This);
5013
5014 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
5015 void ( STDMETHODCALLTYPE *ProcessFrames )(
5016 ID3D12VideoProcessCommandList2 * This,
5017 _In_ ID3D12VideoProcessor *pVideoProcessor,
5018 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5019 UINT NumInputStreams,
5020 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
5021
5022 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
5023 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
5024 ID3D12VideoProcessCommandList2 * This,
5025 UINT Count,
5026 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
5027 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
5028
5029 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)
5030 void ( STDMETHODCALLTYPE *ProcessFrames1 )(
5031 ID3D12VideoProcessCommandList2 * This,
5032 _In_ ID3D12VideoProcessor *pVideoProcessor,
5033 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5034 UINT NumInputStreams,
5035 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);
5036
5037 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)
5038 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
5039 ID3D12VideoProcessCommandList2 * This,
5040 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
5041
5042 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)
5043 void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
5044 ID3D12VideoProcessCommandList2 * This,
5045 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5046 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5047 SIZE_T InitializationParametersSizeInBytes);
5048
5049 DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)
5050 void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
5051 ID3D12VideoProcessCommandList2 * This,
5052 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5053 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5054 SIZE_T ExecutionParametersSizeInBytes);
5055
5056 END_INTERFACE
5057 } ID3D12VideoProcessCommandList2Vtbl;
5058
5059 interface ID3D12VideoProcessCommandList2
5060 {
5061 CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl;
5062 };
5063
5064
5065
5066#ifdef COBJMACROS
5067
5068
5069#define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \
5070 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5071
5072#define ID3D12VideoProcessCommandList2_AddRef(This) \
5073 ( (This)->lpVtbl -> AddRef(This) )
5074
5075#define ID3D12VideoProcessCommandList2_Release(This) \
5076 ( (This)->lpVtbl -> Release(This) )
5077
5078
5079#define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
5080 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5081
5082#define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \
5083 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5084
5085#define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \
5086 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5087
5088#define ID3D12VideoProcessCommandList2_SetName(This,Name) \
5089 ( (This)->lpVtbl -> SetName(This,Name) )
5090
5091
5092#define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \
5093 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5094
5095
5096#define ID3D12VideoProcessCommandList2_GetType(This) \
5097 ( (This)->lpVtbl -> GetType(This) )
5098
5099
5100#define ID3D12VideoProcessCommandList2_Close(This) \
5101 ( (This)->lpVtbl -> Close(This) )
5102
5103#define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \
5104 ( (This)->lpVtbl -> Reset(This,pAllocator) )
5105
5106#define ID3D12VideoProcessCommandList2_ClearState(This) \
5107 ( (This)->lpVtbl -> ClearState(This) )
5108
5109#define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
5110 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5111
5112#define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \
5113 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5114
5115#define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
5116 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5117
5118#define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
5119 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5120
5121#define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5122 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5123
5124#define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5125 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5126
5127#define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \
5128 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5129
5130#define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \
5131 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5132
5133#define ID3D12VideoProcessCommandList2_EndEvent(This) \
5134 ( (This)->lpVtbl -> EndEvent(This) )
5135
5136#define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5137 ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5138
5139#define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
5140 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5141
5142
5143#define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5144 ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5145
5146
5147#define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \
5148 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5149
5150#define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5151 ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5152
5153#define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5154 ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5155
5156#endif /* COBJMACROS */
5157
5158
5159#endif /* C style interface */
5160
5161
5162
5163
5164#endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */
5165
5166
5167#ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__
5168#define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__
5169
5170/* interface ID3D12VideoEncodeCommandList1 */
5171/* [unique][local][object][uuid] */
5172
5173
5174EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1;
5175
5176#if defined(__cplusplus) && !defined(CINTERFACE)
5177
5178 MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc")
5179 ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList
5180 {
5181 public:
5182 virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
5183 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5184 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5185 SIZE_T InitializationParametersSizeInBytes) = 0;
5186
5187 virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
5188 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5189 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5190 SIZE_T ExecutionParametersSizeInBytes) = 0;
5191
5192 };
5193
5194
5195#else /* C style interface */
5196
5197 typedef struct ID3D12VideoEncodeCommandList1Vtbl
5198 {
5199 BEGIN_INTERFACE
5200
5201 DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5202 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5203 ID3D12VideoEncodeCommandList1 * This,
5204 REFIID riid,
5205 _COM_Outptr_ void **ppvObject);
5206
5207 DECLSPEC_XFGVIRT(IUnknown, AddRef)
5208 ULONG ( STDMETHODCALLTYPE *AddRef )(
5209 ID3D12VideoEncodeCommandList1 * This);
5210
5211 DECLSPEC_XFGVIRT(IUnknown, Release)
5212 ULONG ( STDMETHODCALLTYPE *Release )(
5213 ID3D12VideoEncodeCommandList1 * This);
5214
5215 DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5216 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5217 ID3D12VideoEncodeCommandList1 * This,
5218 _In_ REFGUID guid,
5219 _Inout_ UINT *pDataSize,
5220 _Out_writes_bytes_opt_( *pDataSize ) void *pData);
5221
5222 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5223 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5224 ID3D12VideoEncodeCommandList1 * This,
5225 _In_ REFGUID guid,
5226 _In_ UINT DataSize,
5227 _In_reads_bytes_opt_( DataSize ) const void *pData);
5228
5229 DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5230 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5231 ID3D12VideoEncodeCommandList1 * This,
5232 _In_ REFGUID guid,
5233 _In_opt_ const IUnknown *pData);
5234
5235 DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5236 HRESULT ( STDMETHODCALLTYPE *SetName )(
5237 ID3D12VideoEncodeCommandList1 * This,
5238 _In_z_ LPCWSTR Name);
5239
5240 DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5241 HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5242 ID3D12VideoEncodeCommandList1 * This,
5243 REFIID riid,
5244 _COM_Outptr_opt_ void **ppvDevice);
5245
5246 DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
5247 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
5248 ID3D12VideoEncodeCommandList1 * This);
5249
5250 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
5251 HRESULT ( STDMETHODCALLTYPE *Close )(
5252 ID3D12VideoEncodeCommandList1 * This);
5253
5254 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
5255 HRESULT ( STDMETHODCALLTYPE *Reset )(
5256 ID3D12VideoEncodeCommandList1 * This,
5257 _In_ ID3D12CommandAllocator *pAllocator);
5258
5259 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
5260 void ( STDMETHODCALLTYPE *ClearState )(
5261 ID3D12VideoEncodeCommandList1 * This);
5262
5263 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
5264 void ( STDMETHODCALLTYPE *ResourceBarrier )(
5265 ID3D12VideoEncodeCommandList1 * This,
5266 _In_ UINT NumBarriers,
5267 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
5268
5269 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
5270 void ( STDMETHODCALLTYPE *DiscardResource )(
5271 ID3D12VideoEncodeCommandList1 * This,
5272 _In_ ID3D12Resource *pResource,
5273 _In_opt_ const D3D12_DISCARD_REGION *pRegion);
5274
5275 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
5276 void ( STDMETHODCALLTYPE *BeginQuery )(
5277 ID3D12VideoEncodeCommandList1 * This,
5278 _In_ ID3D12QueryHeap *pQueryHeap,
5279 _In_ D3D12_QUERY_TYPE Type,
5280 _In_ UINT Index);
5281
5282 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
5283 void ( STDMETHODCALLTYPE *EndQuery )(
5284 ID3D12VideoEncodeCommandList1 * This,
5285 _In_ ID3D12QueryHeap *pQueryHeap,
5286 _In_ D3D12_QUERY_TYPE Type,
5287 _In_ UINT Index);
5288
5289 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
5290 void ( STDMETHODCALLTYPE *ResolveQueryData )(
5291 ID3D12VideoEncodeCommandList1 * This,
5292 _In_ ID3D12QueryHeap *pQueryHeap,
5293 _In_ D3D12_QUERY_TYPE Type,
5294 _In_ UINT StartIndex,
5295 _In_ UINT NumQueries,
5296 _In_ ID3D12Resource *pDestinationBuffer,
5297 _In_ UINT64 AlignedDestinationBufferOffset);
5298
5299 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
5300 void ( STDMETHODCALLTYPE *SetPredication )(
5301 ID3D12VideoEncodeCommandList1 * This,
5302 _In_opt_ ID3D12Resource *pBuffer,
5303 _In_ UINT64 AlignedBufferOffset,
5304 _In_ D3D12_PREDICATION_OP Operation);
5305
5306 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
5307 void ( STDMETHODCALLTYPE *SetMarker )(
5308 ID3D12VideoEncodeCommandList1 * This,
5309 UINT Metadata,
5310 _In_reads_bytes_opt_(Size) const void *pData,
5311 UINT Size);
5312
5313 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
5314 void ( STDMETHODCALLTYPE *BeginEvent )(
5315 ID3D12VideoEncodeCommandList1 * This,
5316 UINT Metadata,
5317 _In_reads_bytes_opt_(Size) const void *pData,
5318 UINT Size);
5319
5320 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
5321 void ( STDMETHODCALLTYPE *EndEvent )(
5322 ID3D12VideoEncodeCommandList1 * This);
5323
5324 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
5325 void ( STDMETHODCALLTYPE *EstimateMotion )(
5326 ID3D12VideoEncodeCommandList1 * This,
5327 _In_ ID3D12VideoMotionEstimator *pMotionEstimator,
5328 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
5329 _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
5330
5331 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
5332 void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
5333 ID3D12VideoEncodeCommandList1 * This,
5334 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
5335 const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
5336
5337 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
5338 void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
5339 ID3D12VideoEncodeCommandList1 * This,
5340 UINT Count,
5341 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
5342 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
5343
5344 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
5345 void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
5346 ID3D12VideoEncodeCommandList1 * This,
5347 _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
5348
5349 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)
5350 void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
5351 ID3D12VideoEncodeCommandList1 * This,
5352 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5353 _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5354 SIZE_T InitializationParametersSizeInBytes);
5355
5356 DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)
5357 void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
5358 ID3D12VideoEncodeCommandList1 * This,
5359 _In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5360 _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5361 SIZE_T ExecutionParametersSizeInBytes);
5362
5363 END_INTERFACE
5364 } ID3D12VideoEncodeCommandList1Vtbl;
5365
5366 interface ID3D12VideoEncodeCommandList1
5367 {
5368 CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl;
5369 };
5370
5371
5372
5373#ifdef COBJMACROS
5374
5375
5376#define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \
5377 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5378
5379#define ID3D12VideoEncodeCommandList1_AddRef(This) \
5380 ( (This)->lpVtbl -> AddRef(This) )
5381
5382#define ID3D12VideoEncodeCommandList1_Release(This) \
5383 ( (This)->lpVtbl -> Release(This) )
5384
5385
5386#define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
5387 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5388
5389#define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \
5390 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5391
5392#define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \
5393 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5394
5395#define ID3D12VideoEncodeCommandList1_SetName(This,Name) \
5396 ( (This)->lpVtbl -> SetName(This,Name) )
5397
5398
5399#define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \
5400 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5401
5402
5403#define ID3D12VideoEncodeCommandList1_GetType(This) \
5404 ( (This)->lpVtbl -> GetType(This) )
5405
5406
5407#define ID3D12VideoEncodeCommandList1_Close(This) \
5408 ( (This)->lpVtbl -> Close(This) )
5409
5410#define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \
5411 ( (This)->lpVtbl -> Reset(This,pAllocator) )
5412
5413#define ID3D12VideoEncodeCommandList1_ClearState(This) \
5414 ( (This)->lpVtbl -> ClearState(This) )
5415
5416#define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
5417 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5418
5419#define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \
5420 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5421
5422#define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
5423 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5424
5425#define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
5426 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5427
5428#define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5429 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5430
5431#define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5432 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5433
5434#define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \
5435 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5436
5437#define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \
5438 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5439
5440#define ID3D12VideoEncodeCommandList1_EndEvent(This) \
5441 ( (This)->lpVtbl -> EndEvent(This) )
5442
5443#define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
5444 ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
5445
5446#define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
5447 ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
5448
5449#define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
5450 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5451
5452#define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \
5453 ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5454
5455
5456#define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5457 ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5458
5459#define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5460 ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5461
5462#endif /* COBJMACROS */
5463
5464
5465#endif /* C style interface */
5466
5467
5468
5469
5470#endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */
5471
5472
5473/* interface __MIDL_itf_d3d12video_0000_0020 */
5474/* [local] */
5475
5476DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);
5477DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);
5478DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
5479DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);
5480DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);
5481DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);
5482DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
5483DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
5484DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);
5485DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);
5486DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);
5487DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);
5488DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);
5489DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);
5490DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);
5491DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);
5492DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);
5493DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);
5494DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);
5495DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
5496#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
5497#pragma endregion
5498DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);
5499DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);
5500DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);
5501DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);
5502DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);
5503DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);
5504DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);
5505DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);
5506DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);
5507DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);
5508DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);
5509DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);
5510DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);
5511DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);
5512DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);
5513DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);
5514DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);
5515DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);
5516DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);
5517DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);
5518
5519
5520extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0020_v0_0_c_ifspec;
5521extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0020_v0_0_s_ifspec;
5522
5523/* Additional Prototypes for ALL interfaces */
5524
5525/* end of Additional Prototypes */
5526
5527#ifdef __cplusplus
5528}
5529#endif
5530
5531#endif
5532
5533