Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/directx_headers/include/directx/d3d12video.h
9906 views
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.0628 */
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 defined(_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__
57
typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap;
58
59
#endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */
60
61
62
#ifndef __ID3D12VideoDevice_FWD_DEFINED__
63
#define __ID3D12VideoDevice_FWD_DEFINED__
64
typedef interface ID3D12VideoDevice ID3D12VideoDevice;
65
66
#endif /* __ID3D12VideoDevice_FWD_DEFINED__ */
67
68
69
#ifndef __ID3D12VideoDecoder_FWD_DEFINED__
70
#define __ID3D12VideoDecoder_FWD_DEFINED__
71
typedef interface ID3D12VideoDecoder ID3D12VideoDecoder;
72
73
#endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */
74
75
76
#ifndef __ID3D12VideoProcessor_FWD_DEFINED__
77
#define __ID3D12VideoProcessor_FWD_DEFINED__
78
typedef interface ID3D12VideoProcessor ID3D12VideoProcessor;
79
80
#endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */
81
82
83
#ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__
84
#define __ID3D12VideoDecodeCommandList_FWD_DEFINED__
85
typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList;
86
87
#endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */
88
89
90
#ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__
91
#define __ID3D12VideoProcessCommandList_FWD_DEFINED__
92
typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList;
93
94
#endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */
95
96
97
#ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__
98
#define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__
99
typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1;
100
101
#endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */
102
103
104
#ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__
105
#define __ID3D12VideoProcessCommandList1_FWD_DEFINED__
106
typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1;
107
108
#endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */
109
110
111
#ifndef __ID3D12VideoMotionEstimator_FWD_DEFINED__
112
#define __ID3D12VideoMotionEstimator_FWD_DEFINED__
113
typedef interface ID3D12VideoMotionEstimator ID3D12VideoMotionEstimator;
114
115
#endif /* __ID3D12VideoMotionEstimator_FWD_DEFINED__ */
116
117
118
#ifndef __ID3D12VideoMotionVectorHeap_FWD_DEFINED__
119
#define __ID3D12VideoMotionVectorHeap_FWD_DEFINED__
120
typedef interface ID3D12VideoMotionVectorHeap ID3D12VideoMotionVectorHeap;
121
122
#endif /* __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ */
123
124
125
#ifndef __ID3D12VideoDevice1_FWD_DEFINED__
126
#define __ID3D12VideoDevice1_FWD_DEFINED__
127
typedef interface ID3D12VideoDevice1 ID3D12VideoDevice1;
128
129
#endif /* __ID3D12VideoDevice1_FWD_DEFINED__ */
130
131
132
#ifndef __ID3D12VideoEncodeCommandList_FWD_DEFINED__
133
#define __ID3D12VideoEncodeCommandList_FWD_DEFINED__
134
typedef interface ID3D12VideoEncodeCommandList ID3D12VideoEncodeCommandList;
135
136
#endif /* __ID3D12VideoEncodeCommandList_FWD_DEFINED__ */
137
138
139
#ifndef __ID3D12VideoDecoder1_FWD_DEFINED__
140
#define __ID3D12VideoDecoder1_FWD_DEFINED__
141
typedef interface ID3D12VideoDecoder1 ID3D12VideoDecoder1;
142
143
#endif /* __ID3D12VideoDecoder1_FWD_DEFINED__ */
144
145
146
#ifndef __ID3D12VideoDecoderHeap1_FWD_DEFINED__
147
#define __ID3D12VideoDecoderHeap1_FWD_DEFINED__
148
typedef interface ID3D12VideoDecoderHeap1 ID3D12VideoDecoderHeap1;
149
150
#endif /* __ID3D12VideoDecoderHeap1_FWD_DEFINED__ */
151
152
153
#ifndef __ID3D12VideoProcessor1_FWD_DEFINED__
154
#define __ID3D12VideoProcessor1_FWD_DEFINED__
155
typedef interface ID3D12VideoProcessor1 ID3D12VideoProcessor1;
156
157
#endif /* __ID3D12VideoProcessor1_FWD_DEFINED__ */
158
159
160
#ifndef __ID3D12VideoExtensionCommand_FWD_DEFINED__
161
#define __ID3D12VideoExtensionCommand_FWD_DEFINED__
162
typedef interface ID3D12VideoExtensionCommand ID3D12VideoExtensionCommand;
163
164
#endif /* __ID3D12VideoExtensionCommand_FWD_DEFINED__ */
165
166
167
#ifndef __ID3D12VideoDevice2_FWD_DEFINED__
168
#define __ID3D12VideoDevice2_FWD_DEFINED__
169
typedef interface ID3D12VideoDevice2 ID3D12VideoDevice2;
170
171
#endif /* __ID3D12VideoDevice2_FWD_DEFINED__ */
172
173
174
#ifndef __ID3D12VideoDecodeCommandList2_FWD_DEFINED__
175
#define __ID3D12VideoDecodeCommandList2_FWD_DEFINED__
176
typedef interface ID3D12VideoDecodeCommandList2 ID3D12VideoDecodeCommandList2;
177
178
#endif /* __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ */
179
180
181
#ifndef __ID3D12VideoDecodeCommandList3_FWD_DEFINED__
182
#define __ID3D12VideoDecodeCommandList3_FWD_DEFINED__
183
typedef interface ID3D12VideoDecodeCommandList3 ID3D12VideoDecodeCommandList3;
184
185
#endif /* __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ */
186
187
188
#ifndef __ID3D12VideoProcessCommandList2_FWD_DEFINED__
189
#define __ID3D12VideoProcessCommandList2_FWD_DEFINED__
190
typedef interface ID3D12VideoProcessCommandList2 ID3D12VideoProcessCommandList2;
191
192
#endif /* __ID3D12VideoProcessCommandList2_FWD_DEFINED__ */
193
194
195
#ifndef __ID3D12VideoProcessCommandList3_FWD_DEFINED__
196
#define __ID3D12VideoProcessCommandList3_FWD_DEFINED__
197
typedef interface ID3D12VideoProcessCommandList3 ID3D12VideoProcessCommandList3;
198
199
#endif /* __ID3D12VideoProcessCommandList3_FWD_DEFINED__ */
200
201
202
#ifndef __ID3D12VideoEncodeCommandList1_FWD_DEFINED__
203
#define __ID3D12VideoEncodeCommandList1_FWD_DEFINED__
204
typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1;
205
206
#endif /* __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ */
207
208
209
#ifndef __ID3D12VideoEncoder_FWD_DEFINED__
210
#define __ID3D12VideoEncoder_FWD_DEFINED__
211
typedef interface ID3D12VideoEncoder ID3D12VideoEncoder;
212
213
#endif /* __ID3D12VideoEncoder_FWD_DEFINED__ */
214
215
216
#ifndef __ID3D12VideoEncoderHeap_FWD_DEFINED__
217
#define __ID3D12VideoEncoderHeap_FWD_DEFINED__
218
typedef interface ID3D12VideoEncoderHeap ID3D12VideoEncoderHeap;
219
220
#endif /* __ID3D12VideoEncoderHeap_FWD_DEFINED__ */
221
222
223
#ifndef __ID3D12VideoDevice3_FWD_DEFINED__
224
#define __ID3D12VideoDevice3_FWD_DEFINED__
225
typedef interface ID3D12VideoDevice3 ID3D12VideoDevice3;
226
227
#endif /* __ID3D12VideoDevice3_FWD_DEFINED__ */
228
229
230
#ifndef __ID3D12VideoEncodeCommandList2_FWD_DEFINED__
231
#define __ID3D12VideoEncodeCommandList2_FWD_DEFINED__
232
typedef interface ID3D12VideoEncodeCommandList2 ID3D12VideoEncodeCommandList2;
233
234
#endif /* __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ */
235
236
237
#ifndef __ID3D12VideoEncodeCommandList3_FWD_DEFINED__
238
#define __ID3D12VideoEncodeCommandList3_FWD_DEFINED__
239
typedef interface ID3D12VideoEncodeCommandList3 ID3D12VideoEncodeCommandList3;
240
241
#endif /* __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ */
242
243
244
/* header files for imported files */
245
#include "oaidl.h"
246
#include "ocidl.h"
247
#include "dxgicommon.h"
248
#include "d3d12.h"
249
250
#ifdef __cplusplus
251
extern "C"{
252
#endif
253
254
255
/* interface __MIDL_itf_d3d12video_0000_0000 */
256
/* [local] */
257
258
#include <winapifamily.h>
259
#pragma region App Family
260
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)
261
typedef
262
enum D3D12_VIDEO_FIELD_TYPE
263
{
264
D3D12_VIDEO_FIELD_TYPE_NONE = 0,
265
D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1,
266
D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2
267
} D3D12_VIDEO_FIELD_TYPE;
268
269
typedef
270
enum D3D12_VIDEO_FRAME_STEREO_FORMAT
271
{
272
D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0,
273
D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1,
274
D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2,
275
D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3,
276
D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4
277
} D3D12_VIDEO_FRAME_STEREO_FORMAT;
278
279
typedef struct D3D12_VIDEO_FORMAT
280
{
281
DXGI_FORMAT Format;
282
DXGI_COLOR_SPACE_TYPE ColorSpace;
283
} D3D12_VIDEO_FORMAT;
284
285
typedef struct D3D12_VIDEO_SAMPLE
286
{
287
UINT Width;
288
UINT Height;
289
D3D12_VIDEO_FORMAT Format;
290
} D3D12_VIDEO_SAMPLE;
291
292
typedef
293
enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE
294
{
295
D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0,
296
D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1
297
} D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE;
298
299
typedef
300
enum D3D12_FEATURE_VIDEO
301
{
302
D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0,
303
D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1,
304
D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2,
305
D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3,
306
D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5,
307
D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6,
308
D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7,
309
D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8,
310
D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9,
311
D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10,
312
D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11,
313
D3D12_FEATURE_VIDEO_ARCHITECTURE = 17,
314
D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18,
315
D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19,
316
D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20,
317
D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21,
318
D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22,
319
D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23,
320
D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24,
321
D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25,
322
D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26,
323
D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27,
324
D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28,
325
D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29,
326
D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30,
327
D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31,
328
D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32,
329
D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33,
330
D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34,
331
D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35,
332
D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36,
333
D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37,
334
D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38,
335
D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39,
336
D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40,
337
D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41,
338
D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42,
339
D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43,
340
D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44,
341
D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45,
342
D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46,
343
D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47
344
} D3D12_FEATURE_VIDEO;
345
346
typedef
347
enum D3D12_BITSTREAM_ENCRYPTION_TYPE
348
{
349
D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0
350
} D3D12_BITSTREAM_ENCRYPTION_TYPE;
351
352
typedef struct D3D12_VIDEO_DECODE_CONFIGURATION
353
{
354
GUID DecodeProfile;
355
D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption;
356
D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType;
357
} D3D12_VIDEO_DECODE_CONFIGURATION;
358
359
typedef struct D3D12_VIDEO_DECODER_DESC
360
{
361
UINT NodeMask;
362
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
363
} D3D12_VIDEO_DECODER_DESC;
364
365
typedef struct D3D12_VIDEO_DECODER_HEAP_DESC
366
{
367
UINT NodeMask;
368
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
369
UINT DecodeWidth;
370
UINT DecodeHeight;
371
DXGI_FORMAT Format;
372
DXGI_RATIONAL FrameRate;
373
UINT BitRate;
374
UINT MaxDecodePictureBufferCount;
375
} D3D12_VIDEO_DECODER_HEAP_DESC;
376
377
typedef struct D3D12_VIDEO_SIZE_RANGE
378
{
379
UINT MaxWidth;
380
UINT MaxHeight;
381
UINT MinWidth;
382
UINT MinHeight;
383
} D3D12_VIDEO_SIZE_RANGE;
384
385
typedef
386
enum D3D12_VIDEO_PROCESS_FILTER
387
{
388
D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0,
389
D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1,
390
D3D12_VIDEO_PROCESS_FILTER_HUE = 2,
391
D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3,
392
D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4,
393
D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5,
394
D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6,
395
D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7
396
} D3D12_VIDEO_PROCESS_FILTER;
397
398
typedef
399
enum D3D12_VIDEO_PROCESS_FILTER_FLAGS
400
{
401
D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0,
402
D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) ,
403
D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) ,
404
D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) ,
405
D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) ,
406
D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) ,
407
D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) ,
408
D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) ,
409
D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT )
410
} D3D12_VIDEO_PROCESS_FILTER_FLAGS;
411
412
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS );
413
typedef
414
enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS
415
{
416
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0,
417
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1,
418
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000
419
} D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS;
420
421
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS );
422
typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING
423
{
424
BOOL Enable;
425
FLOAT Alpha;
426
} D3D12_VIDEO_PROCESS_ALPHA_BLENDING;
427
428
typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY
429
{
430
BOOL Enable;
431
FLOAT Lower;
432
FLOAT Upper;
433
} D3D12_VIDEO_PROCESS_LUMA_KEY;
434
435
typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC
436
{
437
DXGI_FORMAT Format;
438
DXGI_COLOR_SPACE_TYPE ColorSpace;
439
DXGI_RATIONAL SourceAspectRatio;
440
DXGI_RATIONAL DestinationAspectRatio;
441
DXGI_RATIONAL FrameRate;
442
D3D12_VIDEO_SIZE_RANGE SourceSizeRange;
443
D3D12_VIDEO_SIZE_RANGE DestinationSizeRange;
444
BOOL EnableOrientation;
445
D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags;
446
D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat;
447
D3D12_VIDEO_FIELD_TYPE FieldType;
448
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;
449
BOOL EnableAlphaBlending;
450
D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey;
451
UINT NumPastFrames;
452
UINT NumFutureFrames;
453
BOOL EnableAutoProcessing;
454
} D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC;
455
456
typedef
457
enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE
458
{
459
D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0,
460
D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1,
461
D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2,
462
D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3
463
} D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE;
464
465
typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC
466
{
467
DXGI_FORMAT Format;
468
DXGI_COLOR_SPACE_TYPE ColorSpace;
469
D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode;
470
UINT AlphaFillModeSourceStreamIndex;
471
FLOAT BackgroundColor[ 4 ];
472
DXGI_RATIONAL FrameRate;
473
BOOL EnableStereo;
474
} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC;
475
476
477
478
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec;
479
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec;
480
481
#ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__
482
#define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__
483
484
/* interface ID3D12VideoDecoderHeap */
485
/* [unique][local][object][uuid] */
486
487
488
EXTERN_C const IID IID_ID3D12VideoDecoderHeap;
489
490
#if defined(__cplusplus) && !defined(CINTERFACE)
491
492
MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F")
493
ID3D12VideoDecoderHeap : public ID3D12Pageable
494
{
495
public:
496
#if defined(_MSC_VER) || !defined(_WIN32)
497
virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
498
#else
499
virtual D3D12_VIDEO_DECODER_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
500
D3D12_VIDEO_DECODER_HEAP_DESC * RetVal) = 0;
501
#endif
502
503
};
504
505
506
#else /* C style interface */
507
508
typedef struct ID3D12VideoDecoderHeapVtbl
509
{
510
BEGIN_INTERFACE
511
512
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
513
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
514
ID3D12VideoDecoderHeap * This,
515
REFIID riid,
516
_COM_Outptr_ void **ppvObject);
517
518
DECLSPEC_XFGVIRT(IUnknown, AddRef)
519
ULONG ( STDMETHODCALLTYPE *AddRef )(
520
ID3D12VideoDecoderHeap * This);
521
522
DECLSPEC_XFGVIRT(IUnknown, Release)
523
ULONG ( STDMETHODCALLTYPE *Release )(
524
ID3D12VideoDecoderHeap * This);
525
526
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
527
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
528
ID3D12VideoDecoderHeap * This,
529
_In_ REFGUID guid,
530
_Inout_ UINT *pDataSize,
531
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
532
533
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
534
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
535
ID3D12VideoDecoderHeap * This,
536
_In_ REFGUID guid,
537
_In_ UINT DataSize,
538
_In_reads_bytes_opt_( DataSize ) const void *pData);
539
540
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
541
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
542
ID3D12VideoDecoderHeap * This,
543
_In_ REFGUID guid,
544
_In_opt_ const IUnknown *pData);
545
546
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
547
HRESULT ( STDMETHODCALLTYPE *SetName )(
548
ID3D12VideoDecoderHeap * This,
549
_In_z_ LPCWSTR Name);
550
551
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
552
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
553
ID3D12VideoDecoderHeap * This,
554
REFIID riid,
555
_COM_Outptr_opt_ void **ppvDevice);
556
557
DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)
558
#if !defined(_WIN32)
559
D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
560
ID3D12VideoDecoderHeap * This);
561
562
#else
563
D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
564
ID3D12VideoDecoderHeap * This,
565
D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);
566
567
#endif
568
569
END_INTERFACE
570
} ID3D12VideoDecoderHeapVtbl;
571
572
interface ID3D12VideoDecoderHeap
573
{
574
CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl;
575
};
576
577
578
579
#ifdef COBJMACROS
580
581
582
#define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \
583
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
584
585
#define ID3D12VideoDecoderHeap_AddRef(This) \
586
( (This)->lpVtbl -> AddRef(This) )
587
588
#define ID3D12VideoDecoderHeap_Release(This) \
589
( (This)->lpVtbl -> Release(This) )
590
591
592
#define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \
593
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
594
595
#define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \
596
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
597
598
#define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \
599
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
600
601
#define ID3D12VideoDecoderHeap_SetName(This,Name) \
602
( (This)->lpVtbl -> SetName(This,Name) )
603
604
605
#define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \
606
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
607
608
609
#if !defined(_WIN32)
610
611
#define ID3D12VideoDecoderHeap_GetDesc(This) \
612
( (This)->lpVtbl -> GetDesc(This) )
613
#else
614
#define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \
615
( (This)->lpVtbl -> GetDesc(This,RetVal) )
616
#endif
617
618
#endif /* COBJMACROS */
619
620
621
#endif /* C style interface */
622
623
624
625
626
#endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */
627
628
629
#ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__
630
#define __ID3D12VideoDevice_INTERFACE_DEFINED__
631
632
/* interface ID3D12VideoDevice */
633
/* [unique][local][object][uuid] */
634
635
636
EXTERN_C const IID IID_ID3D12VideoDevice;
637
638
#if defined(__cplusplus) && !defined(CINTERFACE)
639
640
MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4")
641
ID3D12VideoDevice : public IUnknown
642
{
643
public:
644
virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
645
D3D12_FEATURE_VIDEO FeatureVideo,
646
_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
647
UINT FeatureSupportDataSize) = 0;
648
649
virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
650
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
651
_In_ REFIID riid,
652
_COM_Outptr_ void **ppVideoDecoder) = 0;
653
654
virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap(
655
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
656
_In_ REFIID riid,
657
_COM_Outptr_ void **ppVideoDecoderHeap) = 0;
658
659
virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
660
UINT NodeMask,
661
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
662
UINT NumInputStreamDescs,
663
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
664
_In_ REFIID riid,
665
_COM_Outptr_ void **ppVideoProcessor) = 0;
666
667
};
668
669
670
#else /* C style interface */
671
672
typedef struct ID3D12VideoDeviceVtbl
673
{
674
BEGIN_INTERFACE
675
676
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
677
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
678
ID3D12VideoDevice * This,
679
REFIID riid,
680
_COM_Outptr_ void **ppvObject);
681
682
DECLSPEC_XFGVIRT(IUnknown, AddRef)
683
ULONG ( STDMETHODCALLTYPE *AddRef )(
684
ID3D12VideoDevice * This);
685
686
DECLSPEC_XFGVIRT(IUnknown, Release)
687
ULONG ( STDMETHODCALLTYPE *Release )(
688
ID3D12VideoDevice * This);
689
690
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
691
HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
692
ID3D12VideoDevice * This,
693
D3D12_FEATURE_VIDEO FeatureVideo,
694
_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
695
UINT FeatureSupportDataSize);
696
697
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
698
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
699
ID3D12VideoDevice * This,
700
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
701
_In_ REFIID riid,
702
_COM_Outptr_ void **ppVideoDecoder);
703
704
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
705
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
706
ID3D12VideoDevice * This,
707
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
708
_In_ REFIID riid,
709
_COM_Outptr_ void **ppVideoDecoderHeap);
710
711
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
712
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
713
ID3D12VideoDevice * This,
714
UINT NodeMask,
715
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
716
UINT NumInputStreamDescs,
717
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
718
_In_ REFIID riid,
719
_COM_Outptr_ void **ppVideoProcessor);
720
721
END_INTERFACE
722
} ID3D12VideoDeviceVtbl;
723
724
interface ID3D12VideoDevice
725
{
726
CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl;
727
};
728
729
730
731
#ifdef COBJMACROS
732
733
734
#define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \
735
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
736
737
#define ID3D12VideoDevice_AddRef(This) \
738
( (This)->lpVtbl -> AddRef(This) )
739
740
#define ID3D12VideoDevice_Release(This) \
741
( (This)->lpVtbl -> Release(This) )
742
743
744
#define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
745
( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
746
747
#define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
748
( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
749
750
#define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
751
( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
752
753
#define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
754
( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
755
756
#endif /* COBJMACROS */
757
758
759
#endif /* C style interface */
760
761
762
763
764
#endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */
765
766
767
#ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__
768
#define __ID3D12VideoDecoder_INTERFACE_DEFINED__
769
770
/* interface ID3D12VideoDecoder */
771
/* [unique][local][object][uuid] */
772
773
774
EXTERN_C const IID IID_ID3D12VideoDecoder;
775
776
#if defined(__cplusplus) && !defined(CINTERFACE)
777
778
MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470")
779
ID3D12VideoDecoder : public ID3D12Pageable
780
{
781
public:
782
#if defined(_MSC_VER) || !defined(_WIN32)
783
virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
784
#else
785
virtual D3D12_VIDEO_DECODER_DESC *STDMETHODCALLTYPE GetDesc(
786
D3D12_VIDEO_DECODER_DESC * RetVal) = 0;
787
#endif
788
789
};
790
791
792
#else /* C style interface */
793
794
typedef struct ID3D12VideoDecoderVtbl
795
{
796
BEGIN_INTERFACE
797
798
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
799
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
800
ID3D12VideoDecoder * This,
801
REFIID riid,
802
_COM_Outptr_ void **ppvObject);
803
804
DECLSPEC_XFGVIRT(IUnknown, AddRef)
805
ULONG ( STDMETHODCALLTYPE *AddRef )(
806
ID3D12VideoDecoder * This);
807
808
DECLSPEC_XFGVIRT(IUnknown, Release)
809
ULONG ( STDMETHODCALLTYPE *Release )(
810
ID3D12VideoDecoder * This);
811
812
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
813
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
814
ID3D12VideoDecoder * This,
815
_In_ REFGUID guid,
816
_Inout_ UINT *pDataSize,
817
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
818
819
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
820
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
821
ID3D12VideoDecoder * This,
822
_In_ REFGUID guid,
823
_In_ UINT DataSize,
824
_In_reads_bytes_opt_( DataSize ) const void *pData);
825
826
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
827
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
828
ID3D12VideoDecoder * This,
829
_In_ REFGUID guid,
830
_In_opt_ const IUnknown *pData);
831
832
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
833
HRESULT ( STDMETHODCALLTYPE *SetName )(
834
ID3D12VideoDecoder * This,
835
_In_z_ LPCWSTR Name);
836
837
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
838
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
839
ID3D12VideoDecoder * This,
840
REFIID riid,
841
_COM_Outptr_opt_ void **ppvDevice);
842
843
DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)
844
#if !defined(_WIN32)
845
D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(
846
ID3D12VideoDecoder * This);
847
848
#else
849
D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(
850
ID3D12VideoDecoder * This,
851
D3D12_VIDEO_DECODER_DESC * RetVal);
852
853
#endif
854
855
END_INTERFACE
856
} ID3D12VideoDecoderVtbl;
857
858
interface ID3D12VideoDecoder
859
{
860
CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl;
861
};
862
863
864
865
#ifdef COBJMACROS
866
867
868
#define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \
869
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
870
871
#define ID3D12VideoDecoder_AddRef(This) \
872
( (This)->lpVtbl -> AddRef(This) )
873
874
#define ID3D12VideoDecoder_Release(This) \
875
( (This)->lpVtbl -> Release(This) )
876
877
878
#define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \
879
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
880
881
#define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \
882
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
883
884
#define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \
885
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
886
887
#define ID3D12VideoDecoder_SetName(This,Name) \
888
( (This)->lpVtbl -> SetName(This,Name) )
889
890
891
#define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \
892
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
893
894
895
#if !defined(_WIN32)
896
897
#define ID3D12VideoDecoder_GetDesc(This) \
898
( (This)->lpVtbl -> GetDesc(This) )
899
#else
900
#define ID3D12VideoDecoder_GetDesc(This,RetVal) \
901
( (This)->lpVtbl -> GetDesc(This,RetVal) )
902
#endif
903
904
#endif /* COBJMACROS */
905
906
907
#endif /* C style interface */
908
909
910
911
912
#endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */
913
914
915
/* interface __MIDL_itf_d3d12video_0000_0003 */
916
/* [local] */
917
918
typedef
919
enum D3D12_VIDEO_DECODE_TIER
920
{
921
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0,
922
D3D12_VIDEO_DECODE_TIER_1 = 1,
923
D3D12_VIDEO_DECODE_TIER_2 = 2,
924
D3D12_VIDEO_DECODE_TIER_3 = 3
925
} D3D12_VIDEO_DECODE_TIER;
926
927
typedef
928
enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS
929
{
930
D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0,
931
D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1
932
} D3D12_VIDEO_DECODE_SUPPORT_FLAGS;
933
934
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS );
935
typedef
936
enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS
937
{
938
D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0,
939
D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1,
940
D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2,
941
D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4,
942
D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8
943
} D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS;
944
945
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS );
946
typedef
947
enum D3D12_VIDEO_DECODE_STATUS
948
{
949
D3D12_VIDEO_DECODE_STATUS_OK = 0,
950
D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1,
951
D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2,
952
D3D12_VIDEO_DECODE_STATUS_RESTART = 3,
953
D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4
954
} D3D12_VIDEO_DECODE_STATUS;
955
956
typedef
957
enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE
958
{
959
D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0,
960
D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1,
961
D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2,
962
D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3
963
} D3D12_VIDEO_DECODE_ARGUMENT_TYPE;
964
965
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT
966
{
967
UINT NodeIndex;
968
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
969
UINT Width;
970
UINT Height;
971
DXGI_FORMAT DecodeFormat;
972
DXGI_RATIONAL FrameRate;
973
UINT BitRate;
974
D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags;
975
D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags;
976
D3D12_VIDEO_DECODE_TIER DecodeTier;
977
} D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT;
978
979
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT
980
{
981
UINT NodeIndex;
982
UINT ProfileCount;
983
} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT;
984
985
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES
986
{
987
UINT NodeIndex;
988
UINT ProfileCount;
989
_Field_size_full_(ProfileCount) GUID *pProfiles;
990
} D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES;
991
992
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT
993
{
994
UINT NodeIndex;
995
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
996
UINT FormatCount;
997
} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT;
998
999
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS
1000
{
1001
UINT NodeIndex;
1002
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
1003
UINT FormatCount;
1004
_Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats;
1005
} D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS;
1006
1007
typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE
1008
{
1009
BOOL IOCoherent;
1010
} D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE;
1011
1012
typedef
1013
enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT
1014
{
1015
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0,
1016
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1,
1017
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2,
1018
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0,
1019
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1,
1020
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2,
1021
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3
1022
} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT;
1023
1024
typedef
1025
enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS
1026
{
1027
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0,
1028
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) ,
1029
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) ,
1030
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) ,
1031
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) ,
1032
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) ,
1033
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) ,
1034
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A )
1035
} D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS;
1036
1037
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS );
1038
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM
1039
{
1040
UINT NodeIndex;
1041
GUID DecodeProfile;
1042
UINT Width;
1043
UINT Height;
1044
DXGI_FORMAT DecodeFormat;
1045
D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components;
1046
UINT BinCount;
1047
UINT CounterBitDepth;
1048
} D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM;
1049
1050
typedef
1051
enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS
1052
{
1053
D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0,
1054
D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1
1055
} D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS;
1056
1057
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS );
1058
typedef
1059
enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS
1060
{
1061
D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0,
1062
D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1,
1063
D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2
1064
} D3D12_VIDEO_SCALE_SUPPORT_FLAGS;
1065
1066
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS );
1067
typedef struct D3D12_VIDEO_SCALE_SUPPORT
1068
{
1069
D3D12_VIDEO_SIZE_RANGE OutputSizeRange;
1070
D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags;
1071
} D3D12_VIDEO_SCALE_SUPPORT;
1072
1073
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT
1074
{
1075
UINT NodeIndex;
1076
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
1077
D3D12_VIDEO_SAMPLE DecodeSample;
1078
D3D12_VIDEO_FORMAT OutputFormat;
1079
DXGI_RATIONAL FrameRate;
1080
UINT BitRate;
1081
D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags;
1082
D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;
1083
} D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT;
1084
1085
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE
1086
{
1087
D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;
1088
UINT64 MemoryPoolL0Size;
1089
UINT64 MemoryPoolL1Size;
1090
} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE;
1091
1092
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE
1093
{
1094
UINT NodeMask;
1095
const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;
1096
UINT NumInputStreamDescs;
1097
const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;
1098
UINT64 MemoryPoolL0Size;
1099
UINT64 MemoryPoolL1Size;
1100
} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE;
1101
1102
typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS
1103
{
1104
UINT64 Status;
1105
UINT64 NumMacroblocksAffected;
1106
DXGI_RATIONAL FrameRate;
1107
UINT BitRate;
1108
} D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS;
1109
1110
typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT
1111
{
1112
D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type;
1113
UINT Size;
1114
_Field_size_bytes_full_(Size) void *pData;
1115
} D3D12_VIDEO_DECODE_FRAME_ARGUMENT;
1116
1117
typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES
1118
{
1119
UINT NumTexture2Ds;
1120
_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;
1121
_Field_size_full_(NumTexture2Ds) UINT *pSubresources;
1122
_Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps;
1123
} D3D12_VIDEO_DECODE_REFERENCE_FRAMES;
1124
1125
typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM
1126
{
1127
ID3D12Resource *pBuffer;
1128
UINT64 Offset;
1129
UINT64 Size;
1130
} D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM;
1131
1132
typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS
1133
{
1134
BOOL Enable;
1135
ID3D12Resource *pReferenceTexture2D;
1136
UINT ReferenceSubresource;
1137
DXGI_COLOR_SPACE_TYPE OutputColorSpace;
1138
DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
1139
} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS;
1140
1141
typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS
1142
{
1143
UINT NumFrameArguments;
1144
D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ];
1145
D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames;
1146
D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream;
1147
ID3D12VideoDecoderHeap *pHeap;
1148
} D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS;
1149
1150
typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS
1151
{
1152
ID3D12Resource *pOutputTexture2D;
1153
UINT OutputSubresource;
1154
D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments;
1155
} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS;
1156
1157
1158
1159
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec;
1160
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec;
1161
1162
#ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__
1163
#define __ID3D12VideoProcessor_INTERFACE_DEFINED__
1164
1165
/* interface ID3D12VideoProcessor */
1166
/* [unique][local][object][uuid] */
1167
1168
1169
EXTERN_C const IID IID_ID3D12VideoProcessor;
1170
1171
#if defined(__cplusplus) && !defined(CINTERFACE)
1172
1173
MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138")
1174
ID3D12VideoProcessor : public ID3D12Pageable
1175
{
1176
public:
1177
virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;
1178
1179
virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0;
1180
1181
virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs(
1182
UINT NumInputStreamDescs,
1183
_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0;
1184
1185
#if defined(_MSC_VER) || !defined(_WIN32)
1186
virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0;
1187
#else
1188
virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *STDMETHODCALLTYPE GetOutputStreamDesc(
1189
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal) = 0;
1190
#endif
1191
1192
};
1193
1194
1195
#else /* C style interface */
1196
1197
typedef struct ID3D12VideoProcessorVtbl
1198
{
1199
BEGIN_INTERFACE
1200
1201
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1202
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1203
ID3D12VideoProcessor * This,
1204
REFIID riid,
1205
_COM_Outptr_ void **ppvObject);
1206
1207
DECLSPEC_XFGVIRT(IUnknown, AddRef)
1208
ULONG ( STDMETHODCALLTYPE *AddRef )(
1209
ID3D12VideoProcessor * This);
1210
1211
DECLSPEC_XFGVIRT(IUnknown, Release)
1212
ULONG ( STDMETHODCALLTYPE *Release )(
1213
ID3D12VideoProcessor * This);
1214
1215
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1216
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1217
ID3D12VideoProcessor * This,
1218
_In_ REFGUID guid,
1219
_Inout_ UINT *pDataSize,
1220
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
1221
1222
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1223
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1224
ID3D12VideoProcessor * This,
1225
_In_ REFGUID guid,
1226
_In_ UINT DataSize,
1227
_In_reads_bytes_opt_( DataSize ) const void *pData);
1228
1229
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1230
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1231
ID3D12VideoProcessor * This,
1232
_In_ REFGUID guid,
1233
_In_opt_ const IUnknown *pData);
1234
1235
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1236
HRESULT ( STDMETHODCALLTYPE *SetName )(
1237
ID3D12VideoProcessor * This,
1238
_In_z_ LPCWSTR Name);
1239
1240
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1241
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1242
ID3D12VideoProcessor * This,
1243
REFIID riid,
1244
_COM_Outptr_opt_ void **ppvDevice);
1245
1246
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)
1247
UINT ( STDMETHODCALLTYPE *GetNodeMask )(
1248
ID3D12VideoProcessor * This);
1249
1250
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)
1251
UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(
1252
ID3D12VideoProcessor * This);
1253
1254
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)
1255
HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(
1256
ID3D12VideoProcessor * This,
1257
UINT NumInputStreamDescs,
1258
_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);
1259
1260
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)
1261
#if !defined(_WIN32)
1262
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(
1263
ID3D12VideoProcessor * This);
1264
1265
#else
1266
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(
1267
ID3D12VideoProcessor * This,
1268
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);
1269
1270
#endif
1271
1272
END_INTERFACE
1273
} ID3D12VideoProcessorVtbl;
1274
1275
interface ID3D12VideoProcessor
1276
{
1277
CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl;
1278
};
1279
1280
1281
1282
#ifdef COBJMACROS
1283
1284
1285
#define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \
1286
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1287
1288
#define ID3D12VideoProcessor_AddRef(This) \
1289
( (This)->lpVtbl -> AddRef(This) )
1290
1291
#define ID3D12VideoProcessor_Release(This) \
1292
( (This)->lpVtbl -> Release(This) )
1293
1294
1295
#define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \
1296
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1297
1298
#define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \
1299
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1300
1301
#define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \
1302
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1303
1304
#define ID3D12VideoProcessor_SetName(This,Name) \
1305
( (This)->lpVtbl -> SetName(This,Name) )
1306
1307
1308
#define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \
1309
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1310
1311
1312
1313
#define ID3D12VideoProcessor_GetNodeMask(This) \
1314
( (This)->lpVtbl -> GetNodeMask(This) )
1315
1316
#define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \
1317
( (This)->lpVtbl -> GetNumInputStreamDescs(This) )
1318
1319
#define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \
1320
( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )
1321
#if !defined(_WIN32)
1322
1323
#define ID3D12VideoProcessor_GetOutputStreamDesc(This) \
1324
( (This)->lpVtbl -> GetOutputStreamDesc(This) )
1325
#else
1326
#define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \
1327
( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )
1328
#endif
1329
1330
#endif /* COBJMACROS */
1331
1332
1333
#endif /* C style interface */
1334
1335
1336
1337
1338
#endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */
1339
1340
1341
/* interface __MIDL_itf_d3d12video_0000_0004 */
1342
/* [local] */
1343
1344
typedef
1345
enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS
1346
{
1347
D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0,
1348
D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1,
1349
D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2,
1350
D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4,
1351
D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8,
1352
D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10,
1353
D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20,
1354
D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40
1355
} D3D12_VIDEO_PROCESS_FEATURE_FLAGS;
1356
1357
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS );
1358
typedef
1359
enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS
1360
{
1361
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0,
1362
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1,
1363
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2,
1364
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4,
1365
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8,
1366
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10,
1367
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20,
1368
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40,
1369
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80,
1370
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000
1371
} D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS;
1372
1373
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS );
1374
typedef
1375
enum D3D12_VIDEO_PROCESS_ORIENTATION
1376
{
1377
D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0,
1378
D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1,
1379
D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2,
1380
D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3,
1381
D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4,
1382
D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5,
1383
D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6,
1384
D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7
1385
} D3D12_VIDEO_PROCESS_ORIENTATION;
1386
1387
typedef
1388
enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS
1389
{
1390
D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0,
1391
D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1,
1392
D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2
1393
} D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS;
1394
1395
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS );
1396
typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE
1397
{
1398
INT Minimum;
1399
INT Maximum;
1400
INT Default;
1401
FLOAT Multiplier;
1402
} D3D12_VIDEO_PROCESS_FILTER_RANGE;
1403
1404
typedef
1405
enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS
1406
{
1407
D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0,
1408
D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1
1409
} D3D12_VIDEO_PROCESS_SUPPORT_FLAGS;
1410
1411
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS );
1412
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT
1413
{
1414
UINT NodeIndex;
1415
D3D12_VIDEO_SAMPLE InputSample;
1416
D3D12_VIDEO_FIELD_TYPE InputFieldType;
1417
D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat;
1418
DXGI_RATIONAL InputFrameRate;
1419
D3D12_VIDEO_FORMAT OutputFormat;
1420
D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat;
1421
DXGI_RATIONAL OutputFrameRate;
1422
D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags;
1423
D3D12_VIDEO_SCALE_SUPPORT ScaleSupport;
1424
D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;
1425
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport;
1426
D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport;
1427
D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport;
1428
D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ];
1429
} D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT;
1430
1431
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS
1432
{
1433
UINT NodeIndex;
1434
UINT MaxInputStreams;
1435
} D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS;
1436
1437
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO
1438
{
1439
UINT NodeIndex;
1440
D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode;
1441
D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters;
1442
D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport;
1443
DXGI_RATIONAL InputFrameRate;
1444
DXGI_RATIONAL OutputFrameRate;
1445
BOOL EnableAutoProcessing;
1446
UINT PastFrames;
1447
UINT FutureFrames;
1448
} D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO;
1449
1450
typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET
1451
{
1452
UINT NumPastFrames;
1453
ID3D12Resource **ppPastFrames;
1454
UINT *pPastSubresources;
1455
UINT NumFutureFrames;
1456
ID3D12Resource **ppFutureFrames;
1457
UINT *pFutureSubresources;
1458
} D3D12_VIDEO_PROCESS_REFERENCE_SET;
1459
1460
typedef struct D3D12_VIDEO_PROCESS_TRANSFORM
1461
{
1462
D3D12_RECT SourceRectangle;
1463
D3D12_RECT DestinationRectangle;
1464
D3D12_VIDEO_PROCESS_ORIENTATION Orientation;
1465
} D3D12_VIDEO_PROCESS_TRANSFORM;
1466
1467
typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE
1468
{
1469
UINT OutputIndex;
1470
UINT InputFrameOrField;
1471
} D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE;
1472
1473
typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM
1474
{
1475
ID3D12Resource *pTexture2D;
1476
UINT Subresource;
1477
D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet;
1478
} D3D12_VIDEO_PROCESS_INPUT_STREAM;
1479
1480
typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS
1481
{
1482
D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];
1483
D3D12_VIDEO_PROCESS_TRANSFORM Transform;
1484
D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
1485
D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
1486
INT FilterLevels[ 32 ];
1487
D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
1488
} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS;
1489
1490
typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM
1491
{
1492
ID3D12Resource *pTexture2D;
1493
UINT Subresource;
1494
} D3D12_VIDEO_PROCESS_OUTPUT_STREAM;
1495
1496
typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS
1497
{
1498
D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ];
1499
D3D12_RECT TargetRectangle;
1500
} D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS;
1501
1502
1503
1504
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec;
1505
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec;
1506
1507
#ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__
1508
#define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__
1509
1510
/* interface ID3D12VideoDecodeCommandList */
1511
/* [unique][local][object][uuid] */
1512
1513
1514
EXTERN_C const IID IID_ID3D12VideoDecodeCommandList;
1515
1516
#if defined(__cplusplus) && !defined(CINTERFACE)
1517
1518
MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53")
1519
ID3D12VideoDecodeCommandList : public ID3D12CommandList
1520
{
1521
public:
1522
virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
1523
1524
virtual HRESULT STDMETHODCALLTYPE Reset(
1525
_In_ ID3D12CommandAllocator *pAllocator) = 0;
1526
1527
virtual void STDMETHODCALLTYPE ClearState( void) = 0;
1528
1529
virtual void STDMETHODCALLTYPE ResourceBarrier(
1530
_In_ UINT NumBarriers,
1531
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
1532
1533
virtual void STDMETHODCALLTYPE DiscardResource(
1534
_In_ ID3D12Resource *pResource,
1535
_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
1536
1537
virtual void STDMETHODCALLTYPE BeginQuery(
1538
_In_ ID3D12QueryHeap *pQueryHeap,
1539
_In_ D3D12_QUERY_TYPE Type,
1540
_In_ UINT Index) = 0;
1541
1542
virtual void STDMETHODCALLTYPE EndQuery(
1543
_In_ ID3D12QueryHeap *pQueryHeap,
1544
_In_ D3D12_QUERY_TYPE Type,
1545
_In_ UINT Index) = 0;
1546
1547
virtual void STDMETHODCALLTYPE ResolveQueryData(
1548
_In_ ID3D12QueryHeap *pQueryHeap,
1549
_In_ D3D12_QUERY_TYPE Type,
1550
_In_ UINT StartIndex,
1551
_In_ UINT NumQueries,
1552
_In_ ID3D12Resource *pDestinationBuffer,
1553
_In_ UINT64 AlignedDestinationBufferOffset) = 0;
1554
1555
virtual void STDMETHODCALLTYPE SetPredication(
1556
_In_opt_ ID3D12Resource *pBuffer,
1557
_In_ UINT64 AlignedBufferOffset,
1558
_In_ D3D12_PREDICATION_OP Operation) = 0;
1559
1560
virtual void STDMETHODCALLTYPE SetMarker(
1561
UINT Metadata,
1562
_In_reads_bytes_opt_(Size) const void *pData,
1563
UINT Size) = 0;
1564
1565
virtual void STDMETHODCALLTYPE BeginEvent(
1566
UINT Metadata,
1567
_In_reads_bytes_opt_(Size) const void *pData,
1568
UINT Size) = 0;
1569
1570
virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
1571
1572
virtual void STDMETHODCALLTYPE DecodeFrame(
1573
_In_ ID3D12VideoDecoder *pDecoder,
1574
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1575
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
1576
1577
virtual void STDMETHODCALLTYPE WriteBufferImmediate(
1578
UINT Count,
1579
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1580
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
1581
1582
};
1583
1584
1585
#else /* C style interface */
1586
1587
typedef struct ID3D12VideoDecodeCommandListVtbl
1588
{
1589
BEGIN_INTERFACE
1590
1591
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1592
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1593
ID3D12VideoDecodeCommandList * This,
1594
REFIID riid,
1595
_COM_Outptr_ void **ppvObject);
1596
1597
DECLSPEC_XFGVIRT(IUnknown, AddRef)
1598
ULONG ( STDMETHODCALLTYPE *AddRef )(
1599
ID3D12VideoDecodeCommandList * This);
1600
1601
DECLSPEC_XFGVIRT(IUnknown, Release)
1602
ULONG ( STDMETHODCALLTYPE *Release )(
1603
ID3D12VideoDecodeCommandList * This);
1604
1605
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1606
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1607
ID3D12VideoDecodeCommandList * This,
1608
_In_ REFGUID guid,
1609
_Inout_ UINT *pDataSize,
1610
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
1611
1612
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1613
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1614
ID3D12VideoDecodeCommandList * This,
1615
_In_ REFGUID guid,
1616
_In_ UINT DataSize,
1617
_In_reads_bytes_opt_( DataSize ) const void *pData);
1618
1619
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1620
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1621
ID3D12VideoDecodeCommandList * This,
1622
_In_ REFGUID guid,
1623
_In_opt_ const IUnknown *pData);
1624
1625
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1626
HRESULT ( STDMETHODCALLTYPE *SetName )(
1627
ID3D12VideoDecodeCommandList * This,
1628
_In_z_ LPCWSTR Name);
1629
1630
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1631
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1632
ID3D12VideoDecodeCommandList * This,
1633
REFIID riid,
1634
_COM_Outptr_opt_ void **ppvDevice);
1635
1636
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
1637
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
1638
ID3D12VideoDecodeCommandList * This);
1639
1640
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
1641
HRESULT ( STDMETHODCALLTYPE *Close )(
1642
ID3D12VideoDecodeCommandList * This);
1643
1644
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
1645
HRESULT ( STDMETHODCALLTYPE *Reset )(
1646
ID3D12VideoDecodeCommandList * This,
1647
_In_ ID3D12CommandAllocator *pAllocator);
1648
1649
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
1650
void ( STDMETHODCALLTYPE *ClearState )(
1651
ID3D12VideoDecodeCommandList * This);
1652
1653
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
1654
void ( STDMETHODCALLTYPE *ResourceBarrier )(
1655
ID3D12VideoDecodeCommandList * This,
1656
_In_ UINT NumBarriers,
1657
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
1658
1659
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
1660
void ( STDMETHODCALLTYPE *DiscardResource )(
1661
ID3D12VideoDecodeCommandList * This,
1662
_In_ ID3D12Resource *pResource,
1663
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
1664
1665
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
1666
void ( STDMETHODCALLTYPE *BeginQuery )(
1667
ID3D12VideoDecodeCommandList * This,
1668
_In_ ID3D12QueryHeap *pQueryHeap,
1669
_In_ D3D12_QUERY_TYPE Type,
1670
_In_ UINT Index);
1671
1672
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
1673
void ( STDMETHODCALLTYPE *EndQuery )(
1674
ID3D12VideoDecodeCommandList * This,
1675
_In_ ID3D12QueryHeap *pQueryHeap,
1676
_In_ D3D12_QUERY_TYPE Type,
1677
_In_ UINT Index);
1678
1679
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
1680
void ( STDMETHODCALLTYPE *ResolveQueryData )(
1681
ID3D12VideoDecodeCommandList * This,
1682
_In_ ID3D12QueryHeap *pQueryHeap,
1683
_In_ D3D12_QUERY_TYPE Type,
1684
_In_ UINT StartIndex,
1685
_In_ UINT NumQueries,
1686
_In_ ID3D12Resource *pDestinationBuffer,
1687
_In_ UINT64 AlignedDestinationBufferOffset);
1688
1689
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
1690
void ( STDMETHODCALLTYPE *SetPredication )(
1691
ID3D12VideoDecodeCommandList * This,
1692
_In_opt_ ID3D12Resource *pBuffer,
1693
_In_ UINT64 AlignedBufferOffset,
1694
_In_ D3D12_PREDICATION_OP Operation);
1695
1696
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
1697
void ( STDMETHODCALLTYPE *SetMarker )(
1698
ID3D12VideoDecodeCommandList * This,
1699
UINT Metadata,
1700
_In_reads_bytes_opt_(Size) const void *pData,
1701
UINT Size);
1702
1703
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
1704
void ( STDMETHODCALLTYPE *BeginEvent )(
1705
ID3D12VideoDecodeCommandList * This,
1706
UINT Metadata,
1707
_In_reads_bytes_opt_(Size) const void *pData,
1708
UINT Size);
1709
1710
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
1711
void ( STDMETHODCALLTYPE *EndEvent )(
1712
ID3D12VideoDecodeCommandList * This);
1713
1714
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
1715
void ( STDMETHODCALLTYPE *DecodeFrame )(
1716
ID3D12VideoDecodeCommandList * This,
1717
_In_ ID3D12VideoDecoder *pDecoder,
1718
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1719
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
1720
1721
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
1722
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
1723
ID3D12VideoDecodeCommandList * This,
1724
UINT Count,
1725
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1726
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
1727
1728
END_INTERFACE
1729
} ID3D12VideoDecodeCommandListVtbl;
1730
1731
interface ID3D12VideoDecodeCommandList
1732
{
1733
CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl;
1734
};
1735
1736
1737
1738
#ifdef COBJMACROS
1739
1740
1741
#define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \
1742
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1743
1744
#define ID3D12VideoDecodeCommandList_AddRef(This) \
1745
( (This)->lpVtbl -> AddRef(This) )
1746
1747
#define ID3D12VideoDecodeCommandList_Release(This) \
1748
( (This)->lpVtbl -> Release(This) )
1749
1750
1751
#define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \
1752
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
1753
1754
#define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \
1755
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
1756
1757
#define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \
1758
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
1759
1760
#define ID3D12VideoDecodeCommandList_SetName(This,Name) \
1761
( (This)->lpVtbl -> SetName(This,Name) )
1762
1763
1764
#define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \
1765
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
1766
1767
1768
#define ID3D12VideoDecodeCommandList_GetType(This) \
1769
( (This)->lpVtbl -> GetType(This) )
1770
1771
1772
#define ID3D12VideoDecodeCommandList_Close(This) \
1773
( (This)->lpVtbl -> Close(This) )
1774
1775
#define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \
1776
( (This)->lpVtbl -> Reset(This,pAllocator) )
1777
1778
#define ID3D12VideoDecodeCommandList_ClearState(This) \
1779
( (This)->lpVtbl -> ClearState(This) )
1780
1781
#define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
1782
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
1783
1784
#define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \
1785
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
1786
1787
#define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
1788
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
1789
1790
#define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \
1791
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
1792
1793
#define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
1794
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
1795
1796
#define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
1797
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
1798
1799
#define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \
1800
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
1801
1802
#define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \
1803
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
1804
1805
#define ID3D12VideoDecodeCommandList_EndEvent(This) \
1806
( (This)->lpVtbl -> EndEvent(This) )
1807
1808
#define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
1809
( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
1810
1811
#define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
1812
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
1813
1814
#endif /* COBJMACROS */
1815
1816
1817
#endif /* C style interface */
1818
1819
1820
1821
1822
#endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */
1823
1824
1825
#ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__
1826
#define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__
1827
1828
/* interface ID3D12VideoProcessCommandList */
1829
/* [unique][local][object][uuid] */
1830
1831
1832
EXTERN_C const IID IID_ID3D12VideoProcessCommandList;
1833
1834
#if defined(__cplusplus) && !defined(CINTERFACE)
1835
1836
MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209")
1837
ID3D12VideoProcessCommandList : public ID3D12CommandList
1838
{
1839
public:
1840
virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
1841
1842
virtual HRESULT STDMETHODCALLTYPE Reset(
1843
_In_ ID3D12CommandAllocator *pAllocator) = 0;
1844
1845
virtual void STDMETHODCALLTYPE ClearState( void) = 0;
1846
1847
virtual void STDMETHODCALLTYPE ResourceBarrier(
1848
_In_ UINT NumBarriers,
1849
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
1850
1851
virtual void STDMETHODCALLTYPE DiscardResource(
1852
_In_ ID3D12Resource *pResource,
1853
_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
1854
1855
virtual void STDMETHODCALLTYPE BeginQuery(
1856
_In_ ID3D12QueryHeap *pQueryHeap,
1857
_In_ D3D12_QUERY_TYPE Type,
1858
_In_ UINT Index) = 0;
1859
1860
virtual void STDMETHODCALLTYPE EndQuery(
1861
_In_ ID3D12QueryHeap *pQueryHeap,
1862
_In_ D3D12_QUERY_TYPE Type,
1863
_In_ UINT Index) = 0;
1864
1865
virtual void STDMETHODCALLTYPE ResolveQueryData(
1866
_In_ ID3D12QueryHeap *pQueryHeap,
1867
_In_ D3D12_QUERY_TYPE Type,
1868
_In_ UINT StartIndex,
1869
_In_ UINT NumQueries,
1870
_In_ ID3D12Resource *pDestinationBuffer,
1871
_In_ UINT64 AlignedDestinationBufferOffset) = 0;
1872
1873
virtual void STDMETHODCALLTYPE SetPredication(
1874
_In_opt_ ID3D12Resource *pBuffer,
1875
_In_ UINT64 AlignedBufferOffset,
1876
_In_ D3D12_PREDICATION_OP Operation) = 0;
1877
1878
virtual void STDMETHODCALLTYPE SetMarker(
1879
UINT Metadata,
1880
_In_reads_bytes_opt_(Size) const void *pData,
1881
UINT Size) = 0;
1882
1883
virtual void STDMETHODCALLTYPE BeginEvent(
1884
UINT Metadata,
1885
_In_reads_bytes_opt_(Size) const void *pData,
1886
UINT Size) = 0;
1887
1888
virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
1889
1890
virtual void STDMETHODCALLTYPE ProcessFrames(
1891
_In_ ID3D12VideoProcessor *pVideoProcessor,
1892
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
1893
UINT NumInputStreams,
1894
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
1895
1896
virtual void STDMETHODCALLTYPE WriteBufferImmediate(
1897
UINT Count,
1898
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
1899
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
1900
1901
};
1902
1903
1904
#else /* C style interface */
1905
1906
typedef struct ID3D12VideoProcessCommandListVtbl
1907
{
1908
BEGIN_INTERFACE
1909
1910
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
1911
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1912
ID3D12VideoProcessCommandList * This,
1913
REFIID riid,
1914
_COM_Outptr_ void **ppvObject);
1915
1916
DECLSPEC_XFGVIRT(IUnknown, AddRef)
1917
ULONG ( STDMETHODCALLTYPE *AddRef )(
1918
ID3D12VideoProcessCommandList * This);
1919
1920
DECLSPEC_XFGVIRT(IUnknown, Release)
1921
ULONG ( STDMETHODCALLTYPE *Release )(
1922
ID3D12VideoProcessCommandList * This);
1923
1924
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
1925
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1926
ID3D12VideoProcessCommandList * This,
1927
_In_ REFGUID guid,
1928
_Inout_ UINT *pDataSize,
1929
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
1930
1931
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
1932
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1933
ID3D12VideoProcessCommandList * This,
1934
_In_ REFGUID guid,
1935
_In_ UINT DataSize,
1936
_In_reads_bytes_opt_( DataSize ) const void *pData);
1937
1938
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
1939
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1940
ID3D12VideoProcessCommandList * This,
1941
_In_ REFGUID guid,
1942
_In_opt_ const IUnknown *pData);
1943
1944
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
1945
HRESULT ( STDMETHODCALLTYPE *SetName )(
1946
ID3D12VideoProcessCommandList * This,
1947
_In_z_ LPCWSTR Name);
1948
1949
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
1950
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1951
ID3D12VideoProcessCommandList * This,
1952
REFIID riid,
1953
_COM_Outptr_opt_ void **ppvDevice);
1954
1955
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
1956
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
1957
ID3D12VideoProcessCommandList * This);
1958
1959
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
1960
HRESULT ( STDMETHODCALLTYPE *Close )(
1961
ID3D12VideoProcessCommandList * This);
1962
1963
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
1964
HRESULT ( STDMETHODCALLTYPE *Reset )(
1965
ID3D12VideoProcessCommandList * This,
1966
_In_ ID3D12CommandAllocator *pAllocator);
1967
1968
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
1969
void ( STDMETHODCALLTYPE *ClearState )(
1970
ID3D12VideoProcessCommandList * This);
1971
1972
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
1973
void ( STDMETHODCALLTYPE *ResourceBarrier )(
1974
ID3D12VideoProcessCommandList * This,
1975
_In_ UINT NumBarriers,
1976
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
1977
1978
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
1979
void ( STDMETHODCALLTYPE *DiscardResource )(
1980
ID3D12VideoProcessCommandList * This,
1981
_In_ ID3D12Resource *pResource,
1982
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
1983
1984
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
1985
void ( STDMETHODCALLTYPE *BeginQuery )(
1986
ID3D12VideoProcessCommandList * This,
1987
_In_ ID3D12QueryHeap *pQueryHeap,
1988
_In_ D3D12_QUERY_TYPE Type,
1989
_In_ UINT Index);
1990
1991
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
1992
void ( STDMETHODCALLTYPE *EndQuery )(
1993
ID3D12VideoProcessCommandList * This,
1994
_In_ ID3D12QueryHeap *pQueryHeap,
1995
_In_ D3D12_QUERY_TYPE Type,
1996
_In_ UINT Index);
1997
1998
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
1999
void ( STDMETHODCALLTYPE *ResolveQueryData )(
2000
ID3D12VideoProcessCommandList * This,
2001
_In_ ID3D12QueryHeap *pQueryHeap,
2002
_In_ D3D12_QUERY_TYPE Type,
2003
_In_ UINT StartIndex,
2004
_In_ UINT NumQueries,
2005
_In_ ID3D12Resource *pDestinationBuffer,
2006
_In_ UINT64 AlignedDestinationBufferOffset);
2007
2008
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
2009
void ( STDMETHODCALLTYPE *SetPredication )(
2010
ID3D12VideoProcessCommandList * This,
2011
_In_opt_ ID3D12Resource *pBuffer,
2012
_In_ UINT64 AlignedBufferOffset,
2013
_In_ D3D12_PREDICATION_OP Operation);
2014
2015
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
2016
void ( STDMETHODCALLTYPE *SetMarker )(
2017
ID3D12VideoProcessCommandList * This,
2018
UINT Metadata,
2019
_In_reads_bytes_opt_(Size) const void *pData,
2020
UINT Size);
2021
2022
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
2023
void ( STDMETHODCALLTYPE *BeginEvent )(
2024
ID3D12VideoProcessCommandList * This,
2025
UINT Metadata,
2026
_In_reads_bytes_opt_(Size) const void *pData,
2027
UINT Size);
2028
2029
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
2030
void ( STDMETHODCALLTYPE *EndEvent )(
2031
ID3D12VideoProcessCommandList * This);
2032
2033
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
2034
void ( STDMETHODCALLTYPE *ProcessFrames )(
2035
ID3D12VideoProcessCommandList * This,
2036
_In_ ID3D12VideoProcessor *pVideoProcessor,
2037
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2038
UINT NumInputStreams,
2039
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
2040
2041
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
2042
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
2043
ID3D12VideoProcessCommandList * This,
2044
UINT Count,
2045
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
2046
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
2047
2048
END_INTERFACE
2049
} ID3D12VideoProcessCommandListVtbl;
2050
2051
interface ID3D12VideoProcessCommandList
2052
{
2053
CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl;
2054
};
2055
2056
2057
2058
#ifdef COBJMACROS
2059
2060
2061
#define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \
2062
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2063
2064
#define ID3D12VideoProcessCommandList_AddRef(This) \
2065
( (This)->lpVtbl -> AddRef(This) )
2066
2067
#define ID3D12VideoProcessCommandList_Release(This) \
2068
( (This)->lpVtbl -> Release(This) )
2069
2070
2071
#define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \
2072
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2073
2074
#define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \
2075
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2076
2077
#define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \
2078
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2079
2080
#define ID3D12VideoProcessCommandList_SetName(This,Name) \
2081
( (This)->lpVtbl -> SetName(This,Name) )
2082
2083
2084
#define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \
2085
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2086
2087
2088
#define ID3D12VideoProcessCommandList_GetType(This) \
2089
( (This)->lpVtbl -> GetType(This) )
2090
2091
2092
#define ID3D12VideoProcessCommandList_Close(This) \
2093
( (This)->lpVtbl -> Close(This) )
2094
2095
#define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \
2096
( (This)->lpVtbl -> Reset(This,pAllocator) )
2097
2098
#define ID3D12VideoProcessCommandList_ClearState(This) \
2099
( (This)->lpVtbl -> ClearState(This) )
2100
2101
#define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
2102
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
2103
2104
#define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \
2105
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
2106
2107
#define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
2108
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
2109
2110
#define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \
2111
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
2112
2113
#define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
2114
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2115
2116
#define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2117
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2118
2119
#define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \
2120
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2121
2122
#define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \
2123
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2124
2125
#define ID3D12VideoProcessCommandList_EndEvent(This) \
2126
( (This)->lpVtbl -> EndEvent(This) )
2127
2128
#define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2129
( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2130
2131
#define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
2132
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2133
2134
#endif /* COBJMACROS */
2135
2136
2137
#endif /* C style interface */
2138
2139
2140
2141
2142
#endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */
2143
2144
2145
/* interface __MIDL_itf_d3d12video_0000_0006 */
2146
/* [local] */
2147
2148
typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM
2149
{
2150
UINT64 Offset;
2151
ID3D12Resource *pBuffer;
2152
} D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM;
2153
2154
typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1
2155
{
2156
BOOL Enable;
2157
ID3D12Resource *pReferenceTexture2D;
2158
UINT ReferenceSubresource;
2159
DXGI_COLOR_SPACE_TYPE OutputColorSpace;
2160
DXGI_COLOR_SPACE_TYPE DecodeColorSpace;
2161
UINT OutputWidth;
2162
UINT OutputHeight;
2163
} D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1;
2164
2165
typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1
2166
{
2167
ID3D12Resource *pOutputTexture2D;
2168
UINT OutputSubresource;
2169
D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments;
2170
D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ];
2171
} D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1;
2172
2173
2174
2175
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec;
2176
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec;
2177
2178
#ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__
2179
#define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__
2180
2181
/* interface ID3D12VideoDecodeCommandList1 */
2182
/* [unique][local][object][uuid] */
2183
2184
2185
EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1;
2186
2187
#if defined(__cplusplus) && !defined(CINTERFACE)
2188
2189
MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472")
2190
ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList
2191
{
2192
public:
2193
virtual void STDMETHODCALLTYPE DecodeFrame1(
2194
_In_ ID3D12VideoDecoder *pDecoder,
2195
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
2196
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0;
2197
2198
};
2199
2200
2201
#else /* C style interface */
2202
2203
typedef struct ID3D12VideoDecodeCommandList1Vtbl
2204
{
2205
BEGIN_INTERFACE
2206
2207
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2208
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2209
ID3D12VideoDecodeCommandList1 * This,
2210
REFIID riid,
2211
_COM_Outptr_ void **ppvObject);
2212
2213
DECLSPEC_XFGVIRT(IUnknown, AddRef)
2214
ULONG ( STDMETHODCALLTYPE *AddRef )(
2215
ID3D12VideoDecodeCommandList1 * This);
2216
2217
DECLSPEC_XFGVIRT(IUnknown, Release)
2218
ULONG ( STDMETHODCALLTYPE *Release )(
2219
ID3D12VideoDecodeCommandList1 * This);
2220
2221
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2222
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2223
ID3D12VideoDecodeCommandList1 * This,
2224
_In_ REFGUID guid,
2225
_Inout_ UINT *pDataSize,
2226
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
2227
2228
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2229
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2230
ID3D12VideoDecodeCommandList1 * This,
2231
_In_ REFGUID guid,
2232
_In_ UINT DataSize,
2233
_In_reads_bytes_opt_( DataSize ) const void *pData);
2234
2235
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2236
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2237
ID3D12VideoDecodeCommandList1 * This,
2238
_In_ REFGUID guid,
2239
_In_opt_ const IUnknown *pData);
2240
2241
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2242
HRESULT ( STDMETHODCALLTYPE *SetName )(
2243
ID3D12VideoDecodeCommandList1 * This,
2244
_In_z_ LPCWSTR Name);
2245
2246
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2247
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2248
ID3D12VideoDecodeCommandList1 * This,
2249
REFIID riid,
2250
_COM_Outptr_opt_ void **ppvDevice);
2251
2252
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
2253
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
2254
ID3D12VideoDecodeCommandList1 * This);
2255
2256
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
2257
HRESULT ( STDMETHODCALLTYPE *Close )(
2258
ID3D12VideoDecodeCommandList1 * This);
2259
2260
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
2261
HRESULT ( STDMETHODCALLTYPE *Reset )(
2262
ID3D12VideoDecodeCommandList1 * This,
2263
_In_ ID3D12CommandAllocator *pAllocator);
2264
2265
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
2266
void ( STDMETHODCALLTYPE *ClearState )(
2267
ID3D12VideoDecodeCommandList1 * This);
2268
2269
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
2270
void ( STDMETHODCALLTYPE *ResourceBarrier )(
2271
ID3D12VideoDecodeCommandList1 * This,
2272
_In_ UINT NumBarriers,
2273
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
2274
2275
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
2276
void ( STDMETHODCALLTYPE *DiscardResource )(
2277
ID3D12VideoDecodeCommandList1 * This,
2278
_In_ ID3D12Resource *pResource,
2279
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
2280
2281
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
2282
void ( STDMETHODCALLTYPE *BeginQuery )(
2283
ID3D12VideoDecodeCommandList1 * This,
2284
_In_ ID3D12QueryHeap *pQueryHeap,
2285
_In_ D3D12_QUERY_TYPE Type,
2286
_In_ UINT Index);
2287
2288
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
2289
void ( STDMETHODCALLTYPE *EndQuery )(
2290
ID3D12VideoDecodeCommandList1 * This,
2291
_In_ ID3D12QueryHeap *pQueryHeap,
2292
_In_ D3D12_QUERY_TYPE Type,
2293
_In_ UINT Index);
2294
2295
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
2296
void ( STDMETHODCALLTYPE *ResolveQueryData )(
2297
ID3D12VideoDecodeCommandList1 * This,
2298
_In_ ID3D12QueryHeap *pQueryHeap,
2299
_In_ D3D12_QUERY_TYPE Type,
2300
_In_ UINT StartIndex,
2301
_In_ UINT NumQueries,
2302
_In_ ID3D12Resource *pDestinationBuffer,
2303
_In_ UINT64 AlignedDestinationBufferOffset);
2304
2305
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
2306
void ( STDMETHODCALLTYPE *SetPredication )(
2307
ID3D12VideoDecodeCommandList1 * This,
2308
_In_opt_ ID3D12Resource *pBuffer,
2309
_In_ UINT64 AlignedBufferOffset,
2310
_In_ D3D12_PREDICATION_OP Operation);
2311
2312
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
2313
void ( STDMETHODCALLTYPE *SetMarker )(
2314
ID3D12VideoDecodeCommandList1 * This,
2315
UINT Metadata,
2316
_In_reads_bytes_opt_(Size) const void *pData,
2317
UINT Size);
2318
2319
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
2320
void ( STDMETHODCALLTYPE *BeginEvent )(
2321
ID3D12VideoDecodeCommandList1 * This,
2322
UINT Metadata,
2323
_In_reads_bytes_opt_(Size) const void *pData,
2324
UINT Size);
2325
2326
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
2327
void ( STDMETHODCALLTYPE *EndEvent )(
2328
ID3D12VideoDecodeCommandList1 * This);
2329
2330
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
2331
void ( STDMETHODCALLTYPE *DecodeFrame )(
2332
ID3D12VideoDecodeCommandList1 * This,
2333
_In_ ID3D12VideoDecoder *pDecoder,
2334
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2335
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
2336
2337
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
2338
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
2339
ID3D12VideoDecodeCommandList1 * This,
2340
UINT Count,
2341
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
2342
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
2343
2344
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)
2345
void ( STDMETHODCALLTYPE *DecodeFrame1 )(
2346
ID3D12VideoDecodeCommandList1 * This,
2347
_In_ ID3D12VideoDecoder *pDecoder,
2348
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
2349
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
2350
2351
END_INTERFACE
2352
} ID3D12VideoDecodeCommandList1Vtbl;
2353
2354
interface ID3D12VideoDecodeCommandList1
2355
{
2356
CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl;
2357
};
2358
2359
2360
2361
#ifdef COBJMACROS
2362
2363
2364
#define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \
2365
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2366
2367
#define ID3D12VideoDecodeCommandList1_AddRef(This) \
2368
( (This)->lpVtbl -> AddRef(This) )
2369
2370
#define ID3D12VideoDecodeCommandList1_Release(This) \
2371
( (This)->lpVtbl -> Release(This) )
2372
2373
2374
#define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
2375
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2376
2377
#define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \
2378
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2379
2380
#define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \
2381
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2382
2383
#define ID3D12VideoDecodeCommandList1_SetName(This,Name) \
2384
( (This)->lpVtbl -> SetName(This,Name) )
2385
2386
2387
#define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \
2388
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2389
2390
2391
#define ID3D12VideoDecodeCommandList1_GetType(This) \
2392
( (This)->lpVtbl -> GetType(This) )
2393
2394
2395
#define ID3D12VideoDecodeCommandList1_Close(This) \
2396
( (This)->lpVtbl -> Close(This) )
2397
2398
#define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \
2399
( (This)->lpVtbl -> Reset(This,pAllocator) )
2400
2401
#define ID3D12VideoDecodeCommandList1_ClearState(This) \
2402
( (This)->lpVtbl -> ClearState(This) )
2403
2404
#define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
2405
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
2406
2407
#define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \
2408
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
2409
2410
#define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
2411
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
2412
2413
#define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
2414
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
2415
2416
#define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
2417
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2418
2419
#define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2420
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2421
2422
#define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \
2423
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2424
2425
#define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \
2426
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2427
2428
#define ID3D12VideoDecodeCommandList1_EndEvent(This) \
2429
( (This)->lpVtbl -> EndEvent(This) )
2430
2431
#define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
2432
( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
2433
2434
#define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
2435
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2436
2437
2438
#define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \
2439
( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )
2440
2441
#endif /* COBJMACROS */
2442
2443
2444
#endif /* C style interface */
2445
2446
2447
2448
2449
#endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */
2450
2451
2452
/* interface __MIDL_itf_d3d12video_0000_0007 */
2453
/* [local] */
2454
2455
typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1
2456
{
2457
D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ];
2458
D3D12_VIDEO_PROCESS_TRANSFORM Transform;
2459
D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags;
2460
D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo;
2461
INT FilterLevels[ 32 ];
2462
D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending;
2463
D3D12_VIDEO_FIELD_TYPE FieldType;
2464
} D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1;
2465
2466
2467
2468
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec;
2469
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec;
2470
2471
#ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__
2472
#define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__
2473
2474
/* interface ID3D12VideoProcessCommandList1 */
2475
/* [unique][local][object][uuid] */
2476
2477
2478
EXTERN_C const IID IID_ID3D12VideoProcessCommandList1;
2479
2480
#if defined(__cplusplus) && !defined(CINTERFACE)
2481
2482
MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267")
2483
ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList
2484
{
2485
public:
2486
virtual void STDMETHODCALLTYPE ProcessFrames1(
2487
_In_ ID3D12VideoProcessor *pVideoProcessor,
2488
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2489
UINT NumInputStreams,
2490
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0;
2491
2492
};
2493
2494
2495
#else /* C style interface */
2496
2497
typedef struct ID3D12VideoProcessCommandList1Vtbl
2498
{
2499
BEGIN_INTERFACE
2500
2501
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2502
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2503
ID3D12VideoProcessCommandList1 * This,
2504
REFIID riid,
2505
_COM_Outptr_ void **ppvObject);
2506
2507
DECLSPEC_XFGVIRT(IUnknown, AddRef)
2508
ULONG ( STDMETHODCALLTYPE *AddRef )(
2509
ID3D12VideoProcessCommandList1 * This);
2510
2511
DECLSPEC_XFGVIRT(IUnknown, Release)
2512
ULONG ( STDMETHODCALLTYPE *Release )(
2513
ID3D12VideoProcessCommandList1 * This);
2514
2515
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2516
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2517
ID3D12VideoProcessCommandList1 * This,
2518
_In_ REFGUID guid,
2519
_Inout_ UINT *pDataSize,
2520
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
2521
2522
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2523
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2524
ID3D12VideoProcessCommandList1 * This,
2525
_In_ REFGUID guid,
2526
_In_ UINT DataSize,
2527
_In_reads_bytes_opt_( DataSize ) const void *pData);
2528
2529
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2530
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2531
ID3D12VideoProcessCommandList1 * This,
2532
_In_ REFGUID guid,
2533
_In_opt_ const IUnknown *pData);
2534
2535
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2536
HRESULT ( STDMETHODCALLTYPE *SetName )(
2537
ID3D12VideoProcessCommandList1 * This,
2538
_In_z_ LPCWSTR Name);
2539
2540
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2541
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2542
ID3D12VideoProcessCommandList1 * This,
2543
REFIID riid,
2544
_COM_Outptr_opt_ void **ppvDevice);
2545
2546
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
2547
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
2548
ID3D12VideoProcessCommandList1 * This);
2549
2550
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
2551
HRESULT ( STDMETHODCALLTYPE *Close )(
2552
ID3D12VideoProcessCommandList1 * This);
2553
2554
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
2555
HRESULT ( STDMETHODCALLTYPE *Reset )(
2556
ID3D12VideoProcessCommandList1 * This,
2557
_In_ ID3D12CommandAllocator *pAllocator);
2558
2559
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
2560
void ( STDMETHODCALLTYPE *ClearState )(
2561
ID3D12VideoProcessCommandList1 * This);
2562
2563
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
2564
void ( STDMETHODCALLTYPE *ResourceBarrier )(
2565
ID3D12VideoProcessCommandList1 * This,
2566
_In_ UINT NumBarriers,
2567
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
2568
2569
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
2570
void ( STDMETHODCALLTYPE *DiscardResource )(
2571
ID3D12VideoProcessCommandList1 * This,
2572
_In_ ID3D12Resource *pResource,
2573
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
2574
2575
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
2576
void ( STDMETHODCALLTYPE *BeginQuery )(
2577
ID3D12VideoProcessCommandList1 * This,
2578
_In_ ID3D12QueryHeap *pQueryHeap,
2579
_In_ D3D12_QUERY_TYPE Type,
2580
_In_ UINT Index);
2581
2582
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
2583
void ( STDMETHODCALLTYPE *EndQuery )(
2584
ID3D12VideoProcessCommandList1 * This,
2585
_In_ ID3D12QueryHeap *pQueryHeap,
2586
_In_ D3D12_QUERY_TYPE Type,
2587
_In_ UINT Index);
2588
2589
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
2590
void ( STDMETHODCALLTYPE *ResolveQueryData )(
2591
ID3D12VideoProcessCommandList1 * This,
2592
_In_ ID3D12QueryHeap *pQueryHeap,
2593
_In_ D3D12_QUERY_TYPE Type,
2594
_In_ UINT StartIndex,
2595
_In_ UINT NumQueries,
2596
_In_ ID3D12Resource *pDestinationBuffer,
2597
_In_ UINT64 AlignedDestinationBufferOffset);
2598
2599
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
2600
void ( STDMETHODCALLTYPE *SetPredication )(
2601
ID3D12VideoProcessCommandList1 * This,
2602
_In_opt_ ID3D12Resource *pBuffer,
2603
_In_ UINT64 AlignedBufferOffset,
2604
_In_ D3D12_PREDICATION_OP Operation);
2605
2606
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
2607
void ( STDMETHODCALLTYPE *SetMarker )(
2608
ID3D12VideoProcessCommandList1 * This,
2609
UINT Metadata,
2610
_In_reads_bytes_opt_(Size) const void *pData,
2611
UINT Size);
2612
2613
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
2614
void ( STDMETHODCALLTYPE *BeginEvent )(
2615
ID3D12VideoProcessCommandList1 * This,
2616
UINT Metadata,
2617
_In_reads_bytes_opt_(Size) const void *pData,
2618
UINT Size);
2619
2620
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
2621
void ( STDMETHODCALLTYPE *EndEvent )(
2622
ID3D12VideoProcessCommandList1 * This);
2623
2624
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
2625
void ( STDMETHODCALLTYPE *ProcessFrames )(
2626
ID3D12VideoProcessCommandList1 * This,
2627
_In_ ID3D12VideoProcessor *pVideoProcessor,
2628
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2629
UINT NumInputStreams,
2630
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
2631
2632
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
2633
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
2634
ID3D12VideoProcessCommandList1 * This,
2635
UINT Count,
2636
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
2637
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
2638
2639
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)
2640
void ( STDMETHODCALLTYPE *ProcessFrames1 )(
2641
ID3D12VideoProcessCommandList1 * This,
2642
_In_ ID3D12VideoProcessor *pVideoProcessor,
2643
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
2644
UINT NumInputStreams,
2645
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);
2646
2647
END_INTERFACE
2648
} ID3D12VideoProcessCommandList1Vtbl;
2649
2650
interface ID3D12VideoProcessCommandList1
2651
{
2652
CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl;
2653
};
2654
2655
2656
2657
#ifdef COBJMACROS
2658
2659
2660
#define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \
2661
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2662
2663
#define ID3D12VideoProcessCommandList1_AddRef(This) \
2664
( (This)->lpVtbl -> AddRef(This) )
2665
2666
#define ID3D12VideoProcessCommandList1_Release(This) \
2667
( (This)->lpVtbl -> Release(This) )
2668
2669
2670
#define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
2671
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2672
2673
#define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \
2674
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2675
2676
#define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \
2677
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2678
2679
#define ID3D12VideoProcessCommandList1_SetName(This,Name) \
2680
( (This)->lpVtbl -> SetName(This,Name) )
2681
2682
2683
#define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \
2684
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2685
2686
2687
#define ID3D12VideoProcessCommandList1_GetType(This) \
2688
( (This)->lpVtbl -> GetType(This) )
2689
2690
2691
#define ID3D12VideoProcessCommandList1_Close(This) \
2692
( (This)->lpVtbl -> Close(This) )
2693
2694
#define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \
2695
( (This)->lpVtbl -> Reset(This,pAllocator) )
2696
2697
#define ID3D12VideoProcessCommandList1_ClearState(This) \
2698
( (This)->lpVtbl -> ClearState(This) )
2699
2700
#define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
2701
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
2702
2703
#define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \
2704
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
2705
2706
#define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
2707
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
2708
2709
#define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
2710
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
2711
2712
#define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
2713
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
2714
2715
#define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
2716
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
2717
2718
#define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \
2719
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
2720
2721
#define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \
2722
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
2723
2724
#define ID3D12VideoProcessCommandList1_EndEvent(This) \
2725
( (This)->lpVtbl -> EndEvent(This) )
2726
2727
#define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2728
( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2729
2730
#define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
2731
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
2732
2733
2734
#define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
2735
( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
2736
2737
#endif /* COBJMACROS */
2738
2739
2740
#endif /* C style interface */
2741
2742
2743
2744
2745
#endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */
2746
2747
2748
/* interface __MIDL_itf_d3d12video_0000_0008 */
2749
/* [local] */
2750
2751
typedef
2752
enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE
2753
{
2754
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0,
2755
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1
2756
} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE;
2757
2758
typedef
2759
enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS
2760
{
2761
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0,
2762
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) ,
2763
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 )
2764
} D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS;
2765
2766
DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS );
2767
typedef
2768
enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION
2769
{
2770
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0
2771
} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION;
2772
2773
typedef
2774
enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS
2775
{
2776
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0,
2777
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL )
2778
} D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS;
2779
2780
DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS );
2781
typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT
2782
{
2783
UINT NodeIndex;
2784
BOOL VideoDecodeSupport;
2785
BOOL VideoProcessSupport;
2786
BOOL VideoEncodeSupport;
2787
} D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT;
2788
2789
typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR
2790
{
2791
UINT NodeIndex;
2792
DXGI_FORMAT InputFormat;
2793
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags;
2794
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags;
2795
D3D12_VIDEO_SIZE_RANGE SizeRange;
2796
} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR;
2797
2798
typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE
2799
{
2800
UINT NodeIndex;
2801
DXGI_FORMAT InputFormat;
2802
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2803
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2804
D3D12_VIDEO_SIZE_RANGE SizeRange;
2805
BOOL Protected;
2806
UINT64 MotionVectorHeapMemoryPoolL0Size;
2807
UINT64 MotionVectorHeapMemoryPoolL1Size;
2808
UINT64 MotionEstimatorMemoryPoolL0Size;
2809
UINT64 MotionEstimatorMemoryPoolL1Size;
2810
} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE;
2811
2812
typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC
2813
{
2814
UINT NodeMask;
2815
DXGI_FORMAT InputFormat;
2816
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2817
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2818
D3D12_VIDEO_SIZE_RANGE SizeRange;
2819
} D3D12_VIDEO_MOTION_ESTIMATOR_DESC;
2820
2821
2822
2823
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec;
2824
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec;
2825
2826
#ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__
2827
#define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__
2828
2829
/* interface ID3D12VideoMotionEstimator */
2830
/* [unique][local][object][uuid] */
2831
2832
2833
EXTERN_C const IID IID_ID3D12VideoMotionEstimator;
2834
2835
#if defined(__cplusplus) && !defined(CINTERFACE)
2836
2837
MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8")
2838
ID3D12VideoMotionEstimator : public ID3D12Pageable
2839
{
2840
public:
2841
#if defined(_MSC_VER) || !defined(_WIN32)
2842
virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
2843
#else
2844
virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC *STDMETHODCALLTYPE GetDesc(
2845
D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal) = 0;
2846
#endif
2847
2848
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
2849
REFIID riid,
2850
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
2851
2852
};
2853
2854
2855
#else /* C style interface */
2856
2857
typedef struct ID3D12VideoMotionEstimatorVtbl
2858
{
2859
BEGIN_INTERFACE
2860
2861
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
2862
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2863
ID3D12VideoMotionEstimator * This,
2864
REFIID riid,
2865
_COM_Outptr_ void **ppvObject);
2866
2867
DECLSPEC_XFGVIRT(IUnknown, AddRef)
2868
ULONG ( STDMETHODCALLTYPE *AddRef )(
2869
ID3D12VideoMotionEstimator * This);
2870
2871
DECLSPEC_XFGVIRT(IUnknown, Release)
2872
ULONG ( STDMETHODCALLTYPE *Release )(
2873
ID3D12VideoMotionEstimator * This);
2874
2875
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
2876
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2877
ID3D12VideoMotionEstimator * This,
2878
_In_ REFGUID guid,
2879
_Inout_ UINT *pDataSize,
2880
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
2881
2882
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
2883
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2884
ID3D12VideoMotionEstimator * This,
2885
_In_ REFGUID guid,
2886
_In_ UINT DataSize,
2887
_In_reads_bytes_opt_( DataSize ) const void *pData);
2888
2889
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
2890
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2891
ID3D12VideoMotionEstimator * This,
2892
_In_ REFGUID guid,
2893
_In_opt_ const IUnknown *pData);
2894
2895
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
2896
HRESULT ( STDMETHODCALLTYPE *SetName )(
2897
ID3D12VideoMotionEstimator * This,
2898
_In_z_ LPCWSTR Name);
2899
2900
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
2901
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
2902
ID3D12VideoMotionEstimator * This,
2903
REFIID riid,
2904
_COM_Outptr_opt_ void **ppvDevice);
2905
2906
DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc)
2907
#if !defined(_WIN32)
2908
D3D12_VIDEO_MOTION_ESTIMATOR_DESC ( STDMETHODCALLTYPE *GetDesc )(
2909
ID3D12VideoMotionEstimator * This);
2910
2911
#else
2912
D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )(
2913
ID3D12VideoMotionEstimator * This,
2914
D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal);
2915
2916
#endif
2917
2918
DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession)
2919
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
2920
ID3D12VideoMotionEstimator * This,
2921
REFIID riid,
2922
_COM_Outptr_opt_ void **ppProtectedSession);
2923
2924
END_INTERFACE
2925
} ID3D12VideoMotionEstimatorVtbl;
2926
2927
interface ID3D12VideoMotionEstimator
2928
{
2929
CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl;
2930
};
2931
2932
2933
2934
#ifdef COBJMACROS
2935
2936
2937
#define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \
2938
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2939
2940
#define ID3D12VideoMotionEstimator_AddRef(This) \
2941
( (This)->lpVtbl -> AddRef(This) )
2942
2943
#define ID3D12VideoMotionEstimator_Release(This) \
2944
( (This)->lpVtbl -> Release(This) )
2945
2946
2947
#define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \
2948
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
2949
2950
#define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \
2951
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
2952
2953
#define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \
2954
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
2955
2956
#define ID3D12VideoMotionEstimator_SetName(This,Name) \
2957
( (This)->lpVtbl -> SetName(This,Name) )
2958
2959
2960
#define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \
2961
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
2962
2963
2964
#if !defined(_WIN32)
2965
2966
#define ID3D12VideoMotionEstimator_GetDesc(This) \
2967
( (This)->lpVtbl -> GetDesc(This) )
2968
#else
2969
#define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \
2970
( (This)->lpVtbl -> GetDesc(This,RetVal) )
2971
#endif
2972
2973
#define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \
2974
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
2975
2976
#endif /* COBJMACROS */
2977
2978
2979
#endif /* C style interface */
2980
2981
2982
2983
2984
#endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */
2985
2986
2987
/* interface __MIDL_itf_d3d12video_0000_0009 */
2988
/* [local] */
2989
2990
typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC
2991
{
2992
UINT NodeMask;
2993
DXGI_FORMAT InputFormat;
2994
D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize;
2995
D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision;
2996
D3D12_VIDEO_SIZE_RANGE SizeRange;
2997
} D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC;
2998
2999
3000
3001
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec;
3002
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec;
3003
3004
#ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__
3005
#define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__
3006
3007
/* interface ID3D12VideoMotionVectorHeap */
3008
/* [unique][local][object][uuid] */
3009
3010
3011
EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap;
3012
3013
#if defined(__cplusplus) && !defined(CINTERFACE)
3014
3015
MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505")
3016
ID3D12VideoMotionVectorHeap : public ID3D12Pageable
3017
{
3018
public:
3019
#if defined(_MSC_VER) || !defined(_WIN32)
3020
virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
3021
#else
3022
virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc(
3023
D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal) = 0;
3024
#endif
3025
3026
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
3027
REFIID riid,
3028
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
3029
3030
};
3031
3032
3033
#else /* C style interface */
3034
3035
typedef struct ID3D12VideoMotionVectorHeapVtbl
3036
{
3037
BEGIN_INTERFACE
3038
3039
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3040
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3041
ID3D12VideoMotionVectorHeap * This,
3042
REFIID riid,
3043
_COM_Outptr_ void **ppvObject);
3044
3045
DECLSPEC_XFGVIRT(IUnknown, AddRef)
3046
ULONG ( STDMETHODCALLTYPE *AddRef )(
3047
ID3D12VideoMotionVectorHeap * This);
3048
3049
DECLSPEC_XFGVIRT(IUnknown, Release)
3050
ULONG ( STDMETHODCALLTYPE *Release )(
3051
ID3D12VideoMotionVectorHeap * This);
3052
3053
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3054
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3055
ID3D12VideoMotionVectorHeap * This,
3056
_In_ REFGUID guid,
3057
_Inout_ UINT *pDataSize,
3058
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
3059
3060
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3061
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3062
ID3D12VideoMotionVectorHeap * This,
3063
_In_ REFGUID guid,
3064
_In_ UINT DataSize,
3065
_In_reads_bytes_opt_( DataSize ) const void *pData);
3066
3067
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3068
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3069
ID3D12VideoMotionVectorHeap * This,
3070
_In_ REFGUID guid,
3071
_In_opt_ const IUnknown *pData);
3072
3073
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3074
HRESULT ( STDMETHODCALLTYPE *SetName )(
3075
ID3D12VideoMotionVectorHeap * This,
3076
_In_z_ LPCWSTR Name);
3077
3078
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3079
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3080
ID3D12VideoMotionVectorHeap * This,
3081
REFIID riid,
3082
_COM_Outptr_opt_ void **ppvDevice);
3083
3084
DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc)
3085
#if !defined(_WIN32)
3086
D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
3087
ID3D12VideoMotionVectorHeap * This);
3088
3089
#else
3090
D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
3091
ID3D12VideoMotionVectorHeap * This,
3092
D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal);
3093
3094
#endif
3095
3096
DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession)
3097
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
3098
ID3D12VideoMotionVectorHeap * This,
3099
REFIID riid,
3100
_COM_Outptr_opt_ void **ppProtectedSession);
3101
3102
END_INTERFACE
3103
} ID3D12VideoMotionVectorHeapVtbl;
3104
3105
interface ID3D12VideoMotionVectorHeap
3106
{
3107
CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl;
3108
};
3109
3110
3111
3112
#ifdef COBJMACROS
3113
3114
3115
#define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \
3116
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3117
3118
#define ID3D12VideoMotionVectorHeap_AddRef(This) \
3119
( (This)->lpVtbl -> AddRef(This) )
3120
3121
#define ID3D12VideoMotionVectorHeap_Release(This) \
3122
( (This)->lpVtbl -> Release(This) )
3123
3124
3125
#define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \
3126
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3127
3128
#define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \
3129
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3130
3131
#define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \
3132
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3133
3134
#define ID3D12VideoMotionVectorHeap_SetName(This,Name) \
3135
( (This)->lpVtbl -> SetName(This,Name) )
3136
3137
3138
#define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \
3139
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3140
3141
3142
#if !defined(_WIN32)
3143
3144
#define ID3D12VideoMotionVectorHeap_GetDesc(This) \
3145
( (This)->lpVtbl -> GetDesc(This) )
3146
#else
3147
#define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \
3148
( (This)->lpVtbl -> GetDesc(This,RetVal) )
3149
#endif
3150
3151
#define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \
3152
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
3153
3154
#endif /* COBJMACROS */
3155
3156
3157
#endif /* C style interface */
3158
3159
3160
3161
3162
#endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */
3163
3164
3165
#ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__
3166
#define __ID3D12VideoDevice1_INTERFACE_DEFINED__
3167
3168
/* interface ID3D12VideoDevice1 */
3169
/* [unique][local][object][uuid] */
3170
3171
3172
EXTERN_C const IID IID_ID3D12VideoDevice1;
3173
3174
#if defined(__cplusplus) && !defined(CINTERFACE)
3175
3176
MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB")
3177
ID3D12VideoDevice1 : public ID3D12VideoDevice
3178
{
3179
public:
3180
virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator(
3181
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
3182
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3183
_In_ REFIID riid,
3184
_COM_Outptr_ void **ppVideoMotionEstimator) = 0;
3185
3186
virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap(
3187
_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
3188
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3189
_In_ REFIID riid,
3190
_COM_Outptr_ void **ppVideoMotionVectorHeap) = 0;
3191
3192
};
3193
3194
3195
#else /* C style interface */
3196
3197
typedef struct ID3D12VideoDevice1Vtbl
3198
{
3199
BEGIN_INTERFACE
3200
3201
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3202
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3203
ID3D12VideoDevice1 * This,
3204
REFIID riid,
3205
_COM_Outptr_ void **ppvObject);
3206
3207
DECLSPEC_XFGVIRT(IUnknown, AddRef)
3208
ULONG ( STDMETHODCALLTYPE *AddRef )(
3209
ID3D12VideoDevice1 * This);
3210
3211
DECLSPEC_XFGVIRT(IUnknown, Release)
3212
ULONG ( STDMETHODCALLTYPE *Release )(
3213
ID3D12VideoDevice1 * This);
3214
3215
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
3216
HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
3217
ID3D12VideoDevice1 * This,
3218
D3D12_FEATURE_VIDEO FeatureVideo,
3219
_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
3220
UINT FeatureSupportDataSize);
3221
3222
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
3223
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
3224
ID3D12VideoDevice1 * This,
3225
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
3226
_In_ REFIID riid,
3227
_COM_Outptr_ void **ppVideoDecoder);
3228
3229
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
3230
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
3231
ID3D12VideoDevice1 * This,
3232
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
3233
_In_ REFIID riid,
3234
_COM_Outptr_ void **ppVideoDecoderHeap);
3235
3236
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
3237
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
3238
ID3D12VideoDevice1 * This,
3239
UINT NodeMask,
3240
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
3241
UINT NumInputStreamDescs,
3242
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
3243
_In_ REFIID riid,
3244
_COM_Outptr_ void **ppVideoProcessor);
3245
3246
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)
3247
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(
3248
ID3D12VideoDevice1 * This,
3249
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
3250
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3251
_In_ REFIID riid,
3252
_COM_Outptr_ void **ppVideoMotionEstimator);
3253
3254
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)
3255
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(
3256
ID3D12VideoDevice1 * This,
3257
_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
3258
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
3259
_In_ REFIID riid,
3260
_COM_Outptr_ void **ppVideoMotionVectorHeap);
3261
3262
END_INTERFACE
3263
} ID3D12VideoDevice1Vtbl;
3264
3265
interface ID3D12VideoDevice1
3266
{
3267
CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl;
3268
};
3269
3270
3271
3272
#ifdef COBJMACROS
3273
3274
3275
#define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \
3276
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3277
3278
#define ID3D12VideoDevice1_AddRef(This) \
3279
( (This)->lpVtbl -> AddRef(This) )
3280
3281
#define ID3D12VideoDevice1_Release(This) \
3282
( (This)->lpVtbl -> Release(This) )
3283
3284
3285
#define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
3286
( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
3287
3288
#define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
3289
( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
3290
3291
#define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
3292
( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
3293
3294
#define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
3295
( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
3296
3297
3298
#define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \
3299
( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )
3300
3301
#define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \
3302
( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )
3303
3304
#endif /* COBJMACROS */
3305
3306
3307
#endif /* C style interface */
3308
3309
3310
3311
3312
#endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */
3313
3314
3315
/* interface __MIDL_itf_d3d12video_0000_0011 */
3316
/* [local] */
3317
3318
typedef struct D3D12_RESOURCE_COORDINATE
3319
{
3320
UINT64 X;
3321
UINT Y;
3322
UINT Z;
3323
UINT SubresourceIndex;
3324
} D3D12_RESOURCE_COORDINATE;
3325
3326
typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT
3327
{
3328
ID3D12VideoMotionVectorHeap *pMotionVectorHeap;
3329
} D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT;
3330
3331
typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT
3332
{
3333
ID3D12Resource *pInputTexture2D;
3334
UINT InputSubresourceIndex;
3335
ID3D12Resource *pReferenceTexture2D;
3336
UINT ReferenceSubresourceIndex;
3337
ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap;
3338
} D3D12_VIDEO_MOTION_ESTIMATOR_INPUT;
3339
3340
typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT
3341
{
3342
ID3D12Resource *pMotionVectorTexture2D;
3343
D3D12_RESOURCE_COORDINATE MotionVectorCoordinate;
3344
} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT;
3345
3346
typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT
3347
{
3348
ID3D12VideoMotionVectorHeap *pMotionVectorHeap;
3349
UINT PixelWidth;
3350
UINT PixelHeight;
3351
} D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT;
3352
3353
3354
3355
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec;
3356
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec;
3357
3358
#ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__
3359
#define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__
3360
3361
/* interface ID3D12VideoEncodeCommandList */
3362
/* [unique][local][object][uuid] */
3363
3364
3365
EXTERN_C const IID IID_ID3D12VideoEncodeCommandList;
3366
3367
#if defined(__cplusplus) && !defined(CINTERFACE)
3368
3369
MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723")
3370
ID3D12VideoEncodeCommandList : public ID3D12CommandList
3371
{
3372
public:
3373
virtual HRESULT STDMETHODCALLTYPE Close( void) = 0;
3374
3375
virtual HRESULT STDMETHODCALLTYPE Reset(
3376
_In_ ID3D12CommandAllocator *pAllocator) = 0;
3377
3378
virtual void STDMETHODCALLTYPE ClearState( void) = 0;
3379
3380
virtual void STDMETHODCALLTYPE ResourceBarrier(
3381
_In_ UINT NumBarriers,
3382
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0;
3383
3384
virtual void STDMETHODCALLTYPE DiscardResource(
3385
_In_ ID3D12Resource *pResource,
3386
_In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0;
3387
3388
virtual void STDMETHODCALLTYPE BeginQuery(
3389
_In_ ID3D12QueryHeap *pQueryHeap,
3390
_In_ D3D12_QUERY_TYPE Type,
3391
_In_ UINT Index) = 0;
3392
3393
virtual void STDMETHODCALLTYPE EndQuery(
3394
_In_ ID3D12QueryHeap *pQueryHeap,
3395
_In_ D3D12_QUERY_TYPE Type,
3396
_In_ UINT Index) = 0;
3397
3398
virtual void STDMETHODCALLTYPE ResolveQueryData(
3399
_In_ ID3D12QueryHeap *pQueryHeap,
3400
_In_ D3D12_QUERY_TYPE Type,
3401
_In_ UINT StartIndex,
3402
_In_ UINT NumQueries,
3403
_In_ ID3D12Resource *pDestinationBuffer,
3404
_In_ UINT64 AlignedDestinationBufferOffset) = 0;
3405
3406
virtual void STDMETHODCALLTYPE SetPredication(
3407
_In_opt_ ID3D12Resource *pBuffer,
3408
_In_ UINT64 AlignedBufferOffset,
3409
_In_ D3D12_PREDICATION_OP Operation) = 0;
3410
3411
virtual void STDMETHODCALLTYPE SetMarker(
3412
UINT Metadata,
3413
_In_reads_bytes_opt_(Size) const void *pData,
3414
UINT Size) = 0;
3415
3416
virtual void STDMETHODCALLTYPE BeginEvent(
3417
UINT Metadata,
3418
_In_reads_bytes_opt_(Size) const void *pData,
3419
UINT Size) = 0;
3420
3421
virtual void STDMETHODCALLTYPE EndEvent( void) = 0;
3422
3423
virtual void STDMETHODCALLTYPE EstimateMotion(
3424
_In_ ID3D12VideoMotionEstimator *pMotionEstimator,
3425
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
3426
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0;
3427
3428
virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap(
3429
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
3430
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0;
3431
3432
virtual void STDMETHODCALLTYPE WriteBufferImmediate(
3433
UINT Count,
3434
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
3435
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0;
3436
3437
virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
3438
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
3439
3440
};
3441
3442
3443
#else /* C style interface */
3444
3445
typedef struct ID3D12VideoEncodeCommandListVtbl
3446
{
3447
BEGIN_INTERFACE
3448
3449
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3450
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3451
ID3D12VideoEncodeCommandList * This,
3452
REFIID riid,
3453
_COM_Outptr_ void **ppvObject);
3454
3455
DECLSPEC_XFGVIRT(IUnknown, AddRef)
3456
ULONG ( STDMETHODCALLTYPE *AddRef )(
3457
ID3D12VideoEncodeCommandList * This);
3458
3459
DECLSPEC_XFGVIRT(IUnknown, Release)
3460
ULONG ( STDMETHODCALLTYPE *Release )(
3461
ID3D12VideoEncodeCommandList * This);
3462
3463
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3464
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3465
ID3D12VideoEncodeCommandList * This,
3466
_In_ REFGUID guid,
3467
_Inout_ UINT *pDataSize,
3468
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
3469
3470
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3471
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3472
ID3D12VideoEncodeCommandList * This,
3473
_In_ REFGUID guid,
3474
_In_ UINT DataSize,
3475
_In_reads_bytes_opt_( DataSize ) const void *pData);
3476
3477
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3478
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3479
ID3D12VideoEncodeCommandList * This,
3480
_In_ REFGUID guid,
3481
_In_opt_ const IUnknown *pData);
3482
3483
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3484
HRESULT ( STDMETHODCALLTYPE *SetName )(
3485
ID3D12VideoEncodeCommandList * This,
3486
_In_z_ LPCWSTR Name);
3487
3488
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3489
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3490
ID3D12VideoEncodeCommandList * This,
3491
REFIID riid,
3492
_COM_Outptr_opt_ void **ppvDevice);
3493
3494
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
3495
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
3496
ID3D12VideoEncodeCommandList * This);
3497
3498
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
3499
HRESULT ( STDMETHODCALLTYPE *Close )(
3500
ID3D12VideoEncodeCommandList * This);
3501
3502
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
3503
HRESULT ( STDMETHODCALLTYPE *Reset )(
3504
ID3D12VideoEncodeCommandList * This,
3505
_In_ ID3D12CommandAllocator *pAllocator);
3506
3507
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
3508
void ( STDMETHODCALLTYPE *ClearState )(
3509
ID3D12VideoEncodeCommandList * This);
3510
3511
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
3512
void ( STDMETHODCALLTYPE *ResourceBarrier )(
3513
ID3D12VideoEncodeCommandList * This,
3514
_In_ UINT NumBarriers,
3515
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
3516
3517
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
3518
void ( STDMETHODCALLTYPE *DiscardResource )(
3519
ID3D12VideoEncodeCommandList * This,
3520
_In_ ID3D12Resource *pResource,
3521
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
3522
3523
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
3524
void ( STDMETHODCALLTYPE *BeginQuery )(
3525
ID3D12VideoEncodeCommandList * This,
3526
_In_ ID3D12QueryHeap *pQueryHeap,
3527
_In_ D3D12_QUERY_TYPE Type,
3528
_In_ UINT Index);
3529
3530
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
3531
void ( STDMETHODCALLTYPE *EndQuery )(
3532
ID3D12VideoEncodeCommandList * This,
3533
_In_ ID3D12QueryHeap *pQueryHeap,
3534
_In_ D3D12_QUERY_TYPE Type,
3535
_In_ UINT Index);
3536
3537
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
3538
void ( STDMETHODCALLTYPE *ResolveQueryData )(
3539
ID3D12VideoEncodeCommandList * This,
3540
_In_ ID3D12QueryHeap *pQueryHeap,
3541
_In_ D3D12_QUERY_TYPE Type,
3542
_In_ UINT StartIndex,
3543
_In_ UINT NumQueries,
3544
_In_ ID3D12Resource *pDestinationBuffer,
3545
_In_ UINT64 AlignedDestinationBufferOffset);
3546
3547
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
3548
void ( STDMETHODCALLTYPE *SetPredication )(
3549
ID3D12VideoEncodeCommandList * This,
3550
_In_opt_ ID3D12Resource *pBuffer,
3551
_In_ UINT64 AlignedBufferOffset,
3552
_In_ D3D12_PREDICATION_OP Operation);
3553
3554
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
3555
void ( STDMETHODCALLTYPE *SetMarker )(
3556
ID3D12VideoEncodeCommandList * This,
3557
UINT Metadata,
3558
_In_reads_bytes_opt_(Size) const void *pData,
3559
UINT Size);
3560
3561
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
3562
void ( STDMETHODCALLTYPE *BeginEvent )(
3563
ID3D12VideoEncodeCommandList * This,
3564
UINT Metadata,
3565
_In_reads_bytes_opt_(Size) const void *pData,
3566
UINT Size);
3567
3568
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
3569
void ( STDMETHODCALLTYPE *EndEvent )(
3570
ID3D12VideoEncodeCommandList * This);
3571
3572
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
3573
void ( STDMETHODCALLTYPE *EstimateMotion )(
3574
ID3D12VideoEncodeCommandList * This,
3575
_In_ ID3D12VideoMotionEstimator *pMotionEstimator,
3576
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
3577
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
3578
3579
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
3580
void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
3581
ID3D12VideoEncodeCommandList * This,
3582
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
3583
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
3584
3585
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
3586
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
3587
ID3D12VideoEncodeCommandList * This,
3588
UINT Count,
3589
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
3590
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
3591
3592
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
3593
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
3594
ID3D12VideoEncodeCommandList * This,
3595
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
3596
3597
END_INTERFACE
3598
} ID3D12VideoEncodeCommandListVtbl;
3599
3600
interface ID3D12VideoEncodeCommandList
3601
{
3602
CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl;
3603
};
3604
3605
3606
3607
#ifdef COBJMACROS
3608
3609
3610
#define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \
3611
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3612
3613
#define ID3D12VideoEncodeCommandList_AddRef(This) \
3614
( (This)->lpVtbl -> AddRef(This) )
3615
3616
#define ID3D12VideoEncodeCommandList_Release(This) \
3617
( (This)->lpVtbl -> Release(This) )
3618
3619
3620
#define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \
3621
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3622
3623
#define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \
3624
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3625
3626
#define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \
3627
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3628
3629
#define ID3D12VideoEncodeCommandList_SetName(This,Name) \
3630
( (This)->lpVtbl -> SetName(This,Name) )
3631
3632
3633
#define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \
3634
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3635
3636
3637
#define ID3D12VideoEncodeCommandList_GetType(This) \
3638
( (This)->lpVtbl -> GetType(This) )
3639
3640
3641
#define ID3D12VideoEncodeCommandList_Close(This) \
3642
( (This)->lpVtbl -> Close(This) )
3643
3644
#define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \
3645
( (This)->lpVtbl -> Reset(This,pAllocator) )
3646
3647
#define ID3D12VideoEncodeCommandList_ClearState(This) \
3648
( (This)->lpVtbl -> ClearState(This) )
3649
3650
#define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \
3651
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
3652
3653
#define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \
3654
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
3655
3656
#define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \
3657
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
3658
3659
#define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \
3660
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
3661
3662
#define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
3663
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
3664
3665
#define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
3666
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
3667
3668
#define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \
3669
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
3670
3671
#define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \
3672
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
3673
3674
#define ID3D12VideoEncodeCommandList_EndEvent(This) \
3675
( (This)->lpVtbl -> EndEvent(This) )
3676
3677
#define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
3678
( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
3679
3680
#define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
3681
( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
3682
3683
#define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \
3684
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
3685
3686
#define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \
3687
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
3688
3689
#endif /* COBJMACROS */
3690
3691
3692
#endif /* C style interface */
3693
3694
3695
3696
3697
#endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */
3698
3699
3700
/* interface __MIDL_itf_d3d12video_0000_0012 */
3701
/* [local] */
3702
3703
typedef
3704
enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS
3705
{
3706
D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0,
3707
D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1
3708
} D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS;
3709
3710
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS );
3711
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES
3712
{
3713
UINT NodeIndex;
3714
D3D12_VIDEO_DECODE_CONFIGURATION Configuration;
3715
D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3716
} D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES;
3717
3718
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES
3719
{
3720
UINT NodeIndex;
3721
D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3722
} D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES;
3723
3724
typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES
3725
{
3726
UINT NodeIndex;
3727
D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags;
3728
} D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES;
3729
3730
typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1
3731
{
3732
D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc;
3733
BOOL Protected;
3734
UINT64 MemoryPoolL0Size;
3735
UINT64 MemoryPoolL1Size;
3736
} D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1;
3737
3738
typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1
3739
{
3740
UINT NodeMask;
3741
const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc;
3742
UINT NumInputStreamDescs;
3743
const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs;
3744
BOOL Protected;
3745
UINT64 MemoryPoolL0Size;
3746
UINT64 MemoryPoolL1Size;
3747
} D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1;
3748
3749
typedef
3750
enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE
3751
{
3752
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0,
3753
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1,
3754
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2,
3755
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3,
3756
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4,
3757
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5,
3758
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6
3759
} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE;
3760
3761
typedef
3762
enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE
3763
{
3764
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0,
3765
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1,
3766
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2,
3767
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3,
3768
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4,
3769
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5,
3770
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6,
3771
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7,
3772
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8,
3773
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9,
3774
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10
3775
} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE;
3776
3777
typedef
3778
enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS
3779
{
3780
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0,
3781
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1,
3782
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x2
3783
} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS;
3784
3785
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS );
3786
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT
3787
{
3788
UINT NodeIndex;
3789
UINT CommandCount;
3790
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT;
3791
3792
typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO
3793
{
3794
GUID CommandId;
3795
LPCWSTR Name;
3796
D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags;
3797
} D3D12_VIDEO_EXTENSION_COMMAND_INFO;
3798
3799
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS
3800
{
3801
UINT NodeIndex;
3802
UINT CommandCount;
3803
_Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos;
3804
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS;
3805
3806
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT
3807
{
3808
GUID CommandId;
3809
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;
3810
UINT ParameterCount;
3811
UINT ParameterPacking;
3812
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT;
3813
3814
typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO
3815
{
3816
LPCWSTR Name;
3817
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type;
3818
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags;
3819
} D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO;
3820
3821
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS
3822
{
3823
GUID CommandId;
3824
D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage;
3825
UINT ParameterCount;
3826
_Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos;
3827
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS;
3828
3829
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT
3830
{
3831
UINT NodeIndex;
3832
GUID CommandId;
3833
_Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData;
3834
SIZE_T InputDataSizeInBytes;
3835
_Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData;
3836
SIZE_T OutputDataSizeInBytes;
3837
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT;
3838
3839
typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE
3840
{
3841
UINT NodeIndex;
3842
GUID CommandId;
3843
_Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters;
3844
SIZE_T CreationParametersSizeInBytes;
3845
UINT64 MemoryPoolL0Size;
3846
UINT64 MemoryPoolL1Size;
3847
} D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE;
3848
3849
typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC
3850
{
3851
UINT NodeMask;
3852
GUID CommandId;
3853
} D3D12_VIDEO_EXTENSION_COMMAND_DESC;
3854
3855
3856
3857
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec;
3858
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec;
3859
3860
#ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__
3861
#define __ID3D12VideoDecoder1_INTERFACE_DEFINED__
3862
3863
/* interface ID3D12VideoDecoder1 */
3864
/* [unique][local][object][uuid] */
3865
3866
3867
EXTERN_C const IID IID_ID3D12VideoDecoder1;
3868
3869
#if defined(__cplusplus) && !defined(CINTERFACE)
3870
3871
MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E")
3872
ID3D12VideoDecoder1 : public ID3D12VideoDecoder
3873
{
3874
public:
3875
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
3876
REFIID riid,
3877
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
3878
3879
};
3880
3881
3882
#else /* C style interface */
3883
3884
typedef struct ID3D12VideoDecoder1Vtbl
3885
{
3886
BEGIN_INTERFACE
3887
3888
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
3889
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3890
ID3D12VideoDecoder1 * This,
3891
REFIID riid,
3892
_COM_Outptr_ void **ppvObject);
3893
3894
DECLSPEC_XFGVIRT(IUnknown, AddRef)
3895
ULONG ( STDMETHODCALLTYPE *AddRef )(
3896
ID3D12VideoDecoder1 * This);
3897
3898
DECLSPEC_XFGVIRT(IUnknown, Release)
3899
ULONG ( STDMETHODCALLTYPE *Release )(
3900
ID3D12VideoDecoder1 * This);
3901
3902
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
3903
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
3904
ID3D12VideoDecoder1 * This,
3905
_In_ REFGUID guid,
3906
_Inout_ UINT *pDataSize,
3907
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
3908
3909
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
3910
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
3911
ID3D12VideoDecoder1 * This,
3912
_In_ REFGUID guid,
3913
_In_ UINT DataSize,
3914
_In_reads_bytes_opt_( DataSize ) const void *pData);
3915
3916
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
3917
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
3918
ID3D12VideoDecoder1 * This,
3919
_In_ REFGUID guid,
3920
_In_opt_ const IUnknown *pData);
3921
3922
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
3923
HRESULT ( STDMETHODCALLTYPE *SetName )(
3924
ID3D12VideoDecoder1 * This,
3925
_In_z_ LPCWSTR Name);
3926
3927
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
3928
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
3929
ID3D12VideoDecoder1 * This,
3930
REFIID riid,
3931
_COM_Outptr_opt_ void **ppvDevice);
3932
3933
DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc)
3934
#if !defined(_WIN32)
3935
D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )(
3936
ID3D12VideoDecoder1 * This);
3937
3938
#else
3939
D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )(
3940
ID3D12VideoDecoder1 * This,
3941
D3D12_VIDEO_DECODER_DESC * RetVal);
3942
3943
#endif
3944
3945
DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession)
3946
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
3947
ID3D12VideoDecoder1 * This,
3948
REFIID riid,
3949
_COM_Outptr_opt_ void **ppProtectedSession);
3950
3951
END_INTERFACE
3952
} ID3D12VideoDecoder1Vtbl;
3953
3954
interface ID3D12VideoDecoder1
3955
{
3956
CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl;
3957
};
3958
3959
3960
3961
#ifdef COBJMACROS
3962
3963
3964
#define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \
3965
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3966
3967
#define ID3D12VideoDecoder1_AddRef(This) \
3968
( (This)->lpVtbl -> AddRef(This) )
3969
3970
#define ID3D12VideoDecoder1_Release(This) \
3971
( (This)->lpVtbl -> Release(This) )
3972
3973
3974
#define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \
3975
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
3976
3977
#define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \
3978
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
3979
3980
#define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \
3981
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
3982
3983
#define ID3D12VideoDecoder1_SetName(This,Name) \
3984
( (This)->lpVtbl -> SetName(This,Name) )
3985
3986
3987
#define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \
3988
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
3989
3990
3991
#if !defined(_WIN32)
3992
3993
#define ID3D12VideoDecoder1_GetDesc(This) \
3994
( (This)->lpVtbl -> GetDesc(This) )
3995
#else
3996
#define ID3D12VideoDecoder1_GetDesc(This,RetVal) \
3997
( (This)->lpVtbl -> GetDesc(This,RetVal) )
3998
#endif
3999
4000
4001
#define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4002
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4003
4004
#endif /* COBJMACROS */
4005
4006
4007
#endif /* C style interface */
4008
4009
4010
4011
4012
#endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */
4013
4014
4015
#ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__
4016
#define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__
4017
4018
/* interface ID3D12VideoDecoderHeap1 */
4019
/* [unique][local][object][uuid] */
4020
4021
4022
EXTERN_C const IID IID_ID3D12VideoDecoderHeap1;
4023
4024
#if defined(__cplusplus) && !defined(CINTERFACE)
4025
4026
MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26")
4027
ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap
4028
{
4029
public:
4030
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
4031
REFIID riid,
4032
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
4033
4034
};
4035
4036
4037
#else /* C style interface */
4038
4039
typedef struct ID3D12VideoDecoderHeap1Vtbl
4040
{
4041
BEGIN_INTERFACE
4042
4043
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4044
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4045
ID3D12VideoDecoderHeap1 * This,
4046
REFIID riid,
4047
_COM_Outptr_ void **ppvObject);
4048
4049
DECLSPEC_XFGVIRT(IUnknown, AddRef)
4050
ULONG ( STDMETHODCALLTYPE *AddRef )(
4051
ID3D12VideoDecoderHeap1 * This);
4052
4053
DECLSPEC_XFGVIRT(IUnknown, Release)
4054
ULONG ( STDMETHODCALLTYPE *Release )(
4055
ID3D12VideoDecoderHeap1 * This);
4056
4057
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4058
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4059
ID3D12VideoDecoderHeap1 * This,
4060
_In_ REFGUID guid,
4061
_Inout_ UINT *pDataSize,
4062
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
4063
4064
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4065
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4066
ID3D12VideoDecoderHeap1 * This,
4067
_In_ REFGUID guid,
4068
_In_ UINT DataSize,
4069
_In_reads_bytes_opt_( DataSize ) const void *pData);
4070
4071
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4072
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4073
ID3D12VideoDecoderHeap1 * This,
4074
_In_ REFGUID guid,
4075
_In_opt_ const IUnknown *pData);
4076
4077
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4078
HRESULT ( STDMETHODCALLTYPE *SetName )(
4079
ID3D12VideoDecoderHeap1 * This,
4080
_In_z_ LPCWSTR Name);
4081
4082
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4083
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4084
ID3D12VideoDecoderHeap1 * This,
4085
REFIID riid,
4086
_COM_Outptr_opt_ void **ppvDevice);
4087
4088
DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc)
4089
#if !defined(_WIN32)
4090
D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )(
4091
ID3D12VideoDecoderHeap1 * This);
4092
4093
#else
4094
D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )(
4095
ID3D12VideoDecoderHeap1 * This,
4096
D3D12_VIDEO_DECODER_HEAP_DESC * RetVal);
4097
4098
#endif
4099
4100
DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession)
4101
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
4102
ID3D12VideoDecoderHeap1 * This,
4103
REFIID riid,
4104
_COM_Outptr_opt_ void **ppProtectedSession);
4105
4106
END_INTERFACE
4107
} ID3D12VideoDecoderHeap1Vtbl;
4108
4109
interface ID3D12VideoDecoderHeap1
4110
{
4111
CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl;
4112
};
4113
4114
4115
4116
#ifdef COBJMACROS
4117
4118
4119
#define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \
4120
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4121
4122
#define ID3D12VideoDecoderHeap1_AddRef(This) \
4123
( (This)->lpVtbl -> AddRef(This) )
4124
4125
#define ID3D12VideoDecoderHeap1_Release(This) \
4126
( (This)->lpVtbl -> Release(This) )
4127
4128
4129
#define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \
4130
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4131
4132
#define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \
4133
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4134
4135
#define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \
4136
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4137
4138
#define ID3D12VideoDecoderHeap1_SetName(This,Name) \
4139
( (This)->lpVtbl -> SetName(This,Name) )
4140
4141
4142
#define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \
4143
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4144
4145
4146
#if !defined(_WIN32)
4147
4148
#define ID3D12VideoDecoderHeap1_GetDesc(This) \
4149
( (This)->lpVtbl -> GetDesc(This) )
4150
#else
4151
#define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \
4152
( (This)->lpVtbl -> GetDesc(This,RetVal) )
4153
#endif
4154
4155
4156
#define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4157
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4158
4159
#endif /* COBJMACROS */
4160
4161
4162
#endif /* C style interface */
4163
4164
4165
4166
4167
#endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */
4168
4169
4170
#ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__
4171
#define __ID3D12VideoProcessor1_INTERFACE_DEFINED__
4172
4173
/* interface ID3D12VideoProcessor1 */
4174
/* [unique][local][object][uuid] */
4175
4176
4177
EXTERN_C const IID IID_ID3D12VideoProcessor1;
4178
4179
#if defined(__cplusplus) && !defined(CINTERFACE)
4180
4181
MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C")
4182
ID3D12VideoProcessor1 : public ID3D12VideoProcessor
4183
{
4184
public:
4185
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
4186
REFIID riid,
4187
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
4188
4189
};
4190
4191
4192
#else /* C style interface */
4193
4194
typedef struct ID3D12VideoProcessor1Vtbl
4195
{
4196
BEGIN_INTERFACE
4197
4198
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4199
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4200
ID3D12VideoProcessor1 * This,
4201
REFIID riid,
4202
_COM_Outptr_ void **ppvObject);
4203
4204
DECLSPEC_XFGVIRT(IUnknown, AddRef)
4205
ULONG ( STDMETHODCALLTYPE *AddRef )(
4206
ID3D12VideoProcessor1 * This);
4207
4208
DECLSPEC_XFGVIRT(IUnknown, Release)
4209
ULONG ( STDMETHODCALLTYPE *Release )(
4210
ID3D12VideoProcessor1 * This);
4211
4212
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4213
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4214
ID3D12VideoProcessor1 * This,
4215
_In_ REFGUID guid,
4216
_Inout_ UINT *pDataSize,
4217
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
4218
4219
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4220
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4221
ID3D12VideoProcessor1 * This,
4222
_In_ REFGUID guid,
4223
_In_ UINT DataSize,
4224
_In_reads_bytes_opt_( DataSize ) const void *pData);
4225
4226
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4227
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4228
ID3D12VideoProcessor1 * This,
4229
_In_ REFGUID guid,
4230
_In_opt_ const IUnknown *pData);
4231
4232
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4233
HRESULT ( STDMETHODCALLTYPE *SetName )(
4234
ID3D12VideoProcessor1 * This,
4235
_In_z_ LPCWSTR Name);
4236
4237
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4238
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4239
ID3D12VideoProcessor1 * This,
4240
REFIID riid,
4241
_COM_Outptr_opt_ void **ppvDevice);
4242
4243
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask)
4244
UINT ( STDMETHODCALLTYPE *GetNodeMask )(
4245
ID3D12VideoProcessor1 * This);
4246
4247
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs)
4248
UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )(
4249
ID3D12VideoProcessor1 * This);
4250
4251
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs)
4252
HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )(
4253
ID3D12VideoProcessor1 * This,
4254
UINT NumInputStreamDescs,
4255
_Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs);
4256
4257
DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc)
4258
#if !defined(_WIN32)
4259
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )(
4260
ID3D12VideoProcessor1 * This);
4261
4262
#else
4263
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )(
4264
ID3D12VideoProcessor1 * This,
4265
D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal);
4266
4267
#endif
4268
4269
DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession)
4270
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
4271
ID3D12VideoProcessor1 * This,
4272
REFIID riid,
4273
_COM_Outptr_opt_ void **ppProtectedSession);
4274
4275
END_INTERFACE
4276
} ID3D12VideoProcessor1Vtbl;
4277
4278
interface ID3D12VideoProcessor1
4279
{
4280
CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl;
4281
};
4282
4283
4284
4285
#ifdef COBJMACROS
4286
4287
4288
#define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \
4289
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4290
4291
#define ID3D12VideoProcessor1_AddRef(This) \
4292
( (This)->lpVtbl -> AddRef(This) )
4293
4294
#define ID3D12VideoProcessor1_Release(This) \
4295
( (This)->lpVtbl -> Release(This) )
4296
4297
4298
#define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \
4299
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4300
4301
#define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \
4302
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4303
4304
#define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \
4305
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4306
4307
#define ID3D12VideoProcessor1_SetName(This,Name) \
4308
( (This)->lpVtbl -> SetName(This,Name) )
4309
4310
4311
#define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \
4312
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4313
4314
4315
4316
#define ID3D12VideoProcessor1_GetNodeMask(This) \
4317
( (This)->lpVtbl -> GetNodeMask(This) )
4318
4319
#define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \
4320
( (This)->lpVtbl -> GetNumInputStreamDescs(This) )
4321
4322
#define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \
4323
( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) )
4324
#if !defined(_WIN32)
4325
4326
#define ID3D12VideoProcessor1_GetOutputStreamDesc(This) \
4327
( (This)->lpVtbl -> GetOutputStreamDesc(This) )
4328
#else
4329
#define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \
4330
( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) )
4331
#endif
4332
4333
4334
#define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4335
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4336
4337
#endif /* COBJMACROS */
4338
4339
4340
#endif /* C style interface */
4341
4342
4343
4344
4345
#endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */
4346
4347
4348
#ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__
4349
#define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__
4350
4351
/* interface ID3D12VideoExtensionCommand */
4352
/* [unique][local][object][uuid] */
4353
4354
4355
EXTERN_C const IID IID_ID3D12VideoExtensionCommand;
4356
4357
#if defined(__cplusplus) && !defined(CINTERFACE)
4358
4359
MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4")
4360
ID3D12VideoExtensionCommand : public ID3D12Pageable
4361
{
4362
public:
4363
#if defined(_MSC_VER) || !defined(_WIN32)
4364
virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0;
4365
#else
4366
virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC *STDMETHODCALLTYPE GetDesc(
4367
D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal) = 0;
4368
#endif
4369
4370
virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession(
4371
REFIID riid,
4372
_COM_Outptr_opt_ void **ppProtectedSession) = 0;
4373
4374
};
4375
4376
4377
#else /* C style interface */
4378
4379
typedef struct ID3D12VideoExtensionCommandVtbl
4380
{
4381
BEGIN_INTERFACE
4382
4383
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4384
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4385
ID3D12VideoExtensionCommand * This,
4386
REFIID riid,
4387
_COM_Outptr_ void **ppvObject);
4388
4389
DECLSPEC_XFGVIRT(IUnknown, AddRef)
4390
ULONG ( STDMETHODCALLTYPE *AddRef )(
4391
ID3D12VideoExtensionCommand * This);
4392
4393
DECLSPEC_XFGVIRT(IUnknown, Release)
4394
ULONG ( STDMETHODCALLTYPE *Release )(
4395
ID3D12VideoExtensionCommand * This);
4396
4397
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4398
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4399
ID3D12VideoExtensionCommand * This,
4400
_In_ REFGUID guid,
4401
_Inout_ UINT *pDataSize,
4402
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
4403
4404
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4405
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4406
ID3D12VideoExtensionCommand * This,
4407
_In_ REFGUID guid,
4408
_In_ UINT DataSize,
4409
_In_reads_bytes_opt_( DataSize ) const void *pData);
4410
4411
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4412
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4413
ID3D12VideoExtensionCommand * This,
4414
_In_ REFGUID guid,
4415
_In_opt_ const IUnknown *pData);
4416
4417
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4418
HRESULT ( STDMETHODCALLTYPE *SetName )(
4419
ID3D12VideoExtensionCommand * This,
4420
_In_z_ LPCWSTR Name);
4421
4422
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4423
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4424
ID3D12VideoExtensionCommand * This,
4425
REFIID riid,
4426
_COM_Outptr_opt_ void **ppvDevice);
4427
4428
DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc)
4429
#if !defined(_WIN32)
4430
D3D12_VIDEO_EXTENSION_COMMAND_DESC ( STDMETHODCALLTYPE *GetDesc )(
4431
ID3D12VideoExtensionCommand * This);
4432
4433
#else
4434
D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )(
4435
ID3D12VideoExtensionCommand * This,
4436
D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal);
4437
4438
#endif
4439
4440
DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession)
4441
HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )(
4442
ID3D12VideoExtensionCommand * This,
4443
REFIID riid,
4444
_COM_Outptr_opt_ void **ppProtectedSession);
4445
4446
END_INTERFACE
4447
} ID3D12VideoExtensionCommandVtbl;
4448
4449
interface ID3D12VideoExtensionCommand
4450
{
4451
CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl;
4452
};
4453
4454
4455
4456
#ifdef COBJMACROS
4457
4458
4459
#define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \
4460
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4461
4462
#define ID3D12VideoExtensionCommand_AddRef(This) \
4463
( (This)->lpVtbl -> AddRef(This) )
4464
4465
#define ID3D12VideoExtensionCommand_Release(This) \
4466
( (This)->lpVtbl -> Release(This) )
4467
4468
4469
#define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \
4470
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4471
4472
#define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \
4473
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4474
4475
#define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \
4476
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4477
4478
#define ID3D12VideoExtensionCommand_SetName(This,Name) \
4479
( (This)->lpVtbl -> SetName(This,Name) )
4480
4481
4482
#define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \
4483
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4484
4485
4486
#if !defined(_WIN32)
4487
4488
#define ID3D12VideoExtensionCommand_GetDesc(This) \
4489
( (This)->lpVtbl -> GetDesc(This) )
4490
#else
4491
#define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \
4492
( (This)->lpVtbl -> GetDesc(This,RetVal) )
4493
#endif
4494
4495
#define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \
4496
( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) )
4497
4498
#endif /* COBJMACROS */
4499
4500
4501
#endif /* C style interface */
4502
4503
4504
4505
4506
#endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */
4507
4508
4509
#ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__
4510
#define __ID3D12VideoDevice2_INTERFACE_DEFINED__
4511
4512
/* interface ID3D12VideoDevice2 */
4513
/* [unique][local][object][uuid] */
4514
4515
4516
EXTERN_C const IID IID_ID3D12VideoDevice2;
4517
4518
#if defined(__cplusplus) && !defined(CINTERFACE)
4519
4520
MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513")
4521
ID3D12VideoDevice2 : public ID3D12VideoDevice1
4522
{
4523
public:
4524
virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1(
4525
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4526
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4527
_In_ REFIID riid,
4528
_COM_Outptr_ void **ppVideoDecoder) = 0;
4529
4530
virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1(
4531
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4532
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4533
_In_ REFIID riid,
4534
_COM_Outptr_ void **ppVideoDecoderHeap) = 0;
4535
4536
virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1(
4537
UINT NodeMask,
4538
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4539
UINT NumInputStreamDescs,
4540
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4541
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4542
_In_ REFIID riid,
4543
_COM_Outptr_ void **ppVideoProcessor) = 0;
4544
4545
virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand(
4546
_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,
4547
_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,
4548
SIZE_T CreationParametersDataSizeInBytes,
4549
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4550
_In_ REFIID riid,
4551
_COM_Outptr_ void **ppVideoExtensionCommand) = 0;
4552
4553
virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand(
4554
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4555
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4556
SIZE_T ExecutionParametersSizeInBytes,
4557
_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,
4558
SIZE_T OutputDataSizeInBytes) = 0;
4559
4560
};
4561
4562
4563
#else /* C style interface */
4564
4565
typedef struct ID3D12VideoDevice2Vtbl
4566
{
4567
BEGIN_INTERFACE
4568
4569
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4570
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4571
ID3D12VideoDevice2 * This,
4572
REFIID riid,
4573
_COM_Outptr_ void **ppvObject);
4574
4575
DECLSPEC_XFGVIRT(IUnknown, AddRef)
4576
ULONG ( STDMETHODCALLTYPE *AddRef )(
4577
ID3D12VideoDevice2 * This);
4578
4579
DECLSPEC_XFGVIRT(IUnknown, Release)
4580
ULONG ( STDMETHODCALLTYPE *Release )(
4581
ID3D12VideoDevice2 * This);
4582
4583
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
4584
HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
4585
ID3D12VideoDevice2 * This,
4586
D3D12_FEATURE_VIDEO FeatureVideo,
4587
_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
4588
UINT FeatureSupportDataSize);
4589
4590
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
4591
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
4592
ID3D12VideoDevice2 * This,
4593
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4594
_In_ REFIID riid,
4595
_COM_Outptr_ void **ppVideoDecoder);
4596
4597
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
4598
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
4599
ID3D12VideoDevice2 * This,
4600
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4601
_In_ REFIID riid,
4602
_COM_Outptr_ void **ppVideoDecoderHeap);
4603
4604
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
4605
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
4606
ID3D12VideoDevice2 * This,
4607
UINT NodeMask,
4608
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4609
UINT NumInputStreamDescs,
4610
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4611
_In_ REFIID riid,
4612
_COM_Outptr_ void **ppVideoProcessor);
4613
4614
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)
4615
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(
4616
ID3D12VideoDevice2 * This,
4617
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
4618
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4619
_In_ REFIID riid,
4620
_COM_Outptr_ void **ppVideoMotionEstimator);
4621
4622
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)
4623
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(
4624
ID3D12VideoDevice2 * This,
4625
_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
4626
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4627
_In_ REFIID riid,
4628
_COM_Outptr_ void **ppVideoMotionVectorHeap);
4629
4630
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)
4631
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(
4632
ID3D12VideoDevice2 * This,
4633
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
4634
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4635
_In_ REFIID riid,
4636
_COM_Outptr_ void **ppVideoDecoder);
4637
4638
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)
4639
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(
4640
ID3D12VideoDevice2 * This,
4641
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
4642
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4643
_In_ REFIID riid,
4644
_COM_Outptr_ void **ppVideoDecoderHeap);
4645
4646
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)
4647
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(
4648
ID3D12VideoDevice2 * This,
4649
UINT NodeMask,
4650
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
4651
UINT NumInputStreamDescs,
4652
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
4653
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4654
_In_ REFIID riid,
4655
_COM_Outptr_ void **ppVideoProcessor);
4656
4657
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)
4658
HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(
4659
ID3D12VideoDevice2 * This,
4660
_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,
4661
_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,
4662
SIZE_T CreationParametersDataSizeInBytes,
4663
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
4664
_In_ REFIID riid,
4665
_COM_Outptr_ void **ppVideoExtensionCommand);
4666
4667
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)
4668
HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
4669
ID3D12VideoDevice2 * This,
4670
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4671
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4672
SIZE_T ExecutionParametersSizeInBytes,
4673
_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,
4674
SIZE_T OutputDataSizeInBytes);
4675
4676
END_INTERFACE
4677
} ID3D12VideoDevice2Vtbl;
4678
4679
interface ID3D12VideoDevice2
4680
{
4681
CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl;
4682
};
4683
4684
4685
4686
#ifdef COBJMACROS
4687
4688
4689
#define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \
4690
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4691
4692
#define ID3D12VideoDevice2_AddRef(This) \
4693
( (This)->lpVtbl -> AddRef(This) )
4694
4695
#define ID3D12VideoDevice2_Release(This) \
4696
( (This)->lpVtbl -> Release(This) )
4697
4698
4699
#define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
4700
( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
4701
4702
#define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
4703
( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
4704
4705
#define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
4706
( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
4707
4708
#define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
4709
( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
4710
4711
4712
#define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \
4713
( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )
4714
4715
#define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \
4716
( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )
4717
4718
4719
#define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \
4720
( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )
4721
4722
#define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \
4723
( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )
4724
4725
#define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \
4726
( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )
4727
4728
#define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \
4729
( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )
4730
4731
#define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \
4732
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )
4733
4734
#endif /* COBJMACROS */
4735
4736
4737
#endif /* C style interface */
4738
4739
4740
4741
4742
#endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */
4743
4744
4745
#ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__
4746
#define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__
4747
4748
/* interface ID3D12VideoDecodeCommandList2 */
4749
/* [unique][local][object][uuid] */
4750
4751
4752
EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2;
4753
4754
#if defined(__cplusplus) && !defined(CINTERFACE)
4755
4756
MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729")
4757
ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList1
4758
{
4759
public:
4760
virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
4761
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
4762
4763
virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
4764
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4765
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
4766
SIZE_T InitializationParametersSizeInBytes) = 0;
4767
4768
virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
4769
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4770
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4771
SIZE_T ExecutionParametersSizeInBytes) = 0;
4772
4773
};
4774
4775
4776
#else /* C style interface */
4777
4778
typedef struct ID3D12VideoDecodeCommandList2Vtbl
4779
{
4780
BEGIN_INTERFACE
4781
4782
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
4783
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4784
ID3D12VideoDecodeCommandList2 * This,
4785
REFIID riid,
4786
_COM_Outptr_ void **ppvObject);
4787
4788
DECLSPEC_XFGVIRT(IUnknown, AddRef)
4789
ULONG ( STDMETHODCALLTYPE *AddRef )(
4790
ID3D12VideoDecodeCommandList2 * This);
4791
4792
DECLSPEC_XFGVIRT(IUnknown, Release)
4793
ULONG ( STDMETHODCALLTYPE *Release )(
4794
ID3D12VideoDecodeCommandList2 * This);
4795
4796
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
4797
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
4798
ID3D12VideoDecodeCommandList2 * This,
4799
_In_ REFGUID guid,
4800
_Inout_ UINT *pDataSize,
4801
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
4802
4803
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
4804
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
4805
ID3D12VideoDecodeCommandList2 * This,
4806
_In_ REFGUID guid,
4807
_In_ UINT DataSize,
4808
_In_reads_bytes_opt_( DataSize ) const void *pData);
4809
4810
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
4811
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
4812
ID3D12VideoDecodeCommandList2 * This,
4813
_In_ REFGUID guid,
4814
_In_opt_ const IUnknown *pData);
4815
4816
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
4817
HRESULT ( STDMETHODCALLTYPE *SetName )(
4818
ID3D12VideoDecodeCommandList2 * This,
4819
_In_z_ LPCWSTR Name);
4820
4821
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
4822
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
4823
ID3D12VideoDecodeCommandList2 * This,
4824
REFIID riid,
4825
_COM_Outptr_opt_ void **ppvDevice);
4826
4827
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
4828
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
4829
ID3D12VideoDecodeCommandList2 * This);
4830
4831
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
4832
HRESULT ( STDMETHODCALLTYPE *Close )(
4833
ID3D12VideoDecodeCommandList2 * This);
4834
4835
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
4836
HRESULT ( STDMETHODCALLTYPE *Reset )(
4837
ID3D12VideoDecodeCommandList2 * This,
4838
_In_ ID3D12CommandAllocator *pAllocator);
4839
4840
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
4841
void ( STDMETHODCALLTYPE *ClearState )(
4842
ID3D12VideoDecodeCommandList2 * This);
4843
4844
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
4845
void ( STDMETHODCALLTYPE *ResourceBarrier )(
4846
ID3D12VideoDecodeCommandList2 * This,
4847
_In_ UINT NumBarriers,
4848
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
4849
4850
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
4851
void ( STDMETHODCALLTYPE *DiscardResource )(
4852
ID3D12VideoDecodeCommandList2 * This,
4853
_In_ ID3D12Resource *pResource,
4854
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
4855
4856
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
4857
void ( STDMETHODCALLTYPE *BeginQuery )(
4858
ID3D12VideoDecodeCommandList2 * This,
4859
_In_ ID3D12QueryHeap *pQueryHeap,
4860
_In_ D3D12_QUERY_TYPE Type,
4861
_In_ UINT Index);
4862
4863
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
4864
void ( STDMETHODCALLTYPE *EndQuery )(
4865
ID3D12VideoDecodeCommandList2 * This,
4866
_In_ ID3D12QueryHeap *pQueryHeap,
4867
_In_ D3D12_QUERY_TYPE Type,
4868
_In_ UINT Index);
4869
4870
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
4871
void ( STDMETHODCALLTYPE *ResolveQueryData )(
4872
ID3D12VideoDecodeCommandList2 * This,
4873
_In_ ID3D12QueryHeap *pQueryHeap,
4874
_In_ D3D12_QUERY_TYPE Type,
4875
_In_ UINT StartIndex,
4876
_In_ UINT NumQueries,
4877
_In_ ID3D12Resource *pDestinationBuffer,
4878
_In_ UINT64 AlignedDestinationBufferOffset);
4879
4880
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
4881
void ( STDMETHODCALLTYPE *SetPredication )(
4882
ID3D12VideoDecodeCommandList2 * This,
4883
_In_opt_ ID3D12Resource *pBuffer,
4884
_In_ UINT64 AlignedBufferOffset,
4885
_In_ D3D12_PREDICATION_OP Operation);
4886
4887
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
4888
void ( STDMETHODCALLTYPE *SetMarker )(
4889
ID3D12VideoDecodeCommandList2 * This,
4890
UINT Metadata,
4891
_In_reads_bytes_opt_(Size) const void *pData,
4892
UINT Size);
4893
4894
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
4895
void ( STDMETHODCALLTYPE *BeginEvent )(
4896
ID3D12VideoDecodeCommandList2 * This,
4897
UINT Metadata,
4898
_In_reads_bytes_opt_(Size) const void *pData,
4899
UINT Size);
4900
4901
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
4902
void ( STDMETHODCALLTYPE *EndEvent )(
4903
ID3D12VideoDecodeCommandList2 * This);
4904
4905
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
4906
void ( STDMETHODCALLTYPE *DecodeFrame )(
4907
ID3D12VideoDecodeCommandList2 * This,
4908
_In_ ID3D12VideoDecoder *pDecoder,
4909
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
4910
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
4911
4912
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
4913
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
4914
ID3D12VideoDecodeCommandList2 * This,
4915
UINT Count,
4916
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
4917
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
4918
4919
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)
4920
void ( STDMETHODCALLTYPE *DecodeFrame1 )(
4921
ID3D12VideoDecodeCommandList2 * This,
4922
_In_ ID3D12VideoDecoder *pDecoder,
4923
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
4924
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
4925
4926
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)
4927
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
4928
ID3D12VideoDecodeCommandList2 * This,
4929
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
4930
4931
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)
4932
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
4933
ID3D12VideoDecodeCommandList2 * This,
4934
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4935
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
4936
SIZE_T InitializationParametersSizeInBytes);
4937
4938
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)
4939
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
4940
ID3D12VideoDecodeCommandList2 * This,
4941
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
4942
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
4943
SIZE_T ExecutionParametersSizeInBytes);
4944
4945
END_INTERFACE
4946
} ID3D12VideoDecodeCommandList2Vtbl;
4947
4948
interface ID3D12VideoDecodeCommandList2
4949
{
4950
CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl;
4951
};
4952
4953
4954
4955
#ifdef COBJMACROS
4956
4957
4958
#define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \
4959
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4960
4961
#define ID3D12VideoDecodeCommandList2_AddRef(This) \
4962
( (This)->lpVtbl -> AddRef(This) )
4963
4964
#define ID3D12VideoDecodeCommandList2_Release(This) \
4965
( (This)->lpVtbl -> Release(This) )
4966
4967
4968
#define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
4969
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
4970
4971
#define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \
4972
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
4973
4974
#define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \
4975
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
4976
4977
#define ID3D12VideoDecodeCommandList2_SetName(This,Name) \
4978
( (This)->lpVtbl -> SetName(This,Name) )
4979
4980
4981
#define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \
4982
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
4983
4984
4985
#define ID3D12VideoDecodeCommandList2_GetType(This) \
4986
( (This)->lpVtbl -> GetType(This) )
4987
4988
4989
#define ID3D12VideoDecodeCommandList2_Close(This) \
4990
( (This)->lpVtbl -> Close(This) )
4991
4992
#define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \
4993
( (This)->lpVtbl -> Reset(This,pAllocator) )
4994
4995
#define ID3D12VideoDecodeCommandList2_ClearState(This) \
4996
( (This)->lpVtbl -> ClearState(This) )
4997
4998
#define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
4999
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5000
5001
#define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \
5002
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5003
5004
#define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
5005
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5006
5007
#define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
5008
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5009
5010
#define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5011
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5012
5013
#define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5014
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5015
5016
#define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \
5017
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5018
5019
#define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \
5020
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5021
5022
#define ID3D12VideoDecodeCommandList2_EndEvent(This) \
5023
( (This)->lpVtbl -> EndEvent(This) )
5024
5025
#define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
5026
( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
5027
5028
#define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
5029
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5030
5031
5032
#define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \
5033
( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )
5034
5035
5036
#define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \
5037
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5038
5039
#define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5040
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5041
5042
#define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5043
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5044
5045
#endif /* COBJMACROS */
5046
5047
5048
#endif /* C style interface */
5049
5050
5051
5052
5053
#endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */
5054
5055
5056
#ifndef __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__
5057
#define __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__
5058
5059
/* interface ID3D12VideoDecodeCommandList3 */
5060
/* [unique][local][object][uuid] */
5061
5062
5063
EXTERN_C const IID IID_ID3D12VideoDecodeCommandList3;
5064
5065
#if defined(__cplusplus) && !defined(CINTERFACE)
5066
5067
MIDL_INTERFACE("2aee8c37-9562-42da-8abf-61efeb2e4513")
5068
ID3D12VideoDecodeCommandList3 : public ID3D12VideoDecodeCommandList2
5069
{
5070
public:
5071
virtual void STDMETHODCALLTYPE Barrier(
5072
UINT32 NumBarrierGroups,
5073
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
5074
5075
};
5076
5077
5078
#else /* C style interface */
5079
5080
typedef struct ID3D12VideoDecodeCommandList3Vtbl
5081
{
5082
BEGIN_INTERFACE
5083
5084
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5085
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5086
ID3D12VideoDecodeCommandList3 * This,
5087
REFIID riid,
5088
_COM_Outptr_ void **ppvObject);
5089
5090
DECLSPEC_XFGVIRT(IUnknown, AddRef)
5091
ULONG ( STDMETHODCALLTYPE *AddRef )(
5092
ID3D12VideoDecodeCommandList3 * This);
5093
5094
DECLSPEC_XFGVIRT(IUnknown, Release)
5095
ULONG ( STDMETHODCALLTYPE *Release )(
5096
ID3D12VideoDecodeCommandList3 * This);
5097
5098
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5099
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5100
ID3D12VideoDecodeCommandList3 * This,
5101
_In_ REFGUID guid,
5102
_Inout_ UINT *pDataSize,
5103
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
5104
5105
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5106
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5107
ID3D12VideoDecodeCommandList3 * This,
5108
_In_ REFGUID guid,
5109
_In_ UINT DataSize,
5110
_In_reads_bytes_opt_( DataSize ) const void *pData);
5111
5112
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5113
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5114
ID3D12VideoDecodeCommandList3 * This,
5115
_In_ REFGUID guid,
5116
_In_opt_ const IUnknown *pData);
5117
5118
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5119
HRESULT ( STDMETHODCALLTYPE *SetName )(
5120
ID3D12VideoDecodeCommandList3 * This,
5121
_In_z_ LPCWSTR Name);
5122
5123
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5124
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5125
ID3D12VideoDecodeCommandList3 * This,
5126
REFIID riid,
5127
_COM_Outptr_opt_ void **ppvDevice);
5128
5129
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
5130
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
5131
ID3D12VideoDecodeCommandList3 * This);
5132
5133
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close)
5134
HRESULT ( STDMETHODCALLTYPE *Close )(
5135
ID3D12VideoDecodeCommandList3 * This);
5136
5137
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset)
5138
HRESULT ( STDMETHODCALLTYPE *Reset )(
5139
ID3D12VideoDecodeCommandList3 * This,
5140
_In_ ID3D12CommandAllocator *pAllocator);
5141
5142
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState)
5143
void ( STDMETHODCALLTYPE *ClearState )(
5144
ID3D12VideoDecodeCommandList3 * This);
5145
5146
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier)
5147
void ( STDMETHODCALLTYPE *ResourceBarrier )(
5148
ID3D12VideoDecodeCommandList3 * This,
5149
_In_ UINT NumBarriers,
5150
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
5151
5152
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource)
5153
void ( STDMETHODCALLTYPE *DiscardResource )(
5154
ID3D12VideoDecodeCommandList3 * This,
5155
_In_ ID3D12Resource *pResource,
5156
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
5157
5158
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery)
5159
void ( STDMETHODCALLTYPE *BeginQuery )(
5160
ID3D12VideoDecodeCommandList3 * This,
5161
_In_ ID3D12QueryHeap *pQueryHeap,
5162
_In_ D3D12_QUERY_TYPE Type,
5163
_In_ UINT Index);
5164
5165
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery)
5166
void ( STDMETHODCALLTYPE *EndQuery )(
5167
ID3D12VideoDecodeCommandList3 * This,
5168
_In_ ID3D12QueryHeap *pQueryHeap,
5169
_In_ D3D12_QUERY_TYPE Type,
5170
_In_ UINT Index);
5171
5172
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData)
5173
void ( STDMETHODCALLTYPE *ResolveQueryData )(
5174
ID3D12VideoDecodeCommandList3 * This,
5175
_In_ ID3D12QueryHeap *pQueryHeap,
5176
_In_ D3D12_QUERY_TYPE Type,
5177
_In_ UINT StartIndex,
5178
_In_ UINT NumQueries,
5179
_In_ ID3D12Resource *pDestinationBuffer,
5180
_In_ UINT64 AlignedDestinationBufferOffset);
5181
5182
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication)
5183
void ( STDMETHODCALLTYPE *SetPredication )(
5184
ID3D12VideoDecodeCommandList3 * This,
5185
_In_opt_ ID3D12Resource *pBuffer,
5186
_In_ UINT64 AlignedBufferOffset,
5187
_In_ D3D12_PREDICATION_OP Operation);
5188
5189
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker)
5190
void ( STDMETHODCALLTYPE *SetMarker )(
5191
ID3D12VideoDecodeCommandList3 * This,
5192
UINT Metadata,
5193
_In_reads_bytes_opt_(Size) const void *pData,
5194
UINT Size);
5195
5196
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent)
5197
void ( STDMETHODCALLTYPE *BeginEvent )(
5198
ID3D12VideoDecodeCommandList3 * This,
5199
UINT Metadata,
5200
_In_reads_bytes_opt_(Size) const void *pData,
5201
UINT Size);
5202
5203
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent)
5204
void ( STDMETHODCALLTYPE *EndEvent )(
5205
ID3D12VideoDecodeCommandList3 * This);
5206
5207
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame)
5208
void ( STDMETHODCALLTYPE *DecodeFrame )(
5209
ID3D12VideoDecodeCommandList3 * This,
5210
_In_ ID3D12VideoDecoder *pDecoder,
5211
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5212
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
5213
5214
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate)
5215
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
5216
ID3D12VideoDecodeCommandList3 * This,
5217
UINT Count,
5218
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
5219
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
5220
5221
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1)
5222
void ( STDMETHODCALLTYPE *DecodeFrame1 )(
5223
ID3D12VideoDecodeCommandList3 * This,
5224
_In_ ID3D12VideoDecoder *pDecoder,
5225
_In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments,
5226
_In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments);
5227
5228
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession)
5229
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
5230
ID3D12VideoDecodeCommandList3 * This,
5231
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
5232
5233
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand)
5234
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
5235
ID3D12VideoDecodeCommandList3 * This,
5236
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5237
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5238
SIZE_T InitializationParametersSizeInBytes);
5239
5240
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand)
5241
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
5242
ID3D12VideoDecodeCommandList3 * This,
5243
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5244
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5245
SIZE_T ExecutionParametersSizeInBytes);
5246
5247
DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList3, Barrier)
5248
void ( STDMETHODCALLTYPE *Barrier )(
5249
ID3D12VideoDecodeCommandList3 * This,
5250
UINT32 NumBarrierGroups,
5251
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
5252
5253
END_INTERFACE
5254
} ID3D12VideoDecodeCommandList3Vtbl;
5255
5256
interface ID3D12VideoDecodeCommandList3
5257
{
5258
CONST_VTBL struct ID3D12VideoDecodeCommandList3Vtbl *lpVtbl;
5259
};
5260
5261
5262
5263
#ifdef COBJMACROS
5264
5265
5266
#define ID3D12VideoDecodeCommandList3_QueryInterface(This,riid,ppvObject) \
5267
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5268
5269
#define ID3D12VideoDecodeCommandList3_AddRef(This) \
5270
( (This)->lpVtbl -> AddRef(This) )
5271
5272
#define ID3D12VideoDecodeCommandList3_Release(This) \
5273
( (This)->lpVtbl -> Release(This) )
5274
5275
5276
#define ID3D12VideoDecodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
5277
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5278
5279
#define ID3D12VideoDecodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \
5280
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5281
5282
#define ID3D12VideoDecodeCommandList3_SetPrivateDataInterface(This,guid,pData) \
5283
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5284
5285
#define ID3D12VideoDecodeCommandList3_SetName(This,Name) \
5286
( (This)->lpVtbl -> SetName(This,Name) )
5287
5288
5289
#define ID3D12VideoDecodeCommandList3_GetDevice(This,riid,ppvDevice) \
5290
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5291
5292
5293
#define ID3D12VideoDecodeCommandList3_GetType(This) \
5294
( (This)->lpVtbl -> GetType(This) )
5295
5296
5297
#define ID3D12VideoDecodeCommandList3_Close(This) \
5298
( (This)->lpVtbl -> Close(This) )
5299
5300
#define ID3D12VideoDecodeCommandList3_Reset(This,pAllocator) \
5301
( (This)->lpVtbl -> Reset(This,pAllocator) )
5302
5303
#define ID3D12VideoDecodeCommandList3_ClearState(This) \
5304
( (This)->lpVtbl -> ClearState(This) )
5305
5306
#define ID3D12VideoDecodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
5307
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5308
5309
#define ID3D12VideoDecodeCommandList3_DiscardResource(This,pResource,pRegion) \
5310
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5311
5312
#define ID3D12VideoDecodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
5313
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5314
5315
#define ID3D12VideoDecodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
5316
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5317
5318
#define ID3D12VideoDecodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5319
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5320
5321
#define ID3D12VideoDecodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5322
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5323
5324
#define ID3D12VideoDecodeCommandList3_SetMarker(This,Metadata,pData,Size) \
5325
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5326
5327
#define ID3D12VideoDecodeCommandList3_BeginEvent(This,Metadata,pData,Size) \
5328
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5329
5330
#define ID3D12VideoDecodeCommandList3_EndEvent(This) \
5331
( (This)->lpVtbl -> EndEvent(This) )
5332
5333
#define ID3D12VideoDecodeCommandList3_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \
5334
( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) )
5335
5336
#define ID3D12VideoDecodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
5337
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5338
5339
5340
#define ID3D12VideoDecodeCommandList3_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \
5341
( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) )
5342
5343
5344
#define ID3D12VideoDecodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
5345
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5346
5347
#define ID3D12VideoDecodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5348
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5349
5350
#define ID3D12VideoDecodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5351
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5352
5353
5354
#define ID3D12VideoDecodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \
5355
( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
5356
5357
#endif /* COBJMACROS */
5358
5359
5360
#endif /* C style interface */
5361
5362
5363
5364
5365
#endif /* __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ */
5366
5367
5368
#ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__
5369
#define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__
5370
5371
/* interface ID3D12VideoProcessCommandList2 */
5372
/* [unique][local][object][uuid] */
5373
5374
5375
EXTERN_C const IID IID_ID3D12VideoProcessCommandList2;
5376
5377
#if defined(__cplusplus) && !defined(CINTERFACE)
5378
5379
MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4")
5380
ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList1
5381
{
5382
public:
5383
virtual void STDMETHODCALLTYPE SetProtectedResourceSession(
5384
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0;
5385
5386
virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
5387
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5388
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5389
SIZE_T InitializationParametersSizeInBytes) = 0;
5390
5391
virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
5392
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5393
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5394
SIZE_T ExecutionParametersSizeInBytes) = 0;
5395
5396
};
5397
5398
5399
#else /* C style interface */
5400
5401
typedef struct ID3D12VideoProcessCommandList2Vtbl
5402
{
5403
BEGIN_INTERFACE
5404
5405
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5406
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5407
ID3D12VideoProcessCommandList2 * This,
5408
REFIID riid,
5409
_COM_Outptr_ void **ppvObject);
5410
5411
DECLSPEC_XFGVIRT(IUnknown, AddRef)
5412
ULONG ( STDMETHODCALLTYPE *AddRef )(
5413
ID3D12VideoProcessCommandList2 * This);
5414
5415
DECLSPEC_XFGVIRT(IUnknown, Release)
5416
ULONG ( STDMETHODCALLTYPE *Release )(
5417
ID3D12VideoProcessCommandList2 * This);
5418
5419
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5420
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5421
ID3D12VideoProcessCommandList2 * This,
5422
_In_ REFGUID guid,
5423
_Inout_ UINT *pDataSize,
5424
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
5425
5426
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5427
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5428
ID3D12VideoProcessCommandList2 * This,
5429
_In_ REFGUID guid,
5430
_In_ UINT DataSize,
5431
_In_reads_bytes_opt_( DataSize ) const void *pData);
5432
5433
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5434
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5435
ID3D12VideoProcessCommandList2 * This,
5436
_In_ REFGUID guid,
5437
_In_opt_ const IUnknown *pData);
5438
5439
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5440
HRESULT ( STDMETHODCALLTYPE *SetName )(
5441
ID3D12VideoProcessCommandList2 * This,
5442
_In_z_ LPCWSTR Name);
5443
5444
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5445
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5446
ID3D12VideoProcessCommandList2 * This,
5447
REFIID riid,
5448
_COM_Outptr_opt_ void **ppvDevice);
5449
5450
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
5451
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
5452
ID3D12VideoProcessCommandList2 * This);
5453
5454
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
5455
HRESULT ( STDMETHODCALLTYPE *Close )(
5456
ID3D12VideoProcessCommandList2 * This);
5457
5458
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
5459
HRESULT ( STDMETHODCALLTYPE *Reset )(
5460
ID3D12VideoProcessCommandList2 * This,
5461
_In_ ID3D12CommandAllocator *pAllocator);
5462
5463
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
5464
void ( STDMETHODCALLTYPE *ClearState )(
5465
ID3D12VideoProcessCommandList2 * This);
5466
5467
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
5468
void ( STDMETHODCALLTYPE *ResourceBarrier )(
5469
ID3D12VideoProcessCommandList2 * This,
5470
_In_ UINT NumBarriers,
5471
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
5472
5473
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
5474
void ( STDMETHODCALLTYPE *DiscardResource )(
5475
ID3D12VideoProcessCommandList2 * This,
5476
_In_ ID3D12Resource *pResource,
5477
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
5478
5479
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
5480
void ( STDMETHODCALLTYPE *BeginQuery )(
5481
ID3D12VideoProcessCommandList2 * This,
5482
_In_ ID3D12QueryHeap *pQueryHeap,
5483
_In_ D3D12_QUERY_TYPE Type,
5484
_In_ UINT Index);
5485
5486
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
5487
void ( STDMETHODCALLTYPE *EndQuery )(
5488
ID3D12VideoProcessCommandList2 * This,
5489
_In_ ID3D12QueryHeap *pQueryHeap,
5490
_In_ D3D12_QUERY_TYPE Type,
5491
_In_ UINT Index);
5492
5493
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
5494
void ( STDMETHODCALLTYPE *ResolveQueryData )(
5495
ID3D12VideoProcessCommandList2 * This,
5496
_In_ ID3D12QueryHeap *pQueryHeap,
5497
_In_ D3D12_QUERY_TYPE Type,
5498
_In_ UINT StartIndex,
5499
_In_ UINT NumQueries,
5500
_In_ ID3D12Resource *pDestinationBuffer,
5501
_In_ UINT64 AlignedDestinationBufferOffset);
5502
5503
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
5504
void ( STDMETHODCALLTYPE *SetPredication )(
5505
ID3D12VideoProcessCommandList2 * This,
5506
_In_opt_ ID3D12Resource *pBuffer,
5507
_In_ UINT64 AlignedBufferOffset,
5508
_In_ D3D12_PREDICATION_OP Operation);
5509
5510
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
5511
void ( STDMETHODCALLTYPE *SetMarker )(
5512
ID3D12VideoProcessCommandList2 * This,
5513
UINT Metadata,
5514
_In_reads_bytes_opt_(Size) const void *pData,
5515
UINT Size);
5516
5517
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
5518
void ( STDMETHODCALLTYPE *BeginEvent )(
5519
ID3D12VideoProcessCommandList2 * This,
5520
UINT Metadata,
5521
_In_reads_bytes_opt_(Size) const void *pData,
5522
UINT Size);
5523
5524
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
5525
void ( STDMETHODCALLTYPE *EndEvent )(
5526
ID3D12VideoProcessCommandList2 * This);
5527
5528
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
5529
void ( STDMETHODCALLTYPE *ProcessFrames )(
5530
ID3D12VideoProcessCommandList2 * This,
5531
_In_ ID3D12VideoProcessor *pVideoProcessor,
5532
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5533
UINT NumInputStreams,
5534
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
5535
5536
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
5537
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
5538
ID3D12VideoProcessCommandList2 * This,
5539
UINT Count,
5540
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
5541
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
5542
5543
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)
5544
void ( STDMETHODCALLTYPE *ProcessFrames1 )(
5545
ID3D12VideoProcessCommandList2 * This,
5546
_In_ ID3D12VideoProcessor *pVideoProcessor,
5547
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5548
UINT NumInputStreams,
5549
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);
5550
5551
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)
5552
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
5553
ID3D12VideoProcessCommandList2 * This,
5554
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
5555
5556
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)
5557
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
5558
ID3D12VideoProcessCommandList2 * This,
5559
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5560
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5561
SIZE_T InitializationParametersSizeInBytes);
5562
5563
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)
5564
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
5565
ID3D12VideoProcessCommandList2 * This,
5566
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5567
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5568
SIZE_T ExecutionParametersSizeInBytes);
5569
5570
END_INTERFACE
5571
} ID3D12VideoProcessCommandList2Vtbl;
5572
5573
interface ID3D12VideoProcessCommandList2
5574
{
5575
CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl;
5576
};
5577
5578
5579
5580
#ifdef COBJMACROS
5581
5582
5583
#define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \
5584
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5585
5586
#define ID3D12VideoProcessCommandList2_AddRef(This) \
5587
( (This)->lpVtbl -> AddRef(This) )
5588
5589
#define ID3D12VideoProcessCommandList2_Release(This) \
5590
( (This)->lpVtbl -> Release(This) )
5591
5592
5593
#define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
5594
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5595
5596
#define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \
5597
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5598
5599
#define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \
5600
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5601
5602
#define ID3D12VideoProcessCommandList2_SetName(This,Name) \
5603
( (This)->lpVtbl -> SetName(This,Name) )
5604
5605
5606
#define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \
5607
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5608
5609
5610
#define ID3D12VideoProcessCommandList2_GetType(This) \
5611
( (This)->lpVtbl -> GetType(This) )
5612
5613
5614
#define ID3D12VideoProcessCommandList2_Close(This) \
5615
( (This)->lpVtbl -> Close(This) )
5616
5617
#define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \
5618
( (This)->lpVtbl -> Reset(This,pAllocator) )
5619
5620
#define ID3D12VideoProcessCommandList2_ClearState(This) \
5621
( (This)->lpVtbl -> ClearState(This) )
5622
5623
#define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
5624
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5625
5626
#define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \
5627
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5628
5629
#define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
5630
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5631
5632
#define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
5633
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5634
5635
#define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5636
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5637
5638
#define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5639
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5640
5641
#define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \
5642
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5643
5644
#define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \
5645
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5646
5647
#define ID3D12VideoProcessCommandList2_EndEvent(This) \
5648
( (This)->lpVtbl -> EndEvent(This) )
5649
5650
#define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5651
( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5652
5653
#define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
5654
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5655
5656
5657
#define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5658
( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5659
5660
5661
#define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \
5662
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5663
5664
#define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5665
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5666
5667
#define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5668
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5669
5670
#endif /* COBJMACROS */
5671
5672
5673
#endif /* C style interface */
5674
5675
5676
5677
5678
#endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */
5679
5680
5681
#ifndef __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__
5682
#define __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__
5683
5684
/* interface ID3D12VideoProcessCommandList3 */
5685
/* [unique][local][object][uuid] */
5686
5687
5688
EXTERN_C const IID IID_ID3D12VideoProcessCommandList3;
5689
5690
#if defined(__cplusplus) && !defined(CINTERFACE)
5691
5692
MIDL_INTERFACE("1a0a4ca4-9f08-40ce-9558-b411fd2666ff")
5693
ID3D12VideoProcessCommandList3 : public ID3D12VideoProcessCommandList2
5694
{
5695
public:
5696
virtual void STDMETHODCALLTYPE Barrier(
5697
UINT32 NumBarrierGroups,
5698
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
5699
5700
};
5701
5702
5703
#else /* C style interface */
5704
5705
typedef struct ID3D12VideoProcessCommandList3Vtbl
5706
{
5707
BEGIN_INTERFACE
5708
5709
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
5710
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5711
ID3D12VideoProcessCommandList3 * This,
5712
REFIID riid,
5713
_COM_Outptr_ void **ppvObject);
5714
5715
DECLSPEC_XFGVIRT(IUnknown, AddRef)
5716
ULONG ( STDMETHODCALLTYPE *AddRef )(
5717
ID3D12VideoProcessCommandList3 * This);
5718
5719
DECLSPEC_XFGVIRT(IUnknown, Release)
5720
ULONG ( STDMETHODCALLTYPE *Release )(
5721
ID3D12VideoProcessCommandList3 * This);
5722
5723
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
5724
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
5725
ID3D12VideoProcessCommandList3 * This,
5726
_In_ REFGUID guid,
5727
_Inout_ UINT *pDataSize,
5728
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
5729
5730
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
5731
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
5732
ID3D12VideoProcessCommandList3 * This,
5733
_In_ REFGUID guid,
5734
_In_ UINT DataSize,
5735
_In_reads_bytes_opt_( DataSize ) const void *pData);
5736
5737
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
5738
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
5739
ID3D12VideoProcessCommandList3 * This,
5740
_In_ REFGUID guid,
5741
_In_opt_ const IUnknown *pData);
5742
5743
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
5744
HRESULT ( STDMETHODCALLTYPE *SetName )(
5745
ID3D12VideoProcessCommandList3 * This,
5746
_In_z_ LPCWSTR Name);
5747
5748
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
5749
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
5750
ID3D12VideoProcessCommandList3 * This,
5751
REFIID riid,
5752
_COM_Outptr_opt_ void **ppvDevice);
5753
5754
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
5755
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
5756
ID3D12VideoProcessCommandList3 * This);
5757
5758
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close)
5759
HRESULT ( STDMETHODCALLTYPE *Close )(
5760
ID3D12VideoProcessCommandList3 * This);
5761
5762
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset)
5763
HRESULT ( STDMETHODCALLTYPE *Reset )(
5764
ID3D12VideoProcessCommandList3 * This,
5765
_In_ ID3D12CommandAllocator *pAllocator);
5766
5767
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState)
5768
void ( STDMETHODCALLTYPE *ClearState )(
5769
ID3D12VideoProcessCommandList3 * This);
5770
5771
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier)
5772
void ( STDMETHODCALLTYPE *ResourceBarrier )(
5773
ID3D12VideoProcessCommandList3 * This,
5774
_In_ UINT NumBarriers,
5775
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
5776
5777
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource)
5778
void ( STDMETHODCALLTYPE *DiscardResource )(
5779
ID3D12VideoProcessCommandList3 * This,
5780
_In_ ID3D12Resource *pResource,
5781
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
5782
5783
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery)
5784
void ( STDMETHODCALLTYPE *BeginQuery )(
5785
ID3D12VideoProcessCommandList3 * This,
5786
_In_ ID3D12QueryHeap *pQueryHeap,
5787
_In_ D3D12_QUERY_TYPE Type,
5788
_In_ UINT Index);
5789
5790
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery)
5791
void ( STDMETHODCALLTYPE *EndQuery )(
5792
ID3D12VideoProcessCommandList3 * This,
5793
_In_ ID3D12QueryHeap *pQueryHeap,
5794
_In_ D3D12_QUERY_TYPE Type,
5795
_In_ UINT Index);
5796
5797
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData)
5798
void ( STDMETHODCALLTYPE *ResolveQueryData )(
5799
ID3D12VideoProcessCommandList3 * This,
5800
_In_ ID3D12QueryHeap *pQueryHeap,
5801
_In_ D3D12_QUERY_TYPE Type,
5802
_In_ UINT StartIndex,
5803
_In_ UINT NumQueries,
5804
_In_ ID3D12Resource *pDestinationBuffer,
5805
_In_ UINT64 AlignedDestinationBufferOffset);
5806
5807
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication)
5808
void ( STDMETHODCALLTYPE *SetPredication )(
5809
ID3D12VideoProcessCommandList3 * This,
5810
_In_opt_ ID3D12Resource *pBuffer,
5811
_In_ UINT64 AlignedBufferOffset,
5812
_In_ D3D12_PREDICATION_OP Operation);
5813
5814
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker)
5815
void ( STDMETHODCALLTYPE *SetMarker )(
5816
ID3D12VideoProcessCommandList3 * This,
5817
UINT Metadata,
5818
_In_reads_bytes_opt_(Size) const void *pData,
5819
UINT Size);
5820
5821
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent)
5822
void ( STDMETHODCALLTYPE *BeginEvent )(
5823
ID3D12VideoProcessCommandList3 * This,
5824
UINT Metadata,
5825
_In_reads_bytes_opt_(Size) const void *pData,
5826
UINT Size);
5827
5828
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent)
5829
void ( STDMETHODCALLTYPE *EndEvent )(
5830
ID3D12VideoProcessCommandList3 * This);
5831
5832
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames)
5833
void ( STDMETHODCALLTYPE *ProcessFrames )(
5834
ID3D12VideoProcessCommandList3 * This,
5835
_In_ ID3D12VideoProcessor *pVideoProcessor,
5836
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5837
UINT NumInputStreams,
5838
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments);
5839
5840
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate)
5841
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
5842
ID3D12VideoProcessCommandList3 * This,
5843
UINT Count,
5844
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
5845
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
5846
5847
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1)
5848
void ( STDMETHODCALLTYPE *ProcessFrames1 )(
5849
ID3D12VideoProcessCommandList3 * This,
5850
_In_ ID3D12VideoProcessor *pVideoProcessor,
5851
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments,
5852
UINT NumInputStreams,
5853
_In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments);
5854
5855
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession)
5856
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
5857
ID3D12VideoProcessCommandList3 * This,
5858
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
5859
5860
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand)
5861
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
5862
ID3D12VideoProcessCommandList3 * This,
5863
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5864
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
5865
SIZE_T InitializationParametersSizeInBytes);
5866
5867
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand)
5868
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
5869
ID3D12VideoProcessCommandList3 * This,
5870
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
5871
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
5872
SIZE_T ExecutionParametersSizeInBytes);
5873
5874
DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList3, Barrier)
5875
void ( STDMETHODCALLTYPE *Barrier )(
5876
ID3D12VideoProcessCommandList3 * This,
5877
UINT32 NumBarrierGroups,
5878
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
5879
5880
END_INTERFACE
5881
} ID3D12VideoProcessCommandList3Vtbl;
5882
5883
interface ID3D12VideoProcessCommandList3
5884
{
5885
CONST_VTBL struct ID3D12VideoProcessCommandList3Vtbl *lpVtbl;
5886
};
5887
5888
5889
5890
#ifdef COBJMACROS
5891
5892
5893
#define ID3D12VideoProcessCommandList3_QueryInterface(This,riid,ppvObject) \
5894
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5895
5896
#define ID3D12VideoProcessCommandList3_AddRef(This) \
5897
( (This)->lpVtbl -> AddRef(This) )
5898
5899
#define ID3D12VideoProcessCommandList3_Release(This) \
5900
( (This)->lpVtbl -> Release(This) )
5901
5902
5903
#define ID3D12VideoProcessCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
5904
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
5905
5906
#define ID3D12VideoProcessCommandList3_SetPrivateData(This,guid,DataSize,pData) \
5907
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
5908
5909
#define ID3D12VideoProcessCommandList3_SetPrivateDataInterface(This,guid,pData) \
5910
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
5911
5912
#define ID3D12VideoProcessCommandList3_SetName(This,Name) \
5913
( (This)->lpVtbl -> SetName(This,Name) )
5914
5915
5916
#define ID3D12VideoProcessCommandList3_GetDevice(This,riid,ppvDevice) \
5917
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
5918
5919
5920
#define ID3D12VideoProcessCommandList3_GetType(This) \
5921
( (This)->lpVtbl -> GetType(This) )
5922
5923
5924
#define ID3D12VideoProcessCommandList3_Close(This) \
5925
( (This)->lpVtbl -> Close(This) )
5926
5927
#define ID3D12VideoProcessCommandList3_Reset(This,pAllocator) \
5928
( (This)->lpVtbl -> Reset(This,pAllocator) )
5929
5930
#define ID3D12VideoProcessCommandList3_ClearState(This) \
5931
( (This)->lpVtbl -> ClearState(This) )
5932
5933
#define ID3D12VideoProcessCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
5934
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
5935
5936
#define ID3D12VideoProcessCommandList3_DiscardResource(This,pResource,pRegion) \
5937
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
5938
5939
#define ID3D12VideoProcessCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
5940
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
5941
5942
#define ID3D12VideoProcessCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
5943
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
5944
5945
#define ID3D12VideoProcessCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
5946
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
5947
5948
#define ID3D12VideoProcessCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
5949
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
5950
5951
#define ID3D12VideoProcessCommandList3_SetMarker(This,Metadata,pData,Size) \
5952
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
5953
5954
#define ID3D12VideoProcessCommandList3_BeginEvent(This,Metadata,pData,Size) \
5955
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
5956
5957
#define ID3D12VideoProcessCommandList3_EndEvent(This) \
5958
( (This)->lpVtbl -> EndEvent(This) )
5959
5960
#define ID3D12VideoProcessCommandList3_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5961
( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5962
5963
#define ID3D12VideoProcessCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
5964
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
5965
5966
5967
#define ID3D12VideoProcessCommandList3_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \
5968
( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) )
5969
5970
5971
#define ID3D12VideoProcessCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
5972
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
5973
5974
#define ID3D12VideoProcessCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
5975
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
5976
5977
#define ID3D12VideoProcessCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
5978
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
5979
5980
5981
#define ID3D12VideoProcessCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \
5982
( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
5983
5984
#endif /* COBJMACROS */
5985
5986
5987
#endif /* C style interface */
5988
5989
5990
5991
5992
#endif /* __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ */
5993
5994
5995
#ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__
5996
#define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__
5997
5998
/* interface ID3D12VideoEncodeCommandList1 */
5999
/* [unique][local][object][uuid] */
6000
6001
6002
EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1;
6003
6004
#if defined(__cplusplus) && !defined(CINTERFACE)
6005
6006
MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc")
6007
ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList
6008
{
6009
public:
6010
virtual void STDMETHODCALLTYPE InitializeExtensionCommand(
6011
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
6012
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
6013
SIZE_T InitializationParametersSizeInBytes) = 0;
6014
6015
virtual void STDMETHODCALLTYPE ExecuteExtensionCommand(
6016
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
6017
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
6018
SIZE_T ExecutionParametersSizeInBytes) = 0;
6019
6020
};
6021
6022
6023
#else /* C style interface */
6024
6025
typedef struct ID3D12VideoEncodeCommandList1Vtbl
6026
{
6027
BEGIN_INTERFACE
6028
6029
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
6030
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6031
ID3D12VideoEncodeCommandList1 * This,
6032
REFIID riid,
6033
_COM_Outptr_ void **ppvObject);
6034
6035
DECLSPEC_XFGVIRT(IUnknown, AddRef)
6036
ULONG ( STDMETHODCALLTYPE *AddRef )(
6037
ID3D12VideoEncodeCommandList1 * This);
6038
6039
DECLSPEC_XFGVIRT(IUnknown, Release)
6040
ULONG ( STDMETHODCALLTYPE *Release )(
6041
ID3D12VideoEncodeCommandList1 * This);
6042
6043
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
6044
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
6045
ID3D12VideoEncodeCommandList1 * This,
6046
_In_ REFGUID guid,
6047
_Inout_ UINT *pDataSize,
6048
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
6049
6050
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
6051
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
6052
ID3D12VideoEncodeCommandList1 * This,
6053
_In_ REFGUID guid,
6054
_In_ UINT DataSize,
6055
_In_reads_bytes_opt_( DataSize ) const void *pData);
6056
6057
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
6058
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
6059
ID3D12VideoEncodeCommandList1 * This,
6060
_In_ REFGUID guid,
6061
_In_opt_ const IUnknown *pData);
6062
6063
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
6064
HRESULT ( STDMETHODCALLTYPE *SetName )(
6065
ID3D12VideoEncodeCommandList1 * This,
6066
_In_z_ LPCWSTR Name);
6067
6068
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
6069
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
6070
ID3D12VideoEncodeCommandList1 * This,
6071
REFIID riid,
6072
_COM_Outptr_opt_ void **ppvDevice);
6073
6074
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
6075
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
6076
ID3D12VideoEncodeCommandList1 * This);
6077
6078
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
6079
HRESULT ( STDMETHODCALLTYPE *Close )(
6080
ID3D12VideoEncodeCommandList1 * This);
6081
6082
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
6083
HRESULT ( STDMETHODCALLTYPE *Reset )(
6084
ID3D12VideoEncodeCommandList1 * This,
6085
_In_ ID3D12CommandAllocator *pAllocator);
6086
6087
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
6088
void ( STDMETHODCALLTYPE *ClearState )(
6089
ID3D12VideoEncodeCommandList1 * This);
6090
6091
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
6092
void ( STDMETHODCALLTYPE *ResourceBarrier )(
6093
ID3D12VideoEncodeCommandList1 * This,
6094
_In_ UINT NumBarriers,
6095
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
6096
6097
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
6098
void ( STDMETHODCALLTYPE *DiscardResource )(
6099
ID3D12VideoEncodeCommandList1 * This,
6100
_In_ ID3D12Resource *pResource,
6101
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
6102
6103
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
6104
void ( STDMETHODCALLTYPE *BeginQuery )(
6105
ID3D12VideoEncodeCommandList1 * This,
6106
_In_ ID3D12QueryHeap *pQueryHeap,
6107
_In_ D3D12_QUERY_TYPE Type,
6108
_In_ UINT Index);
6109
6110
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
6111
void ( STDMETHODCALLTYPE *EndQuery )(
6112
ID3D12VideoEncodeCommandList1 * This,
6113
_In_ ID3D12QueryHeap *pQueryHeap,
6114
_In_ D3D12_QUERY_TYPE Type,
6115
_In_ UINT Index);
6116
6117
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
6118
void ( STDMETHODCALLTYPE *ResolveQueryData )(
6119
ID3D12VideoEncodeCommandList1 * This,
6120
_In_ ID3D12QueryHeap *pQueryHeap,
6121
_In_ D3D12_QUERY_TYPE Type,
6122
_In_ UINT StartIndex,
6123
_In_ UINT NumQueries,
6124
_In_ ID3D12Resource *pDestinationBuffer,
6125
_In_ UINT64 AlignedDestinationBufferOffset);
6126
6127
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
6128
void ( STDMETHODCALLTYPE *SetPredication )(
6129
ID3D12VideoEncodeCommandList1 * This,
6130
_In_opt_ ID3D12Resource *pBuffer,
6131
_In_ UINT64 AlignedBufferOffset,
6132
_In_ D3D12_PREDICATION_OP Operation);
6133
6134
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
6135
void ( STDMETHODCALLTYPE *SetMarker )(
6136
ID3D12VideoEncodeCommandList1 * This,
6137
UINT Metadata,
6138
_In_reads_bytes_opt_(Size) const void *pData,
6139
UINT Size);
6140
6141
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
6142
void ( STDMETHODCALLTYPE *BeginEvent )(
6143
ID3D12VideoEncodeCommandList1 * This,
6144
UINT Metadata,
6145
_In_reads_bytes_opt_(Size) const void *pData,
6146
UINT Size);
6147
6148
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
6149
void ( STDMETHODCALLTYPE *EndEvent )(
6150
ID3D12VideoEncodeCommandList1 * This);
6151
6152
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
6153
void ( STDMETHODCALLTYPE *EstimateMotion )(
6154
ID3D12VideoEncodeCommandList1 * This,
6155
_In_ ID3D12VideoMotionEstimator *pMotionEstimator,
6156
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
6157
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
6158
6159
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
6160
void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
6161
ID3D12VideoEncodeCommandList1 * This,
6162
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
6163
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
6164
6165
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
6166
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
6167
ID3D12VideoEncodeCommandList1 * This,
6168
UINT Count,
6169
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
6170
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
6171
6172
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
6173
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
6174
ID3D12VideoEncodeCommandList1 * This,
6175
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
6176
6177
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)
6178
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
6179
ID3D12VideoEncodeCommandList1 * This,
6180
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
6181
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
6182
SIZE_T InitializationParametersSizeInBytes);
6183
6184
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)
6185
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
6186
ID3D12VideoEncodeCommandList1 * This,
6187
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
6188
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
6189
SIZE_T ExecutionParametersSizeInBytes);
6190
6191
END_INTERFACE
6192
} ID3D12VideoEncodeCommandList1Vtbl;
6193
6194
interface ID3D12VideoEncodeCommandList1
6195
{
6196
CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl;
6197
};
6198
6199
6200
6201
#ifdef COBJMACROS
6202
6203
6204
#define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \
6205
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6206
6207
#define ID3D12VideoEncodeCommandList1_AddRef(This) \
6208
( (This)->lpVtbl -> AddRef(This) )
6209
6210
#define ID3D12VideoEncodeCommandList1_Release(This) \
6211
( (This)->lpVtbl -> Release(This) )
6212
6213
6214
#define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \
6215
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
6216
6217
#define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \
6218
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
6219
6220
#define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \
6221
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
6222
6223
#define ID3D12VideoEncodeCommandList1_SetName(This,Name) \
6224
( (This)->lpVtbl -> SetName(This,Name) )
6225
6226
6227
#define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \
6228
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
6229
6230
6231
#define ID3D12VideoEncodeCommandList1_GetType(This) \
6232
( (This)->lpVtbl -> GetType(This) )
6233
6234
6235
#define ID3D12VideoEncodeCommandList1_Close(This) \
6236
( (This)->lpVtbl -> Close(This) )
6237
6238
#define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \
6239
( (This)->lpVtbl -> Reset(This,pAllocator) )
6240
6241
#define ID3D12VideoEncodeCommandList1_ClearState(This) \
6242
( (This)->lpVtbl -> ClearState(This) )
6243
6244
#define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \
6245
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
6246
6247
#define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \
6248
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
6249
6250
#define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \
6251
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
6252
6253
#define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \
6254
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
6255
6256
#define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
6257
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
6258
6259
#define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
6260
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
6261
6262
#define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \
6263
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
6264
6265
#define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \
6266
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
6267
6268
#define ID3D12VideoEncodeCommandList1_EndEvent(This) \
6269
( (This)->lpVtbl -> EndEvent(This) )
6270
6271
#define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
6272
( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
6273
6274
#define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
6275
( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
6276
6277
#define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \
6278
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
6279
6280
#define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \
6281
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
6282
6283
6284
#define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
6285
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
6286
6287
#define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
6288
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
6289
6290
#endif /* COBJMACROS */
6291
6292
6293
#endif /* C style interface */
6294
6295
6296
6297
6298
#endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */
6299
6300
6301
/* interface __MIDL_itf_d3d12video_0000_0022 */
6302
/* [local] */
6303
6304
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);
6305
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);
6306
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
6307
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);
6308
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);
6309
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);
6310
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
6311
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
6312
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);
6313
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);
6314
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);
6315
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);
6316
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4);
6317
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29);
6318
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f);
6319
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb);
6320
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee);
6321
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33);
6322
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c);
6323
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c);
6324
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01);
6325
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d);
6326
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);
6327
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);
6328
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);
6329
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);
6330
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);
6331
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);
6332
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);
6333
DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
6334
typedef
6335
enum D3D12_VIDEO_ENCODER_AV1_PROFILE
6336
{
6337
D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0,
6338
D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1,
6339
D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 2
6340
} D3D12_VIDEO_ENCODER_AV1_PROFILE;
6341
6342
typedef
6343
enum D3D12_VIDEO_ENCODER_AV1_LEVELS
6344
{
6345
D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0,
6346
D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1,
6347
D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2,
6348
D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3,
6349
D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4,
6350
D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5,
6351
D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6,
6352
D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7,
6353
D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8,
6354
D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9,
6355
D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10,
6356
D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11,
6357
D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12,
6358
D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13,
6359
D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14,
6360
D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15,
6361
D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16,
6362
D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17,
6363
D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18,
6364
D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19,
6365
D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20,
6366
D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21,
6367
D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22,
6368
D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 23
6369
} D3D12_VIDEO_ENCODER_AV1_LEVELS;
6370
6371
typedef
6372
enum D3D12_VIDEO_ENCODER_AV1_TIER
6373
{
6374
D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0,
6375
D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 1
6376
} D3D12_VIDEO_ENCODER_AV1_TIER;
6377
6378
typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS
6379
{
6380
D3D12_VIDEO_ENCODER_AV1_LEVELS Level;
6381
D3D12_VIDEO_ENCODER_AV1_TIER Tier;
6382
} D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS;
6383
6384
typedef
6385
enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS
6386
{
6387
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0,
6388
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1,
6389
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2,
6390
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4,
6391
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8,
6392
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10,
6393
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20,
6394
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40,
6395
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80,
6396
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100,
6397
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200,
6398
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400,
6399
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800,
6400
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000,
6401
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000,
6402
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000,
6403
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000,
6404
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000,
6405
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000,
6406
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000,
6407
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000,
6408
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000,
6409
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000,
6410
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000,
6411
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000,
6412
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000,
6413
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x2000000
6414
} D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS;
6415
6416
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS);
6417
typedef
6418
enum D3D12_VIDEO_ENCODER_AV1_TX_MODE
6419
{
6420
D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0,
6421
D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1,
6422
D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 2
6423
} D3D12_VIDEO_ENCODER_AV1_TX_MODE;
6424
6425
typedef
6426
enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS
6427
{
6428
D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0,
6429
D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 ) ,
6430
D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST ) ,
6431
D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT )
6432
} D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS;
6433
6434
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS);
6435
typedef
6436
enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS
6437
{
6438
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0,
6439
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1,
6440
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2,
6441
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3,
6442
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 4
6443
} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS;
6444
6445
typedef
6446
enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS
6447
{
6448
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0,
6449
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP ) ,
6450
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH ) ,
6451
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP ) ,
6452
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR ) ,
6453
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE )
6454
} D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS;
6455
6456
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS);
6457
typedef
6458
enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE
6459
{
6460
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0,
6461
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1,
6462
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2,
6463
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3,
6464
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 4
6465
} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE;
6466
6467
typedef
6468
enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE
6469
{
6470
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0,
6471
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1,
6472
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2,
6473
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3,
6474
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4,
6475
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5,
6476
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6,
6477
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7,
6478
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 8
6479
} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE;
6480
6481
typedef
6482
enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS
6483
{
6484
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0,
6485
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED ) ,
6486
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q ) ,
6487
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V ) ,
6488
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H ) ,
6489
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U ) ,
6490
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V ) ,
6491
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME ) ,
6492
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP ) ,
6493
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV )
6494
} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS;
6495
6496
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS);
6497
typedef
6498
enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE
6499
{
6500
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0,
6501
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1,
6502
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2,
6503
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 3
6504
} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE;
6505
6506
typedef
6507
enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE
6508
{
6509
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0,
6510
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1,
6511
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2,
6512
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3,
6513
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 4
6514
} D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE;
6515
6516
typedef
6517
enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS
6518
{
6519
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0,
6520
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1,
6521
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2,
6522
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4,
6523
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x8
6524
} D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS;
6525
6526
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS);
6527
typedef
6528
enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION
6529
{
6530
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0,
6531
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1,
6532
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2,
6533
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 3
6534
} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION;
6535
6536
typedef
6537
enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS
6538
{
6539
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0,
6540
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY ) ,
6541
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION ) ,
6542
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM ) ,
6543
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE )
6544
} D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS;
6545
6546
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS);
6547
typedef
6548
enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS
6549
{
6550
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0,
6551
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1,
6552
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2,
6553
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4,
6554
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8,
6555
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10,
6556
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20,
6557
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40,
6558
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80,
6559
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x100
6560
} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS;
6561
6562
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS);
6563
typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT
6564
{
6565
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags;
6566
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags;
6567
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters;
6568
D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[ 3 ][ 3 ];
6569
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes;
6570
D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[ 4 ];
6571
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize;
6572
D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags;
6573
UINT MaxTemporalLayers;
6574
UINT MaxSpatialLayers;
6575
} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT;
6576
6577
typedef
6578
enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE
6579
{
6580
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0,
6581
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1,
6582
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2,
6583
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 3
6584
} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE;
6585
6586
typedef
6587
enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS
6588
{
6589
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0,
6590
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME ) ,
6591
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME ) ,
6592
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME ) ,
6593
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME )
6594
} D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS;
6595
6596
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS);
6597
typedef
6598
enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE
6599
{
6600
D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0,
6601
D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 1
6602
} D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE;
6603
6604
typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT
6605
{
6606
D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode;
6607
UINT MaxUniqueReferencesPerFrame;
6608
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes;
6609
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags;
6610
} D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT;
6611
6612
typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION
6613
{
6614
D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags;
6615
UINT OrderHintBitsMinus1;
6616
} D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION;
6617
6618
typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE
6619
{
6620
UINT IntraDistance;
6621
UINT InterFramePeriod;
6622
} D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE;
6623
6624
typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO
6625
{
6626
D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType;
6627
INT TransformationMatrix[ 8 ];
6628
BOOL InvalidAffineSet;
6629
} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO;
6630
6631
typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR
6632
{
6633
UINT ReconstructedPictureResourceIndex;
6634
UINT TemporalLayerIndexPlus1;
6635
UINT SpatialLayerIndexPlus1;
6636
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;
6637
D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo;
6638
UINT OrderHint;
6639
UINT PictureIndex;
6640
} D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR;
6641
6642
typedef
6643
enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS
6644
{
6645
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0,
6646
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1,
6647
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2,
6648
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4,
6649
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8,
6650
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10,
6651
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20,
6652
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40,
6653
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80,
6654
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100,
6655
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200,
6656
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400,
6657
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800,
6658
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000,
6659
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000,
6660
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x4000
6661
} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS;
6662
6663
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS);
6664
typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG
6665
{
6666
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[ 3 ];
6667
D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[ 3 ];
6668
} D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG;
6669
6670
typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA
6671
{
6672
UINT64 EnabledFeatures;
6673
INT64 FeatureValue[ 8 ];
6674
} D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA;
6675
6676
typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG
6677
{
6678
UINT64 UpdateMap;
6679
UINT64 TemporalUpdate;
6680
UINT64 UpdateData;
6681
UINT64 NumSegments;
6682
D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[ 8 ];
6683
} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG;
6684
6685
typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP
6686
{
6687
UINT SegmentsMapByteSize;
6688
UINT8 *pSegmentsMap;
6689
} D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP;
6690
6691
typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG
6692
{
6693
UINT64 LoopFilterLevel[ 2 ];
6694
UINT64 LoopFilterLevelU;
6695
UINT64 LoopFilterLevelV;
6696
UINT64 LoopFilterSharpnessLevel;
6697
UINT64 LoopFilterDeltaEnabled;
6698
UINT64 UpdateRefDelta;
6699
INT64 RefDeltas[ 8 ];
6700
UINT64 UpdateModeDelta;
6701
INT64 ModeDeltas[ 2 ];
6702
} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG;
6703
6704
typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG
6705
{
6706
UINT64 DeltaLFPresent;
6707
UINT64 DeltaLFMulti;
6708
UINT64 DeltaLFRes;
6709
} D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG;
6710
6711
typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG
6712
{
6713
UINT64 BaseQIndex;
6714
INT64 YDCDeltaQ;
6715
INT64 UDCDeltaQ;
6716
INT64 UACDeltaQ;
6717
INT64 VDCDeltaQ;
6718
INT64 VACDeltaQ;
6719
UINT64 UsingQMatrix;
6720
UINT64 QMY;
6721
UINT64 QMU;
6722
UINT64 QMV;
6723
} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG;
6724
6725
typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG
6726
{
6727
UINT64 DeltaQPresent;
6728
UINT64 DeltaQRes;
6729
} D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG;
6730
6731
typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG
6732
{
6733
UINT64 CdefBits;
6734
UINT64 CdefDampingMinus3;
6735
UINT64 CdefYPriStrength[ 8 ];
6736
UINT64 CdefUVPriStrength[ 8 ];
6737
UINT64 CdefYSecStrength[ 8 ];
6738
UINT64 CdefUVSecStrength[ 8 ];
6739
} D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG;
6740
6741
typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA
6742
{
6743
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags;
6744
D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType;
6745
D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType;
6746
D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter;
6747
D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig;
6748
D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode;
6749
UINT SuperResDenominator;
6750
UINT OrderHint;
6751
UINT PictureIndex;
6752
UINT TemporalLayerIndexPlus1;
6753
UINT SpatialLayerIndexPlus1;
6754
D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[ 8 ];
6755
UINT ReferenceIndices[ 7 ];
6756
UINT PrimaryRefFrame;
6757
UINT RefreshFrameFlags;
6758
D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;
6759
D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;
6760
D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;
6761
D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;
6762
D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;
6763
UINT QPMapValuesCount;
6764
_Field_size_full_(QPMapValuesCount) INT16 *pRateControlQPMap;
6765
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation;
6766
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap;
6767
} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA;
6768
6769
typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES
6770
{
6771
UINT64 RowCount;
6772
UINT64 ColCount;
6773
UINT64 RowHeights[ 64 ];
6774
UINT64 ColWidths[ 64 ];
6775
UINT64 ContextUpdateTileId;
6776
} D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES;
6777
6778
typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES
6779
{
6780
UINT64 CompoundPredictionType;
6781
D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter;
6782
D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta;
6783
D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization;
6784
D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta;
6785
D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF;
6786
D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig;
6787
UINT64 PrimaryRefFrame;
6788
UINT64 ReferenceIndices[ 7 ];
6789
} D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES;
6790
6791
typedef
6792
enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE
6793
{
6794
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0,
6795
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1,
6796
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2,
6797
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3,
6798
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 4
6799
} D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE;
6800
6801
typedef
6802
enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS
6803
{
6804
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0,
6805
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1,
6806
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2,
6807
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4,
6808
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8,
6809
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10,
6810
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20,
6811
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40,
6812
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80
6813
} D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS;
6814
6815
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS);
6816
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP
6817
{
6818
UINT ConstantQP_FullIntracodedFrame;
6819
UINT ConstantQP_InterPredictedFrame_PrevRefOnly;
6820
UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;
6821
} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP;
6822
6823
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1
6824
{
6825
UINT ConstantQP_FullIntracodedFrame;
6826
UINT ConstantQP_InterPredictedFrame_PrevRefOnly;
6827
UINT ConstantQP_InterPredictedFrame_BiDirectionalRef;
6828
UINT QualityVsSpeed;
6829
} D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1;
6830
6831
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR
6832
{
6833
UINT InitialQP;
6834
UINT MinQP;
6835
UINT MaxQP;
6836
UINT64 MaxFrameBitSize;
6837
UINT64 TargetBitRate;
6838
UINT64 VBVCapacity;
6839
UINT64 InitialVBVFullness;
6840
} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR;
6841
6842
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1
6843
{
6844
UINT InitialQP;
6845
UINT MinQP;
6846
UINT MaxQP;
6847
UINT64 MaxFrameBitSize;
6848
UINT64 TargetBitRate;
6849
UINT64 VBVCapacity;
6850
UINT64 InitialVBVFullness;
6851
UINT QualityVsSpeed;
6852
} D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1;
6853
6854
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR
6855
{
6856
UINT InitialQP;
6857
UINT MinQP;
6858
UINT MaxQP;
6859
UINT64 MaxFrameBitSize;
6860
UINT64 TargetAvgBitRate;
6861
UINT64 PeakBitRate;
6862
UINT64 VBVCapacity;
6863
UINT64 InitialVBVFullness;
6864
} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR;
6865
6866
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1
6867
{
6868
UINT InitialQP;
6869
UINT MinQP;
6870
UINT MaxQP;
6871
UINT64 MaxFrameBitSize;
6872
UINT64 TargetAvgBitRate;
6873
UINT64 PeakBitRate;
6874
UINT64 VBVCapacity;
6875
UINT64 InitialVBVFullness;
6876
UINT QualityVsSpeed;
6877
} D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1;
6878
6879
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR
6880
{
6881
UINT InitialQP;
6882
UINT MinQP;
6883
UINT MaxQP;
6884
UINT64 MaxFrameBitSize;
6885
UINT64 TargetAvgBitRate;
6886
UINT64 PeakBitRate;
6887
UINT ConstantQualityTarget;
6888
} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR;
6889
6890
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1
6891
{
6892
UINT InitialQP;
6893
UINT MinQP;
6894
UINT MaxQP;
6895
UINT64 MaxFrameBitSize;
6896
UINT64 TargetAvgBitRate;
6897
UINT64 PeakBitRate;
6898
UINT ConstantQualityTarget;
6899
UINT64 VBVCapacity;
6900
UINT64 InitialVBVFullness;
6901
UINT QualityVsSpeed;
6902
} D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1;
6903
6904
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP
6905
{
6906
UINT QualityVsSpeed;
6907
} D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP;
6908
6909
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS
6910
{
6911
UINT DataSize;
6912
union
6913
{
6914
const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP *pConfiguration_CQP;
6915
const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR *pConfiguration_CBR;
6916
const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR *pConfiguration_VBR;
6917
const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR *pConfiguration_QVBR;
6918
const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 *pConfiguration_CQP1;
6919
const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 *pConfiguration_CBR1;
6920
const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 *pConfiguration_VBR1;
6921
const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 *pConfiguration_QVBR1;
6922
const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP *pConfiguration_AbsoluteQPMap;
6923
} ;
6924
} D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS;
6925
6926
typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL
6927
{
6928
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode;
6929
D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags;
6930
D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams;
6931
DXGI_RATIONAL TargetFrameRate;
6932
} D3D12_VIDEO_ENCODER_RATE_CONTROL;
6933
6934
typedef
6935
enum D3D12_VIDEO_ENCODER_CODEC
6936
{
6937
D3D12_VIDEO_ENCODER_CODEC_H264 = 0,
6938
D3D12_VIDEO_ENCODER_CODEC_HEVC = 1,
6939
D3D12_VIDEO_ENCODER_CODEC_AV1 = 2
6940
} D3D12_VIDEO_ENCODER_CODEC;
6941
6942
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC
6943
{
6944
UINT NodeIndex;
6945
D3D12_VIDEO_ENCODER_CODEC Codec;
6946
BOOL IsSupported;
6947
} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC;
6948
6949
typedef
6950
enum D3D12_VIDEO_ENCODER_PROFILE_H264
6951
{
6952
D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0,
6953
D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1,
6954
D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 2
6955
} D3D12_VIDEO_ENCODER_PROFILE_H264;
6956
6957
typedef
6958
enum D3D12_VIDEO_ENCODER_PROFILE_HEVC
6959
{
6960
D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0,
6961
D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1
6962
} D3D12_VIDEO_ENCODER_PROFILE_HEVC;
6963
6964
typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC
6965
{
6966
UINT DataSize;
6967
union
6968
{
6969
D3D12_VIDEO_ENCODER_PROFILE_H264 *pH264Profile;
6970
D3D12_VIDEO_ENCODER_PROFILE_HEVC *pHEVCProfile;
6971
D3D12_VIDEO_ENCODER_AV1_PROFILE *pAV1Profile;
6972
} ;
6973
} D3D12_VIDEO_ENCODER_PROFILE_DESC;
6974
6975
typedef
6976
enum D3D12_VIDEO_ENCODER_LEVELS_H264
6977
{
6978
D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0,
6979
D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1,
6980
D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2,
6981
D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3,
6982
D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4,
6983
D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5,
6984
D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6,
6985
D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7,
6986
D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8,
6987
D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9,
6988
D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10,
6989
D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11,
6990
D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12,
6991
D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13,
6992
D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14,
6993
D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15,
6994
D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16,
6995
D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17,
6996
D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18,
6997
D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19
6998
} D3D12_VIDEO_ENCODER_LEVELS_H264;
6999
7000
typedef
7001
enum D3D12_VIDEO_ENCODER_TIER_HEVC
7002
{
7003
D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0,
7004
D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1
7005
} D3D12_VIDEO_ENCODER_TIER_HEVC;
7006
7007
typedef
7008
enum D3D12_VIDEO_ENCODER_LEVELS_HEVC
7009
{
7010
D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0,
7011
D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1,
7012
D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2,
7013
D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3,
7014
D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4,
7015
D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5,
7016
D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6,
7017
D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7,
7018
D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8,
7019
D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9,
7020
D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10,
7021
D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11,
7022
D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12
7023
} D3D12_VIDEO_ENCODER_LEVELS_HEVC;
7024
7025
typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC
7026
{
7027
D3D12_VIDEO_ENCODER_LEVELS_HEVC Level;
7028
D3D12_VIDEO_ENCODER_TIER_HEVC Tier;
7029
} D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC;
7030
7031
typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING
7032
{
7033
UINT DataSize;
7034
union
7035
{
7036
D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting;
7037
D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting;
7038
D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS *pAV1LevelSetting;
7039
} ;
7040
} D3D12_VIDEO_ENCODER_LEVEL_SETTING;
7041
7042
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL
7043
{
7044
UINT NodeIndex;
7045
D3D12_VIDEO_ENCODER_CODEC Codec;
7046
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7047
BOOL IsSupported;
7048
D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel;
7049
D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel;
7050
} D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL;
7051
7052
typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC
7053
{
7054
UINT Width;
7055
UINT Height;
7056
} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC;
7057
7058
typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC
7059
{
7060
UINT WidthRatio;
7061
UINT HeightRatio;
7062
} D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC;
7063
7064
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT
7065
{
7066
UINT NodeIndex;
7067
D3D12_VIDEO_ENCODER_CODEC Codec;
7068
UINT ResolutionRatiosCount;
7069
} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT;
7070
7071
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION
7072
{
7073
UINT NodeIndex;
7074
D3D12_VIDEO_ENCODER_CODEC Codec;
7075
UINT ResolutionRatiosCount;
7076
BOOL IsSupported;
7077
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported;
7078
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported;
7079
UINT ResolutionWidthMultipleRequirement;
7080
UINT ResolutionHeightMultipleRequirement;
7081
_Field_size_full_(ResolutionRatiosCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC *pResolutionRatios;
7082
} D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION;
7083
7084
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT
7085
{
7086
UINT NodeIndex;
7087
D3D12_VIDEO_ENCODER_CODEC Codec;
7088
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7089
DXGI_FORMAT Format;
7090
BOOL IsSupported;
7091
} D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT;
7092
7093
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE
7094
{
7095
UINT NodeIndex;
7096
D3D12_VIDEO_ENCODER_CODEC Codec;
7097
D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode;
7098
BOOL IsSupported;
7099
} D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE;
7100
7101
typedef
7102
enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE
7103
{
7104
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0,
7105
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 1
7106
} D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE;
7107
7108
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE
7109
{
7110
UINT NodeIndex;
7111
D3D12_VIDEO_ENCODER_CODEC Codec;
7112
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7113
D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;
7114
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode;
7115
BOOL IsSupported;
7116
} D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE;
7117
7118
typedef
7119
enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE
7120
{
7121
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0,
7122
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1,
7123
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2,
7124
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3,
7125
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4,
7126
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5,
7127
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6
7128
} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;
7129
7130
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE
7131
{
7132
UINT NodeIndex;
7133
D3D12_VIDEO_ENCODER_CODEC Codec;
7134
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7135
D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;
7136
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;
7137
BOOL IsSupported;
7138
} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE;
7139
7140
typedef
7141
enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS
7142
{
7143
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0,
7144
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1,
7145
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2,
7146
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4,
7147
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8,
7148
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10,
7149
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20,
7150
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40,
7151
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x80
7152
} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS;
7153
7154
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS);
7155
typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT
7156
{
7157
BOOL Use128SuperBlocks;
7158
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration;
7159
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags;
7160
UINT MinTileRows;
7161
UINT MaxTileRows;
7162
UINT MinTileCols;
7163
UINT MaxTileCols;
7164
UINT MinTileWidth;
7165
UINT MaxTileWidth;
7166
UINT MinTileArea;
7167
UINT MaxTileArea;
7168
UINT TileSizeBytesMinus1;
7169
} D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;
7170
7171
typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT
7172
{
7173
UINT DataSize;
7174
union
7175
{
7176
D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT *pAV1Support;
7177
} ;
7178
} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT;
7179
7180
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG
7181
{
7182
UINT NodeIndex;
7183
D3D12_VIDEO_ENCODER_CODEC Codec;
7184
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7185
D3D12_VIDEO_ENCODER_LEVEL_SETTING Level;
7186
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode;
7187
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution;
7188
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport;
7189
BOOL IsSupported;
7190
} D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG;
7191
7192
typedef
7193
enum D3D12_VIDEO_ENCODER_HEAP_FLAGS
7194
{
7195
D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0
7196
} D3D12_VIDEO_ENCODER_HEAP_FLAGS;
7197
7198
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS);
7199
typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC
7200
{
7201
UINT NodeMask;
7202
D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags;
7203
D3D12_VIDEO_ENCODER_CODEC EncodeCodec;
7204
D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;
7205
D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel;
7206
UINT ResolutionsListCount;
7207
_Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;
7208
} D3D12_VIDEO_ENCODER_HEAP_DESC;
7209
7210
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE
7211
{
7212
D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc;
7213
BOOL IsSupported;
7214
UINT64 MemoryPoolL0Size;
7215
UINT64 MemoryPoolL1Size;
7216
} D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE;
7217
7218
typedef
7219
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS
7220
{
7221
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0,
7222
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1,
7223
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,
7224
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4,
7225
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8,
7226
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10,
7227
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20,
7228
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40
7229
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS;
7230
7231
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS);
7232
typedef
7233
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES
7234
{
7235
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0,
7236
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1,
7237
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2,
7238
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3,
7239
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4,
7240
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5,
7241
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 6
7242
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES;
7243
7244
typedef
7245
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS
7246
{
7247
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0,
7248
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED ) ,
7249
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_1_DISABLE_ALL_SLICE_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES ) ,
7250
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS ) ,
7251
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_3_USE_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING ) ,
7252
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_4_DISABLE_CHROMA_BLOCK_EDGES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES ) ,
7253
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES ) ,
7254
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = ( 1 << D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING )
7255
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS;
7256
7257
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS);
7258
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264
7259
{
7260
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags;
7261
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes;
7262
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264;
7263
7264
typedef
7265
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS
7266
{
7267
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0,
7268
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1,
7269
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2,
7270
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4,
7271
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8,
7272
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10,
7273
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20,
7274
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40,
7275
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80,
7276
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100
7277
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS;
7278
7279
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS);
7280
typedef
7281
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE
7282
{
7283
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0,
7284
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1,
7285
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2,
7286
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 3
7287
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE;
7288
7289
typedef
7290
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE
7291
{
7292
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0,
7293
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1,
7294
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2,
7295
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 3
7296
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE;
7297
7298
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC
7299
{
7300
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags;
7301
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;
7302
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;
7303
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;
7304
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;
7305
UCHAR max_transform_hierarchy_depth_inter;
7306
UCHAR max_transform_hierarchy_depth_intra;
7307
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC;
7308
7309
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT
7310
{
7311
UINT DataSize;
7312
union
7313
{
7314
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 *pH264Support;
7315
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC *pHEVCSupport;
7316
D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT *pAV1Support;
7317
} ;
7318
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;
7319
7320
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT
7321
{
7322
UINT NodeIndex;
7323
D3D12_VIDEO_ENCODER_CODEC Codec;
7324
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7325
BOOL IsSupported;
7326
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits;
7327
} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT;
7328
7329
typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264
7330
{
7331
UINT MaxL0ReferencesForP;
7332
UINT MaxL0ReferencesForB;
7333
UINT MaxL1ReferencesForB;
7334
UINT MaxLongTermReferences;
7335
UINT MaxDPBCapacity;
7336
} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264;
7337
7338
typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC
7339
{
7340
UINT MaxL0ReferencesForP;
7341
UINT MaxL0ReferencesForB;
7342
UINT MaxL1ReferencesForB;
7343
UINT MaxLongTermReferences;
7344
UINT MaxDPBCapacity;
7345
} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC;
7346
7347
typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT
7348
{
7349
UINT DataSize;
7350
union
7351
{
7352
D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 *pH264Support;
7353
D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC *pHEVCSupport;
7354
D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT *pAV1Support;
7355
} ;
7356
} D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;
7357
7358
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT
7359
{
7360
UINT NodeIndex;
7361
D3D12_VIDEO_ENCODER_CODEC Codec;
7362
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7363
BOOL IsSupported;
7364
D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport;
7365
} D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT;
7366
7367
typedef
7368
enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS
7369
{
7370
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0,
7371
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1,
7372
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2,
7373
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4,
7374
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8,
7375
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10,
7376
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20,
7377
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40,
7378
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80,
7379
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100,
7380
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200,
7381
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400,
7382
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800,
7383
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000,
7384
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000,
7385
D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000
7386
} D3D12_VIDEO_ENCODER_SUPPORT_FLAGS;
7387
7388
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS);
7389
typedef
7390
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS
7391
{
7392
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0,
7393
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1,
7394
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2,
7395
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4,
7396
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x8
7397
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS;
7398
7399
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS);
7400
typedef
7401
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES
7402
{
7403
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0,
7404
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1,
7405
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 2
7406
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES;
7407
7408
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264
7409
{
7410
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags;
7411
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig;
7412
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig;
7413
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264;
7414
7415
typedef
7416
enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS
7417
{
7418
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0,
7419
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1,
7420
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2,
7421
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4,
7422
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8,
7423
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10,
7424
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20,
7425
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40
7426
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS;
7427
7428
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS);
7429
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC
7430
{
7431
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags;
7432
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize;
7433
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize;
7434
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize;
7435
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize;
7436
UCHAR max_transform_hierarchy_depth_inter;
7437
UCHAR max_transform_hierarchy_depth_intra;
7438
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC;
7439
7440
typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION
7441
{
7442
UINT DataSize;
7443
union
7444
{
7445
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 *pH264Config;
7446
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC *pHEVCConfig;
7447
D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION *pAV1Config;
7448
} ;
7449
} D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION;
7450
7451
typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH
7452
{
7453
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode;
7454
UINT IntraRefreshDuration;
7455
} D3D12_VIDEO_ENCODER_INTRA_REFRESH;
7456
7457
typedef
7458
enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE
7459
{
7460
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0,
7461
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1,
7462
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2,
7463
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3,
7464
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 4
7465
} D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE;
7466
7467
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS
7468
{
7469
UINT MaxSubregionsNumber;
7470
UINT MaxIntraRefreshFrameDuration;
7471
UINT SubregionBlockPixelsSize;
7472
UINT QPMapRegionPixelsSize;
7473
} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS;
7474
7475
typedef
7476
enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS
7477
{
7478
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0,
7479
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1,
7480
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8,
7481
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10,
7482
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20,
7483
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40,
7484
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80,
7485
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100,
7486
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200,
7487
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800,
7488
D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000
7489
} D3D12_VIDEO_ENCODER_VALIDATION_FLAGS;
7490
7491
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS);
7492
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264
7493
{
7494
UINT GOPLength;
7495
UINT PPicturePeriod;
7496
UCHAR pic_order_cnt_type;
7497
UCHAR log2_max_frame_num_minus4;
7498
UCHAR log2_max_pic_order_cnt_lsb_minus4;
7499
} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264;
7500
7501
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC
7502
{
7503
UINT GOPLength;
7504
UINT PPicturePeriod;
7505
UCHAR log2_max_pic_order_cnt_lsb_minus4;
7506
} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC;
7507
7508
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE
7509
{
7510
UINT DataSize;
7511
union
7512
{
7513
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 *pH264GroupOfPictures;
7514
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC *pHEVCGroupOfPictures;
7515
D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE *pAV1SequenceStructure;
7516
} ;
7517
} D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE;
7518
7519
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT
7520
{
7521
UINT NodeIndex;
7522
D3D12_VIDEO_ENCODER_CODEC Codec;
7523
DXGI_FORMAT InputFormat;
7524
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;
7525
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;
7526
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;
7527
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;
7528
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;
7529
UINT ResolutionsListCount;
7530
const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;
7531
UINT MaxReferenceFramesInDPB;
7532
D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;
7533
D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;
7534
D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;
7535
D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;
7536
_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;
7537
} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT;
7538
7539
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES
7540
{
7541
union
7542
{
7543
UINT MaxBytesPerSlice;
7544
UINT NumberOfCodingUnitsPerSlice;
7545
UINT NumberOfRowsPerSlice;
7546
UINT NumberOfSlicesPerFrame;
7547
} ;
7548
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES;
7549
7550
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA
7551
{
7552
UINT DataSize;
7553
union
7554
{
7555
const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_H264;
7556
const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_HEVC;
7557
const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES *pTilesPartition_AV1;
7558
} ;
7559
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA;
7560
7561
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1
7562
{
7563
UINT NodeIndex;
7564
D3D12_VIDEO_ENCODER_CODEC Codec;
7565
DXGI_FORMAT InputFormat;
7566
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;
7567
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;
7568
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;
7569
D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh;
7570
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding;
7571
UINT ResolutionsListCount;
7572
const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList;
7573
UINT MaxReferenceFramesInDPB;
7574
D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags;
7575
D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags;
7576
D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile;
7577
D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel;
7578
_Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;
7579
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData;
7580
UINT MaxQualityVsSpeed;
7581
} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1;
7582
7583
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS
7584
{
7585
UINT NodeIndex;
7586
D3D12_VIDEO_ENCODER_CODEC Codec;
7587
D3D12_VIDEO_ENCODER_PROFILE_DESC Profile;
7588
DXGI_FORMAT InputFormat;
7589
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;
7590
BOOL IsSupported;
7591
UINT CompressedBitstreamBufferAccessAlignment;
7592
UINT EncoderMetadataBufferAccessAlignment;
7593
UINT MaxEncoderOutputMetadataBufferSize;
7594
} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS;
7595
7596
typedef
7597
enum D3D12_VIDEO_ENCODER_FLAGS
7598
{
7599
D3D12_VIDEO_ENCODER_FLAG_NONE = 0
7600
} D3D12_VIDEO_ENCODER_FLAGS;
7601
7602
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS);
7603
typedef struct D3D12_VIDEO_ENCODER_DESC
7604
{
7605
UINT NodeMask;
7606
D3D12_VIDEO_ENCODER_FLAGS Flags;
7607
D3D12_VIDEO_ENCODER_CODEC EncodeCodec;
7608
D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile;
7609
DXGI_FORMAT InputFormat;
7610
D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration;
7611
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision;
7612
} D3D12_VIDEO_ENCODER_DESC;
7613
7614
7615
7616
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_c_ifspec;
7617
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_s_ifspec;
7618
7619
#ifndef __ID3D12VideoEncoder_INTERFACE_DEFINED__
7620
#define __ID3D12VideoEncoder_INTERFACE_DEFINED__
7621
7622
/* interface ID3D12VideoEncoder */
7623
/* [unique][local][object][uuid] */
7624
7625
7626
EXTERN_C const IID IID_ID3D12VideoEncoder;
7627
7628
#if defined(__cplusplus) && !defined(CINTERFACE)
7629
7630
MIDL_INTERFACE("2E0D212D-8DF9-44A6-A770-BB289B182737")
7631
ID3D12VideoEncoder : public ID3D12Pageable
7632
{
7633
public:
7634
virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;
7635
7636
virtual D3D12_VIDEO_ENCODER_FLAGS STDMETHODCALLTYPE GetEncoderFlags( void) = 0;
7637
7638
virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;
7639
7640
virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(
7641
_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;
7642
7643
virtual HRESULT STDMETHODCALLTYPE GetCodecConfiguration(
7644
_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig) = 0;
7645
7646
virtual DXGI_FORMAT STDMETHODCALLTYPE GetInputFormat( void) = 0;
7647
7648
virtual D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE STDMETHODCALLTYPE GetMaxMotionEstimationPrecision( void) = 0;
7649
7650
};
7651
7652
7653
#else /* C style interface */
7654
7655
typedef struct ID3D12VideoEncoderVtbl
7656
{
7657
BEGIN_INTERFACE
7658
7659
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7660
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7661
ID3D12VideoEncoder * This,
7662
REFIID riid,
7663
_COM_Outptr_ void **ppvObject);
7664
7665
DECLSPEC_XFGVIRT(IUnknown, AddRef)
7666
ULONG ( STDMETHODCALLTYPE *AddRef )(
7667
ID3D12VideoEncoder * This);
7668
7669
DECLSPEC_XFGVIRT(IUnknown, Release)
7670
ULONG ( STDMETHODCALLTYPE *Release )(
7671
ID3D12VideoEncoder * This);
7672
7673
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7674
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7675
ID3D12VideoEncoder * This,
7676
_In_ REFGUID guid,
7677
_Inout_ UINT *pDataSize,
7678
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
7679
7680
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7681
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7682
ID3D12VideoEncoder * This,
7683
_In_ REFGUID guid,
7684
_In_ UINT DataSize,
7685
_In_reads_bytes_opt_( DataSize ) const void *pData);
7686
7687
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7688
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7689
ID3D12VideoEncoder * This,
7690
_In_ REFGUID guid,
7691
_In_opt_ const IUnknown *pData);
7692
7693
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7694
HRESULT ( STDMETHODCALLTYPE *SetName )(
7695
ID3D12VideoEncoder * This,
7696
_In_z_ LPCWSTR Name);
7697
7698
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7699
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7700
ID3D12VideoEncoder * This,
7701
REFIID riid,
7702
_COM_Outptr_opt_ void **ppvDevice);
7703
7704
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetNodeMask)
7705
UINT ( STDMETHODCALLTYPE *GetNodeMask )(
7706
ID3D12VideoEncoder * This);
7707
7708
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetEncoderFlags)
7709
D3D12_VIDEO_ENCODER_FLAGS ( STDMETHODCALLTYPE *GetEncoderFlags )(
7710
ID3D12VideoEncoder * This);
7711
7712
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodec)
7713
D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(
7714
ID3D12VideoEncoder * This);
7715
7716
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecProfile)
7717
HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(
7718
ID3D12VideoEncoder * This,
7719
_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);
7720
7721
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecConfiguration)
7722
HRESULT ( STDMETHODCALLTYPE *GetCodecConfiguration )(
7723
ID3D12VideoEncoder * This,
7724
_Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig);
7725
7726
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetInputFormat)
7727
DXGI_FORMAT ( STDMETHODCALLTYPE *GetInputFormat )(
7728
ID3D12VideoEncoder * This);
7729
7730
DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetMaxMotionEstimationPrecision)
7731
D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE ( STDMETHODCALLTYPE *GetMaxMotionEstimationPrecision )(
7732
ID3D12VideoEncoder * This);
7733
7734
END_INTERFACE
7735
} ID3D12VideoEncoderVtbl;
7736
7737
interface ID3D12VideoEncoder
7738
{
7739
CONST_VTBL struct ID3D12VideoEncoderVtbl *lpVtbl;
7740
};
7741
7742
7743
7744
#ifdef COBJMACROS
7745
7746
7747
#define ID3D12VideoEncoder_QueryInterface(This,riid,ppvObject) \
7748
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7749
7750
#define ID3D12VideoEncoder_AddRef(This) \
7751
( (This)->lpVtbl -> AddRef(This) )
7752
7753
#define ID3D12VideoEncoder_Release(This) \
7754
( (This)->lpVtbl -> Release(This) )
7755
7756
7757
#define ID3D12VideoEncoder_GetPrivateData(This,guid,pDataSize,pData) \
7758
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7759
7760
#define ID3D12VideoEncoder_SetPrivateData(This,guid,DataSize,pData) \
7761
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7762
7763
#define ID3D12VideoEncoder_SetPrivateDataInterface(This,guid,pData) \
7764
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7765
7766
#define ID3D12VideoEncoder_SetName(This,Name) \
7767
( (This)->lpVtbl -> SetName(This,Name) )
7768
7769
7770
#define ID3D12VideoEncoder_GetDevice(This,riid,ppvDevice) \
7771
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7772
7773
7774
7775
#define ID3D12VideoEncoder_GetNodeMask(This) \
7776
( (This)->lpVtbl -> GetNodeMask(This) )
7777
7778
#define ID3D12VideoEncoder_GetEncoderFlags(This) \
7779
( (This)->lpVtbl -> GetEncoderFlags(This) )
7780
7781
#define ID3D12VideoEncoder_GetCodec(This) \
7782
( (This)->lpVtbl -> GetCodec(This) )
7783
7784
#define ID3D12VideoEncoder_GetCodecProfile(This,dstProfile) \
7785
( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )
7786
7787
#define ID3D12VideoEncoder_GetCodecConfiguration(This,dstCodecConfig) \
7788
( (This)->lpVtbl -> GetCodecConfiguration(This,dstCodecConfig) )
7789
7790
#define ID3D12VideoEncoder_GetInputFormat(This) \
7791
( (This)->lpVtbl -> GetInputFormat(This) )
7792
7793
#define ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(This) \
7794
( (This)->lpVtbl -> GetMaxMotionEstimationPrecision(This) )
7795
7796
#endif /* COBJMACROS */
7797
7798
7799
#endif /* C style interface */
7800
7801
7802
7803
7804
#endif /* __ID3D12VideoEncoder_INTERFACE_DEFINED__ */
7805
7806
7807
#ifndef __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__
7808
#define __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__
7809
7810
/* interface ID3D12VideoEncoderHeap */
7811
/* [unique][local][object][uuid] */
7812
7813
7814
EXTERN_C const IID IID_ID3D12VideoEncoderHeap;
7815
7816
#if defined(__cplusplus) && !defined(CINTERFACE)
7817
7818
MIDL_INTERFACE("22B35D96-876A-44C0-B25E-FB8C9C7F1C4A")
7819
ID3D12VideoEncoderHeap : public ID3D12Pageable
7820
{
7821
public:
7822
virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0;
7823
7824
virtual D3D12_VIDEO_ENCODER_HEAP_FLAGS STDMETHODCALLTYPE GetEncoderHeapFlags( void) = 0;
7825
7826
virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0;
7827
7828
virtual HRESULT STDMETHODCALLTYPE GetCodecProfile(
7829
_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0;
7830
7831
virtual HRESULT STDMETHODCALLTYPE GetCodecLevel(
7832
_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel) = 0;
7833
7834
virtual UINT STDMETHODCALLTYPE GetResolutionListCount( void) = 0;
7835
7836
virtual HRESULT STDMETHODCALLTYPE GetResolutionList(
7837
const UINT ResolutionsListCount,
7838
_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList) = 0;
7839
7840
};
7841
7842
7843
#else /* C style interface */
7844
7845
typedef struct ID3D12VideoEncoderHeapVtbl
7846
{
7847
BEGIN_INTERFACE
7848
7849
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
7850
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7851
ID3D12VideoEncoderHeap * This,
7852
REFIID riid,
7853
_COM_Outptr_ void **ppvObject);
7854
7855
DECLSPEC_XFGVIRT(IUnknown, AddRef)
7856
ULONG ( STDMETHODCALLTYPE *AddRef )(
7857
ID3D12VideoEncoderHeap * This);
7858
7859
DECLSPEC_XFGVIRT(IUnknown, Release)
7860
ULONG ( STDMETHODCALLTYPE *Release )(
7861
ID3D12VideoEncoderHeap * This);
7862
7863
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
7864
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
7865
ID3D12VideoEncoderHeap * This,
7866
_In_ REFGUID guid,
7867
_Inout_ UINT *pDataSize,
7868
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
7869
7870
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
7871
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
7872
ID3D12VideoEncoderHeap * This,
7873
_In_ REFGUID guid,
7874
_In_ UINT DataSize,
7875
_In_reads_bytes_opt_( DataSize ) const void *pData);
7876
7877
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
7878
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
7879
ID3D12VideoEncoderHeap * This,
7880
_In_ REFGUID guid,
7881
_In_opt_ const IUnknown *pData);
7882
7883
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
7884
HRESULT ( STDMETHODCALLTYPE *SetName )(
7885
ID3D12VideoEncoderHeap * This,
7886
_In_z_ LPCWSTR Name);
7887
7888
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
7889
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
7890
ID3D12VideoEncoderHeap * This,
7891
REFIID riid,
7892
_COM_Outptr_opt_ void **ppvDevice);
7893
7894
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask)
7895
UINT ( STDMETHODCALLTYPE *GetNodeMask )(
7896
ID3D12VideoEncoderHeap * This);
7897
7898
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags)
7899
D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )(
7900
ID3D12VideoEncoderHeap * This);
7901
7902
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec)
7903
D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )(
7904
ID3D12VideoEncoderHeap * This);
7905
7906
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile)
7907
HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )(
7908
ID3D12VideoEncoderHeap * This,
7909
_Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile);
7910
7911
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel)
7912
HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )(
7913
ID3D12VideoEncoderHeap * This,
7914
_Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel);
7915
7916
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount)
7917
UINT ( STDMETHODCALLTYPE *GetResolutionListCount )(
7918
ID3D12VideoEncoderHeap * This);
7919
7920
DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList)
7921
HRESULT ( STDMETHODCALLTYPE *GetResolutionList )(
7922
ID3D12VideoEncoderHeap * This,
7923
const UINT ResolutionsListCount,
7924
_Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList);
7925
7926
END_INTERFACE
7927
} ID3D12VideoEncoderHeapVtbl;
7928
7929
interface ID3D12VideoEncoderHeap
7930
{
7931
CONST_VTBL struct ID3D12VideoEncoderHeapVtbl *lpVtbl;
7932
};
7933
7934
7935
7936
#ifdef COBJMACROS
7937
7938
7939
#define ID3D12VideoEncoderHeap_QueryInterface(This,riid,ppvObject) \
7940
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7941
7942
#define ID3D12VideoEncoderHeap_AddRef(This) \
7943
( (This)->lpVtbl -> AddRef(This) )
7944
7945
#define ID3D12VideoEncoderHeap_Release(This) \
7946
( (This)->lpVtbl -> Release(This) )
7947
7948
7949
#define ID3D12VideoEncoderHeap_GetPrivateData(This,guid,pDataSize,pData) \
7950
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
7951
7952
#define ID3D12VideoEncoderHeap_SetPrivateData(This,guid,DataSize,pData) \
7953
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
7954
7955
#define ID3D12VideoEncoderHeap_SetPrivateDataInterface(This,guid,pData) \
7956
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
7957
7958
#define ID3D12VideoEncoderHeap_SetName(This,Name) \
7959
( (This)->lpVtbl -> SetName(This,Name) )
7960
7961
7962
#define ID3D12VideoEncoderHeap_GetDevice(This,riid,ppvDevice) \
7963
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
7964
7965
7966
7967
#define ID3D12VideoEncoderHeap_GetNodeMask(This) \
7968
( (This)->lpVtbl -> GetNodeMask(This) )
7969
7970
#define ID3D12VideoEncoderHeap_GetEncoderHeapFlags(This) \
7971
( (This)->lpVtbl -> GetEncoderHeapFlags(This) )
7972
7973
#define ID3D12VideoEncoderHeap_GetCodec(This) \
7974
( (This)->lpVtbl -> GetCodec(This) )
7975
7976
#define ID3D12VideoEncoderHeap_GetCodecProfile(This,dstProfile) \
7977
( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) )
7978
7979
#define ID3D12VideoEncoderHeap_GetCodecLevel(This,dstLevel) \
7980
( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) )
7981
7982
#define ID3D12VideoEncoderHeap_GetResolutionListCount(This) \
7983
( (This)->lpVtbl -> GetResolutionListCount(This) )
7984
7985
#define ID3D12VideoEncoderHeap_GetResolutionList(This,ResolutionsListCount,pResolutionList) \
7986
( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) )
7987
7988
#endif /* COBJMACROS */
7989
7990
7991
#endif /* C style interface */
7992
7993
7994
7995
7996
#endif /* __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ */
7997
7998
7999
#ifndef __ID3D12VideoDevice3_INTERFACE_DEFINED__
8000
#define __ID3D12VideoDevice3_INTERFACE_DEFINED__
8001
8002
/* interface ID3D12VideoDevice3 */
8003
/* [unique][local][object][uuid] */
8004
8005
8006
EXTERN_C const IID IID_ID3D12VideoDevice3;
8007
8008
#if defined(__cplusplus) && !defined(CINTERFACE)
8009
8010
MIDL_INTERFACE("4243ADB4-3A32-4666-973C-0CCC5625DC44")
8011
ID3D12VideoDevice3 : public ID3D12VideoDevice2
8012
{
8013
public:
8014
virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoder(
8015
_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,
8016
_In_ REFIID riid,
8017
_COM_Outptr_ void **ppVideoEncoder) = 0;
8018
8019
virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap(
8020
_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,
8021
_In_ REFIID riid,
8022
_COM_Outptr_ void **ppVideoEncoderHeap) = 0;
8023
8024
};
8025
8026
8027
#else /* C style interface */
8028
8029
typedef struct ID3D12VideoDevice3Vtbl
8030
{
8031
BEGIN_INTERFACE
8032
8033
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8034
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8035
ID3D12VideoDevice3 * This,
8036
REFIID riid,
8037
_COM_Outptr_ void **ppvObject);
8038
8039
DECLSPEC_XFGVIRT(IUnknown, AddRef)
8040
ULONG ( STDMETHODCALLTYPE *AddRef )(
8041
ID3D12VideoDevice3 * This);
8042
8043
DECLSPEC_XFGVIRT(IUnknown, Release)
8044
ULONG ( STDMETHODCALLTYPE *Release )(
8045
ID3D12VideoDevice3 * This);
8046
8047
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport)
8048
HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )(
8049
ID3D12VideoDevice3 * This,
8050
D3D12_FEATURE_VIDEO FeatureVideo,
8051
_Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData,
8052
UINT FeatureSupportDataSize);
8053
8054
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder)
8055
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )(
8056
ID3D12VideoDevice3 * This,
8057
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
8058
_In_ REFIID riid,
8059
_COM_Outptr_ void **ppVideoDecoder);
8060
8061
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap)
8062
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )(
8063
ID3D12VideoDevice3 * This,
8064
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
8065
_In_ REFIID riid,
8066
_COM_Outptr_ void **ppVideoDecoderHeap);
8067
8068
DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor)
8069
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )(
8070
ID3D12VideoDevice3 * This,
8071
UINT NodeMask,
8072
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
8073
UINT NumInputStreamDescs,
8074
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
8075
_In_ REFIID riid,
8076
_COM_Outptr_ void **ppVideoProcessor);
8077
8078
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator)
8079
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )(
8080
ID3D12VideoDevice3 * This,
8081
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc,
8082
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8083
_In_ REFIID riid,
8084
_COM_Outptr_ void **ppVideoMotionEstimator);
8085
8086
DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap)
8087
HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )(
8088
ID3D12VideoDevice3 * This,
8089
_In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc,
8090
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8091
_In_ REFIID riid,
8092
_COM_Outptr_ void **ppVideoMotionVectorHeap);
8093
8094
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1)
8095
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )(
8096
ID3D12VideoDevice3 * This,
8097
_In_ const D3D12_VIDEO_DECODER_DESC *pDesc,
8098
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8099
_In_ REFIID riid,
8100
_COM_Outptr_ void **ppVideoDecoder);
8101
8102
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1)
8103
HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )(
8104
ID3D12VideoDevice3 * This,
8105
_In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc,
8106
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8107
_In_ REFIID riid,
8108
_COM_Outptr_ void **ppVideoDecoderHeap);
8109
8110
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1)
8111
HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )(
8112
ID3D12VideoDevice3 * This,
8113
UINT NodeMask,
8114
_In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc,
8115
UINT NumInputStreamDescs,
8116
_In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs,
8117
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8118
_In_ REFIID riid,
8119
_COM_Outptr_ void **ppVideoProcessor);
8120
8121
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand)
8122
HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )(
8123
ID3D12VideoDevice3 * This,
8124
_In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc,
8125
_In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters,
8126
SIZE_T CreationParametersDataSizeInBytes,
8127
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession,
8128
_In_ REFIID riid,
8129
_COM_Outptr_ void **ppVideoExtensionCommand);
8130
8131
DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand)
8132
HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
8133
ID3D12VideoDevice3 * This,
8134
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
8135
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
8136
SIZE_T ExecutionParametersSizeInBytes,
8137
_Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData,
8138
SIZE_T OutputDataSizeInBytes);
8139
8140
DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder)
8141
HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )(
8142
ID3D12VideoDevice3 * This,
8143
_In_ const D3D12_VIDEO_ENCODER_DESC *pDesc,
8144
_In_ REFIID riid,
8145
_COM_Outptr_ void **ppVideoEncoder);
8146
8147
DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap)
8148
HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )(
8149
ID3D12VideoDevice3 * This,
8150
_In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc,
8151
_In_ REFIID riid,
8152
_COM_Outptr_ void **ppVideoEncoderHeap);
8153
8154
END_INTERFACE
8155
} ID3D12VideoDevice3Vtbl;
8156
8157
interface ID3D12VideoDevice3
8158
{
8159
CONST_VTBL struct ID3D12VideoDevice3Vtbl *lpVtbl;
8160
};
8161
8162
8163
8164
#ifdef COBJMACROS
8165
8166
8167
#define ID3D12VideoDevice3_QueryInterface(This,riid,ppvObject) \
8168
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8169
8170
#define ID3D12VideoDevice3_AddRef(This) \
8171
( (This)->lpVtbl -> AddRef(This) )
8172
8173
#define ID3D12VideoDevice3_Release(This) \
8174
( (This)->lpVtbl -> Release(This) )
8175
8176
8177
#define ID3D12VideoDevice3_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \
8178
( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) )
8179
8180
#define ID3D12VideoDevice3_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \
8181
( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) )
8182
8183
#define ID3D12VideoDevice3_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \
8184
( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) )
8185
8186
#define ID3D12VideoDevice3_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \
8187
( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) )
8188
8189
8190
#define ID3D12VideoDevice3_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \
8191
( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) )
8192
8193
#define ID3D12VideoDevice3_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \
8194
( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) )
8195
8196
8197
#define ID3D12VideoDevice3_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \
8198
( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) )
8199
8200
#define ID3D12VideoDevice3_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \
8201
( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) )
8202
8203
#define ID3D12VideoDevice3_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \
8204
( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) )
8205
8206
#define ID3D12VideoDevice3_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \
8207
( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) )
8208
8209
#define ID3D12VideoDevice3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \
8210
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) )
8211
8212
8213
#define ID3D12VideoDevice3_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \
8214
( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) )
8215
8216
#define ID3D12VideoDevice3_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \
8217
( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) )
8218
8219
#endif /* COBJMACROS */
8220
8221
8222
#endif /* C style interface */
8223
8224
8225
8226
8227
#endif /* __ID3D12VideoDevice3_INTERFACE_DEFINED__ */
8228
8229
8230
/* interface __MIDL_itf_d3d12video_0000_0025 */
8231
/* [local] */
8232
8233
typedef
8234
enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H264
8235
{
8236
D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0,
8237
D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1,
8238
D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2,
8239
D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 3
8240
} D3D12_VIDEO_ENCODER_FRAME_TYPE_H264;
8241
8242
typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264
8243
{
8244
UINT ReconstructedPictureResourceIndex;
8245
BOOL IsLongTermReference;
8246
UINT LongTermPictureIdx;
8247
UINT PictureOrderCountNumber;
8248
UINT FrameDecodingOrderNumber;
8249
UINT TemporalLayerIndex;
8250
} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264;
8251
8252
typedef
8253
enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS
8254
{
8255
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0,
8256
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1
8257
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS;
8258
8259
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS);
8260
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION
8261
{
8262
UCHAR memory_management_control_operation;
8263
UINT difference_of_pic_nums_minus1;
8264
UINT long_term_pic_num;
8265
UINT long_term_frame_idx;
8266
UINT max_long_term_frame_idx_plus1;
8267
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION;
8268
8269
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION
8270
{
8271
UCHAR modification_of_pic_nums_idc;
8272
UINT abs_diff_pic_num_minus1;
8273
UINT long_term_pic_num;
8274
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION;
8275
8276
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264
8277
{
8278
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags;
8279
D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType;
8280
UINT pic_parameter_set_id;
8281
UINT idr_pic_id;
8282
UINT PictureOrderCountNumber;
8283
UINT FrameDecodingOrderNumber;
8284
UINT TemporalLayerIndex;
8285
UINT List0ReferenceFramesCount;
8286
_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;
8287
UINT List1ReferenceFramesCount;
8288
_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;
8289
UINT ReferenceFramesReconPictureDescriptorsCount;
8290
_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 *pReferenceFramesReconPictureDescriptors;
8291
UCHAR adaptive_ref_pic_marking_mode_flag;
8292
UINT RefPicMarkingOperationsCommandsCount;
8293
_Field_size_full_(RefPicMarkingOperationsCommandsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION *pRefPicMarkingOperationsCommands;
8294
UINT List0RefPicModificationsCount;
8295
_Field_size_full_(List0RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList0RefPicModifications;
8296
UINT List1RefPicModificationsCount;
8297
_Field_size_full_(List1RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList1RefPicModifications;
8298
UINT QPMapValuesCount;
8299
_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;
8300
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264;
8301
8302
typedef
8303
enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC
8304
{
8305
D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0,
8306
D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1,
8307
D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2,
8308
D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 3
8309
} D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC;
8310
8311
typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC
8312
{
8313
UINT ReconstructedPictureResourceIndex;
8314
BOOL IsRefUsedByCurrentPic;
8315
BOOL IsLongTermReference;
8316
UINT PictureOrderCountNumber;
8317
UINT TemporalLayerIndex;
8318
} D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC;
8319
8320
typedef
8321
enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS
8322
{
8323
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0,
8324
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1
8325
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS;
8326
8327
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS);
8328
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC
8329
{
8330
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags;
8331
D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType;
8332
UINT slice_pic_parameter_set_id;
8333
UINT PictureOrderCountNumber;
8334
UINT TemporalLayerIndex;
8335
UINT List0ReferenceFramesCount;
8336
_Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames;
8337
UINT List1ReferenceFramesCount;
8338
_Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames;
8339
UINT ReferenceFramesReconPictureDescriptorsCount;
8340
_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors;
8341
UINT List0RefPicModificationsCount;
8342
_Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications;
8343
UINT List1RefPicModificationsCount;
8344
_Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications;
8345
UINT QPMapValuesCount;
8346
_Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap;
8347
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC;
8348
8349
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA
8350
{
8351
UINT DataSize;
8352
union
8353
{
8354
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData;
8355
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC *pHEVCPicData;
8356
D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData;
8357
} ;
8358
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA;
8359
8360
typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES
8361
{
8362
UINT NumTexture2Ds;
8363
_Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds;
8364
_Field_size_full_(NumTexture2Ds) UINT *pSubresources;
8365
} D3D12_VIDEO_ENCODE_REFERENCE_FRAMES;
8366
8367
typedef
8368
enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS
8369
{
8370
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0,
8371
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1
8372
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS;
8373
8374
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS);
8375
typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC
8376
{
8377
UINT IntraRefreshFrameIndex;
8378
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags;
8379
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData;
8380
D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames;
8381
} D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC;
8382
8383
typedef
8384
enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS
8385
{
8386
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0,
8387
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1,
8388
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2,
8389
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4,
8390
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8,
8391
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x10
8392
} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS;
8393
8394
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS);
8395
typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC
8396
{
8397
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags;
8398
D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig;
8399
D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl;
8400
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution;
8401
D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode;
8402
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData;
8403
D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence;
8404
} D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC;
8405
8406
typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS
8407
{
8408
D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc;
8409
D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc;
8410
ID3D12Resource *pInputFrame;
8411
UINT InputFrameSubresource;
8412
UINT CurrentFrameBitstreamMetadataSize;
8413
} D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS;
8414
8415
typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM
8416
{
8417
ID3D12Resource *pBuffer;
8418
UINT64 FrameStartOffset;
8419
} D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM;
8420
8421
typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE
8422
{
8423
ID3D12Resource *pReconstructedPicture;
8424
UINT ReconstructedPictureSubresource;
8425
} D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE;
8426
8427
typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA
8428
{
8429
UINT64 bSize;
8430
UINT64 bStartOffset;
8431
UINT64 bHeaderSize;
8432
} D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA;
8433
8434
typedef
8435
enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS
8436
{
8437
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0,
8438
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1,
8439
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2,
8440
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4,
8441
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8,
8442
D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x10
8443
} D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS;
8444
8445
DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS);
8446
typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS
8447
{
8448
UINT64 AverageQP;
8449
UINT64 IntraCodingUnitsCount;
8450
UINT64 InterCodingUnitsCount;
8451
UINT64 SkipCodingUnitsCount;
8452
UINT64 AverageMotionEstimationXDirection;
8453
UINT64 AverageMotionEstimationYDirection;
8454
} D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS;
8455
8456
typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA
8457
{
8458
UINT64 EncodeErrorFlags;
8459
D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats;
8460
UINT64 EncodedBitstreamWrittenBytesCount;
8461
UINT64 WrittenSubregionsCount;
8462
} D3D12_VIDEO_ENCODER_OUTPUT_METADATA;
8463
8464
typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER
8465
{
8466
ID3D12Resource *pBuffer;
8467
UINT64 Offset;
8468
} D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER;
8469
8470
typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS
8471
{
8472
D3D12_VIDEO_ENCODER_CODEC EncoderCodec;
8473
D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile;
8474
DXGI_FORMAT EncoderInputFormat;
8475
D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution;
8476
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata;
8477
} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS;
8478
8479
typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS
8480
{
8481
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata;
8482
} D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS;
8483
8484
typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS
8485
{
8486
D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream;
8487
D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture;
8488
D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata;
8489
} D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS;
8490
8491
8492
8493
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_c_ifspec;
8494
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_s_ifspec;
8495
8496
#ifndef __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__
8497
#define __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__
8498
8499
/* interface ID3D12VideoEncodeCommandList2 */
8500
/* [unique][local][object][uuid] */
8501
8502
8503
EXTERN_C const IID IID_ID3D12VideoEncodeCommandList2;
8504
8505
#if defined(__cplusplus) && !defined(CINTERFACE)
8506
8507
MIDL_INTERFACE("895491e2-e701-46a9-9a1f-8d3480ed867a")
8508
ID3D12VideoEncodeCommandList2 : public ID3D12VideoEncodeCommandList1
8509
{
8510
public:
8511
virtual void STDMETHODCALLTYPE EncodeFrame(
8512
_In_ ID3D12VideoEncoder *pEncoder,
8513
_In_ ID3D12VideoEncoderHeap *pHeap,
8514
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,
8515
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments) = 0;
8516
8517
virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata(
8518
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,
8519
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments) = 0;
8520
8521
};
8522
8523
8524
#else /* C style interface */
8525
8526
typedef struct ID3D12VideoEncodeCommandList2Vtbl
8527
{
8528
BEGIN_INTERFACE
8529
8530
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8531
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8532
ID3D12VideoEncodeCommandList2 * This,
8533
REFIID riid,
8534
_COM_Outptr_ void **ppvObject);
8535
8536
DECLSPEC_XFGVIRT(IUnknown, AddRef)
8537
ULONG ( STDMETHODCALLTYPE *AddRef )(
8538
ID3D12VideoEncodeCommandList2 * This);
8539
8540
DECLSPEC_XFGVIRT(IUnknown, Release)
8541
ULONG ( STDMETHODCALLTYPE *Release )(
8542
ID3D12VideoEncodeCommandList2 * This);
8543
8544
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8545
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8546
ID3D12VideoEncodeCommandList2 * This,
8547
_In_ REFGUID guid,
8548
_Inout_ UINT *pDataSize,
8549
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
8550
8551
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8552
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8553
ID3D12VideoEncodeCommandList2 * This,
8554
_In_ REFGUID guid,
8555
_In_ UINT DataSize,
8556
_In_reads_bytes_opt_( DataSize ) const void *pData);
8557
8558
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8559
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8560
ID3D12VideoEncodeCommandList2 * This,
8561
_In_ REFGUID guid,
8562
_In_opt_ const IUnknown *pData);
8563
8564
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8565
HRESULT ( STDMETHODCALLTYPE *SetName )(
8566
ID3D12VideoEncodeCommandList2 * This,
8567
_In_z_ LPCWSTR Name);
8568
8569
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8570
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8571
ID3D12VideoEncodeCommandList2 * This,
8572
REFIID riid,
8573
_COM_Outptr_opt_ void **ppvDevice);
8574
8575
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
8576
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
8577
ID3D12VideoEncodeCommandList2 * This);
8578
8579
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
8580
HRESULT ( STDMETHODCALLTYPE *Close )(
8581
ID3D12VideoEncodeCommandList2 * This);
8582
8583
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
8584
HRESULT ( STDMETHODCALLTYPE *Reset )(
8585
ID3D12VideoEncodeCommandList2 * This,
8586
_In_ ID3D12CommandAllocator *pAllocator);
8587
8588
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
8589
void ( STDMETHODCALLTYPE *ClearState )(
8590
ID3D12VideoEncodeCommandList2 * This);
8591
8592
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
8593
void ( STDMETHODCALLTYPE *ResourceBarrier )(
8594
ID3D12VideoEncodeCommandList2 * This,
8595
_In_ UINT NumBarriers,
8596
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
8597
8598
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
8599
void ( STDMETHODCALLTYPE *DiscardResource )(
8600
ID3D12VideoEncodeCommandList2 * This,
8601
_In_ ID3D12Resource *pResource,
8602
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
8603
8604
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
8605
void ( STDMETHODCALLTYPE *BeginQuery )(
8606
ID3D12VideoEncodeCommandList2 * This,
8607
_In_ ID3D12QueryHeap *pQueryHeap,
8608
_In_ D3D12_QUERY_TYPE Type,
8609
_In_ UINT Index);
8610
8611
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
8612
void ( STDMETHODCALLTYPE *EndQuery )(
8613
ID3D12VideoEncodeCommandList2 * This,
8614
_In_ ID3D12QueryHeap *pQueryHeap,
8615
_In_ D3D12_QUERY_TYPE Type,
8616
_In_ UINT Index);
8617
8618
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
8619
void ( STDMETHODCALLTYPE *ResolveQueryData )(
8620
ID3D12VideoEncodeCommandList2 * This,
8621
_In_ ID3D12QueryHeap *pQueryHeap,
8622
_In_ D3D12_QUERY_TYPE Type,
8623
_In_ UINT StartIndex,
8624
_In_ UINT NumQueries,
8625
_In_ ID3D12Resource *pDestinationBuffer,
8626
_In_ UINT64 AlignedDestinationBufferOffset);
8627
8628
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
8629
void ( STDMETHODCALLTYPE *SetPredication )(
8630
ID3D12VideoEncodeCommandList2 * This,
8631
_In_opt_ ID3D12Resource *pBuffer,
8632
_In_ UINT64 AlignedBufferOffset,
8633
_In_ D3D12_PREDICATION_OP Operation);
8634
8635
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
8636
void ( STDMETHODCALLTYPE *SetMarker )(
8637
ID3D12VideoEncodeCommandList2 * This,
8638
UINT Metadata,
8639
_In_reads_bytes_opt_(Size) const void *pData,
8640
UINT Size);
8641
8642
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
8643
void ( STDMETHODCALLTYPE *BeginEvent )(
8644
ID3D12VideoEncodeCommandList2 * This,
8645
UINT Metadata,
8646
_In_reads_bytes_opt_(Size) const void *pData,
8647
UINT Size);
8648
8649
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
8650
void ( STDMETHODCALLTYPE *EndEvent )(
8651
ID3D12VideoEncodeCommandList2 * This);
8652
8653
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
8654
void ( STDMETHODCALLTYPE *EstimateMotion )(
8655
ID3D12VideoEncodeCommandList2 * This,
8656
_In_ ID3D12VideoMotionEstimator *pMotionEstimator,
8657
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
8658
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
8659
8660
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
8661
void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
8662
ID3D12VideoEncodeCommandList2 * This,
8663
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
8664
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
8665
8666
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
8667
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
8668
ID3D12VideoEncodeCommandList2 * This,
8669
UINT Count,
8670
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8671
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
8672
8673
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
8674
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
8675
ID3D12VideoEncodeCommandList2 * This,
8676
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
8677
8678
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)
8679
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
8680
ID3D12VideoEncodeCommandList2 * This,
8681
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
8682
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
8683
SIZE_T InitializationParametersSizeInBytes);
8684
8685
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)
8686
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
8687
ID3D12VideoEncodeCommandList2 * This,
8688
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
8689
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
8690
SIZE_T ExecutionParametersSizeInBytes);
8691
8692
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)
8693
void ( STDMETHODCALLTYPE *EncodeFrame )(
8694
ID3D12VideoEncodeCommandList2 * This,
8695
_In_ ID3D12VideoEncoder *pEncoder,
8696
_In_ ID3D12VideoEncoderHeap *pHeap,
8697
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,
8698
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);
8699
8700
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)
8701
void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(
8702
ID3D12VideoEncodeCommandList2 * This,
8703
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,
8704
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);
8705
8706
END_INTERFACE
8707
} ID3D12VideoEncodeCommandList2Vtbl;
8708
8709
interface ID3D12VideoEncodeCommandList2
8710
{
8711
CONST_VTBL struct ID3D12VideoEncodeCommandList2Vtbl *lpVtbl;
8712
};
8713
8714
8715
8716
#ifdef COBJMACROS
8717
8718
8719
#define ID3D12VideoEncodeCommandList2_QueryInterface(This,riid,ppvObject) \
8720
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8721
8722
#define ID3D12VideoEncodeCommandList2_AddRef(This) \
8723
( (This)->lpVtbl -> AddRef(This) )
8724
8725
#define ID3D12VideoEncodeCommandList2_Release(This) \
8726
( (This)->lpVtbl -> Release(This) )
8727
8728
8729
#define ID3D12VideoEncodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \
8730
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
8731
8732
#define ID3D12VideoEncodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \
8733
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
8734
8735
#define ID3D12VideoEncodeCommandList2_SetPrivateDataInterface(This,guid,pData) \
8736
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
8737
8738
#define ID3D12VideoEncodeCommandList2_SetName(This,Name) \
8739
( (This)->lpVtbl -> SetName(This,Name) )
8740
8741
8742
#define ID3D12VideoEncodeCommandList2_GetDevice(This,riid,ppvDevice) \
8743
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
8744
8745
8746
#define ID3D12VideoEncodeCommandList2_GetType(This) \
8747
( (This)->lpVtbl -> GetType(This) )
8748
8749
8750
#define ID3D12VideoEncodeCommandList2_Close(This) \
8751
( (This)->lpVtbl -> Close(This) )
8752
8753
#define ID3D12VideoEncodeCommandList2_Reset(This,pAllocator) \
8754
( (This)->lpVtbl -> Reset(This,pAllocator) )
8755
8756
#define ID3D12VideoEncodeCommandList2_ClearState(This) \
8757
( (This)->lpVtbl -> ClearState(This) )
8758
8759
#define ID3D12VideoEncodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \
8760
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
8761
8762
#define ID3D12VideoEncodeCommandList2_DiscardResource(This,pResource,pRegion) \
8763
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
8764
8765
#define ID3D12VideoEncodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \
8766
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
8767
8768
#define ID3D12VideoEncodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \
8769
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
8770
8771
#define ID3D12VideoEncodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
8772
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
8773
8774
#define ID3D12VideoEncodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
8775
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
8776
8777
#define ID3D12VideoEncodeCommandList2_SetMarker(This,Metadata,pData,Size) \
8778
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
8779
8780
#define ID3D12VideoEncodeCommandList2_BeginEvent(This,Metadata,pData,Size) \
8781
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
8782
8783
#define ID3D12VideoEncodeCommandList2_EndEvent(This) \
8784
( (This)->lpVtbl -> EndEvent(This) )
8785
8786
#define ID3D12VideoEncodeCommandList2_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
8787
( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
8788
8789
#define ID3D12VideoEncodeCommandList2_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
8790
( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
8791
8792
#define ID3D12VideoEncodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \
8793
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
8794
8795
#define ID3D12VideoEncodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \
8796
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
8797
8798
8799
#define ID3D12VideoEncodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
8800
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
8801
8802
#define ID3D12VideoEncodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
8803
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
8804
8805
8806
#define ID3D12VideoEncodeCommandList2_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \
8807
( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )
8808
8809
#define ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \
8810
( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )
8811
8812
#endif /* COBJMACROS */
8813
8814
8815
#endif /* C style interface */
8816
8817
8818
8819
8820
#endif /* __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ */
8821
8822
8823
#ifndef __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__
8824
#define __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__
8825
8826
/* interface ID3D12VideoEncodeCommandList3 */
8827
/* [unique][local][object][uuid] */
8828
8829
8830
EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3;
8831
8832
#if defined(__cplusplus) && !defined(CINTERFACE)
8833
8834
MIDL_INTERFACE("7f027b22-1515-4e85-aa0d-026486580576")
8835
ID3D12VideoEncodeCommandList3 : public ID3D12VideoEncodeCommandList2
8836
{
8837
public:
8838
virtual void STDMETHODCALLTYPE Barrier(
8839
UINT32 NumBarrierGroups,
8840
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0;
8841
8842
};
8843
8844
8845
#else /* C style interface */
8846
8847
typedef struct ID3D12VideoEncodeCommandList3Vtbl
8848
{
8849
BEGIN_INTERFACE
8850
8851
DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
8852
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8853
ID3D12VideoEncodeCommandList3 * This,
8854
REFIID riid,
8855
_COM_Outptr_ void **ppvObject);
8856
8857
DECLSPEC_XFGVIRT(IUnknown, AddRef)
8858
ULONG ( STDMETHODCALLTYPE *AddRef )(
8859
ID3D12VideoEncodeCommandList3 * This);
8860
8861
DECLSPEC_XFGVIRT(IUnknown, Release)
8862
ULONG ( STDMETHODCALLTYPE *Release )(
8863
ID3D12VideoEncodeCommandList3 * This);
8864
8865
DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData)
8866
HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
8867
ID3D12VideoEncodeCommandList3 * This,
8868
_In_ REFGUID guid,
8869
_Inout_ UINT *pDataSize,
8870
_Out_writes_bytes_opt_( *pDataSize ) void *pData);
8871
8872
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData)
8873
HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
8874
ID3D12VideoEncodeCommandList3 * This,
8875
_In_ REFGUID guid,
8876
_In_ UINT DataSize,
8877
_In_reads_bytes_opt_( DataSize ) const void *pData);
8878
8879
DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface)
8880
HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
8881
ID3D12VideoEncodeCommandList3 * This,
8882
_In_ REFGUID guid,
8883
_In_opt_ const IUnknown *pData);
8884
8885
DECLSPEC_XFGVIRT(ID3D12Object, SetName)
8886
HRESULT ( STDMETHODCALLTYPE *SetName )(
8887
ID3D12VideoEncodeCommandList3 * This,
8888
_In_z_ LPCWSTR Name);
8889
8890
DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice)
8891
HRESULT ( STDMETHODCALLTYPE *GetDevice )(
8892
ID3D12VideoEncodeCommandList3 * This,
8893
REFIID riid,
8894
_COM_Outptr_opt_ void **ppvDevice);
8895
8896
DECLSPEC_XFGVIRT(ID3D12CommandList, GetType)
8897
D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )(
8898
ID3D12VideoEncodeCommandList3 * This);
8899
8900
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close)
8901
HRESULT ( STDMETHODCALLTYPE *Close )(
8902
ID3D12VideoEncodeCommandList3 * This);
8903
8904
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset)
8905
HRESULT ( STDMETHODCALLTYPE *Reset )(
8906
ID3D12VideoEncodeCommandList3 * This,
8907
_In_ ID3D12CommandAllocator *pAllocator);
8908
8909
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState)
8910
void ( STDMETHODCALLTYPE *ClearState )(
8911
ID3D12VideoEncodeCommandList3 * This);
8912
8913
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier)
8914
void ( STDMETHODCALLTYPE *ResourceBarrier )(
8915
ID3D12VideoEncodeCommandList3 * This,
8916
_In_ UINT NumBarriers,
8917
_In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers);
8918
8919
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource)
8920
void ( STDMETHODCALLTYPE *DiscardResource )(
8921
ID3D12VideoEncodeCommandList3 * This,
8922
_In_ ID3D12Resource *pResource,
8923
_In_opt_ const D3D12_DISCARD_REGION *pRegion);
8924
8925
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery)
8926
void ( STDMETHODCALLTYPE *BeginQuery )(
8927
ID3D12VideoEncodeCommandList3 * This,
8928
_In_ ID3D12QueryHeap *pQueryHeap,
8929
_In_ D3D12_QUERY_TYPE Type,
8930
_In_ UINT Index);
8931
8932
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery)
8933
void ( STDMETHODCALLTYPE *EndQuery )(
8934
ID3D12VideoEncodeCommandList3 * This,
8935
_In_ ID3D12QueryHeap *pQueryHeap,
8936
_In_ D3D12_QUERY_TYPE Type,
8937
_In_ UINT Index);
8938
8939
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData)
8940
void ( STDMETHODCALLTYPE *ResolveQueryData )(
8941
ID3D12VideoEncodeCommandList3 * This,
8942
_In_ ID3D12QueryHeap *pQueryHeap,
8943
_In_ D3D12_QUERY_TYPE Type,
8944
_In_ UINT StartIndex,
8945
_In_ UINT NumQueries,
8946
_In_ ID3D12Resource *pDestinationBuffer,
8947
_In_ UINT64 AlignedDestinationBufferOffset);
8948
8949
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication)
8950
void ( STDMETHODCALLTYPE *SetPredication )(
8951
ID3D12VideoEncodeCommandList3 * This,
8952
_In_opt_ ID3D12Resource *pBuffer,
8953
_In_ UINT64 AlignedBufferOffset,
8954
_In_ D3D12_PREDICATION_OP Operation);
8955
8956
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker)
8957
void ( STDMETHODCALLTYPE *SetMarker )(
8958
ID3D12VideoEncodeCommandList3 * This,
8959
UINT Metadata,
8960
_In_reads_bytes_opt_(Size) const void *pData,
8961
UINT Size);
8962
8963
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent)
8964
void ( STDMETHODCALLTYPE *BeginEvent )(
8965
ID3D12VideoEncodeCommandList3 * This,
8966
UINT Metadata,
8967
_In_reads_bytes_opt_(Size) const void *pData,
8968
UINT Size);
8969
8970
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent)
8971
void ( STDMETHODCALLTYPE *EndEvent )(
8972
ID3D12VideoEncodeCommandList3 * This);
8973
8974
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion)
8975
void ( STDMETHODCALLTYPE *EstimateMotion )(
8976
ID3D12VideoEncodeCommandList3 * This,
8977
_In_ ID3D12VideoMotionEstimator *pMotionEstimator,
8978
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments,
8979
_In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments);
8980
8981
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap)
8982
void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )(
8983
ID3D12VideoEncodeCommandList3 * This,
8984
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments,
8985
const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments);
8986
8987
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate)
8988
void ( STDMETHODCALLTYPE *WriteBufferImmediate )(
8989
ID3D12VideoEncodeCommandList3 * This,
8990
UINT Count,
8991
_In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams,
8992
_In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes);
8993
8994
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession)
8995
void ( STDMETHODCALLTYPE *SetProtectedResourceSession )(
8996
ID3D12VideoEncodeCommandList3 * This,
8997
_In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession);
8998
8999
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand)
9000
void ( STDMETHODCALLTYPE *InitializeExtensionCommand )(
9001
ID3D12VideoEncodeCommandList3 * This,
9002
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
9003
_In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters,
9004
SIZE_T InitializationParametersSizeInBytes);
9005
9006
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand)
9007
void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )(
9008
ID3D12VideoEncodeCommandList3 * This,
9009
_In_ ID3D12VideoExtensionCommand *pExtensionCommand,
9010
_In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters,
9011
SIZE_T ExecutionParametersSizeInBytes);
9012
9013
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame)
9014
void ( STDMETHODCALLTYPE *EncodeFrame )(
9015
ID3D12VideoEncodeCommandList3 * This,
9016
_In_ ID3D12VideoEncoder *pEncoder,
9017
_In_ ID3D12VideoEncoderHeap *pHeap,
9018
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments,
9019
_In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments);
9020
9021
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata)
9022
void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )(
9023
ID3D12VideoEncodeCommandList3 * This,
9024
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments,
9025
_In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments);
9026
9027
DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier)
9028
void ( STDMETHODCALLTYPE *Barrier )(
9029
ID3D12VideoEncodeCommandList3 * This,
9030
UINT32 NumBarrierGroups,
9031
_In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups);
9032
9033
END_INTERFACE
9034
} ID3D12VideoEncodeCommandList3Vtbl;
9035
9036
interface ID3D12VideoEncodeCommandList3
9037
{
9038
CONST_VTBL struct ID3D12VideoEncodeCommandList3Vtbl *lpVtbl;
9039
};
9040
9041
9042
9043
#ifdef COBJMACROS
9044
9045
9046
#define ID3D12VideoEncodeCommandList3_QueryInterface(This,riid,ppvObject) \
9047
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9048
9049
#define ID3D12VideoEncodeCommandList3_AddRef(This) \
9050
( (This)->lpVtbl -> AddRef(This) )
9051
9052
#define ID3D12VideoEncodeCommandList3_Release(This) \
9053
( (This)->lpVtbl -> Release(This) )
9054
9055
9056
#define ID3D12VideoEncodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \
9057
( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) )
9058
9059
#define ID3D12VideoEncodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \
9060
( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) )
9061
9062
#define ID3D12VideoEncodeCommandList3_SetPrivateDataInterface(This,guid,pData) \
9063
( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) )
9064
9065
#define ID3D12VideoEncodeCommandList3_SetName(This,Name) \
9066
( (This)->lpVtbl -> SetName(This,Name) )
9067
9068
9069
#define ID3D12VideoEncodeCommandList3_GetDevice(This,riid,ppvDevice) \
9070
( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) )
9071
9072
9073
#define ID3D12VideoEncodeCommandList3_GetType(This) \
9074
( (This)->lpVtbl -> GetType(This) )
9075
9076
9077
#define ID3D12VideoEncodeCommandList3_Close(This) \
9078
( (This)->lpVtbl -> Close(This) )
9079
9080
#define ID3D12VideoEncodeCommandList3_Reset(This,pAllocator) \
9081
( (This)->lpVtbl -> Reset(This,pAllocator) )
9082
9083
#define ID3D12VideoEncodeCommandList3_ClearState(This) \
9084
( (This)->lpVtbl -> ClearState(This) )
9085
9086
#define ID3D12VideoEncodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \
9087
( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) )
9088
9089
#define ID3D12VideoEncodeCommandList3_DiscardResource(This,pResource,pRegion) \
9090
( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) )
9091
9092
#define ID3D12VideoEncodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \
9093
( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) )
9094
9095
#define ID3D12VideoEncodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \
9096
( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) )
9097
9098
#define ID3D12VideoEncodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \
9099
( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) )
9100
9101
#define ID3D12VideoEncodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \
9102
( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) )
9103
9104
#define ID3D12VideoEncodeCommandList3_SetMarker(This,Metadata,pData,Size) \
9105
( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) )
9106
9107
#define ID3D12VideoEncodeCommandList3_BeginEvent(This,Metadata,pData,Size) \
9108
( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) )
9109
9110
#define ID3D12VideoEncodeCommandList3_EndEvent(This) \
9111
( (This)->lpVtbl -> EndEvent(This) )
9112
9113
#define ID3D12VideoEncodeCommandList3_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \
9114
( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) )
9115
9116
#define ID3D12VideoEncodeCommandList3_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \
9117
( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) )
9118
9119
#define ID3D12VideoEncodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \
9120
( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) )
9121
9122
#define ID3D12VideoEncodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \
9123
( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) )
9124
9125
9126
#define ID3D12VideoEncodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \
9127
( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) )
9128
9129
#define ID3D12VideoEncodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \
9130
( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) )
9131
9132
9133
#define ID3D12VideoEncodeCommandList3_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \
9134
( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) )
9135
9136
#define ID3D12VideoEncodeCommandList3_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \
9137
( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) )
9138
9139
9140
#define ID3D12VideoEncodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \
9141
( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) )
9142
9143
#endif /* COBJMACROS */
9144
9145
9146
#endif /* C style interface */
9147
9148
9149
9150
9151
#endif /* __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ */
9152
9153
9154
/* interface __MIDL_itf_d3d12video_0000_0027 */
9155
/* [local] */
9156
9157
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */
9158
#pragma endregion
9159
DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);
9160
DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);
9161
DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);
9162
DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);
9163
DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);
9164
DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);
9165
DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);
9166
DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);
9167
DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);
9168
DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);
9169
DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);
9170
DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);
9171
DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);
9172
DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);
9173
DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);
9174
DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);
9175
DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);
9176
DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);
9177
DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13);
9178
DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);
9179
DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff);
9180
DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);
9181
DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37);
9182
DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A);
9183
DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44);
9184
DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a);
9185
DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76);
9186
9187
9188
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec;
9189
extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec;
9190
9191
/* Additional Prototypes for ALL interfaces */
9192
9193
/* end of Additional Prototypes */
9194
9195
#ifdef __cplusplus
9196
}
9197
#endif
9198
9199
#endif
9200
9201
9202
9203