diff options
Diffstat (limited to 'contrib/DirectX-Headers/include/directx/d3d12video.idl')
-rw-r--r-- | contrib/DirectX-Headers/include/directx/d3d12video.idl | 1448 |
1 files changed, 1448 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers/include/directx/d3d12video.idl b/contrib/DirectX-Headers/include/directx/d3d12video.idl new file mode 100644 index 0000000..a4d8945 --- /dev/null +++ b/contrib/DirectX-Headers/include/directx/d3d12video.idl | |||
@@ -0,0 +1,1448 @@ | |||
1 | /*------------------------------------------------------------------------------------- | ||
2 | * | ||
3 | * Copyright (c) Microsoft Corporation | ||
4 | * Licensed under the MIT license | ||
5 | * | ||
6 | *-------------------------------------------------------------------------------------*/ | ||
7 | import "OAIdl.idl"; | ||
8 | import "OCIdl.idl"; | ||
9 | |||
10 | import "dxgicommon.idl"; | ||
11 | import "d3d12.idl"; | ||
12 | |||
13 | cpp_quote("#include <winapifamily.h>") | ||
14 | |||
15 | #pragma region App Family | ||
16 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
17 | |||
18 | typedef enum D3D12_VIDEO_FIELD_TYPE | ||
19 | { | ||
20 | D3D12_VIDEO_FIELD_TYPE_NONE = 0, | ||
21 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, | ||
22 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2, | ||
23 | } D3D12_VIDEO_FIELD_TYPE; | ||
24 | |||
25 | typedef enum D3D12_VIDEO_FRAME_STEREO_FORMAT | ||
26 | { | ||
27 | D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, | ||
28 | D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, | ||
29 | D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, | ||
30 | D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, | ||
31 | D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4, | ||
32 | } D3D12_VIDEO_FRAME_STEREO_FORMAT; | ||
33 | |||
34 | typedef struct D3D12_VIDEO_FORMAT | ||
35 | { | ||
36 | DXGI_FORMAT Format; | ||
37 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
38 | } D3D12_VIDEO_FORMAT; | ||
39 | |||
40 | typedef struct D3D12_VIDEO_SAMPLE | ||
41 | { | ||
42 | UINT Width; | ||
43 | UINT Height; | ||
44 | D3D12_VIDEO_FORMAT Format; | ||
45 | } D3D12_VIDEO_SAMPLE; | ||
46 | |||
47 | typedef enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE | ||
48 | { | ||
49 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, | ||
50 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1, | ||
51 | } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; | ||
52 | |||
53 | typedef enum D3D12_FEATURE_VIDEO | ||
54 | { | ||
55 | D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, | ||
56 | D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, | ||
57 | D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, | ||
58 | D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, | ||
59 | D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, | ||
60 | D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, | ||
61 | D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, | ||
62 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, | ||
63 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, | ||
64 | D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, | ||
65 | D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, | ||
66 | D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, | ||
67 | D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18, | ||
68 | D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19, | ||
69 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20, | ||
70 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21, | ||
71 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22, | ||
72 | D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23, | ||
73 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24, | ||
74 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25, | ||
75 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26, | ||
76 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27, | ||
77 | D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28, | ||
78 | D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29, | ||
79 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30, | ||
80 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31, | ||
81 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32, | ||
82 | |||
83 | } D3D12_FEATURE_VIDEO; | ||
84 | |||
85 | typedef enum D3D12_BITSTREAM_ENCRYPTION_TYPE | ||
86 | { | ||
87 | D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0, | ||
88 | } D3D12_BITSTREAM_ENCRYPTION_TYPE; | ||
89 | |||
90 | typedef struct D3D12_VIDEO_DECODE_CONFIGURATION | ||
91 | { | ||
92 | GUID DecodeProfile; | ||
93 | D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; | ||
94 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; | ||
95 | } D3D12_VIDEO_DECODE_CONFIGURATION; | ||
96 | |||
97 | typedef struct D3D12_VIDEO_DECODER_DESC | ||
98 | { | ||
99 | UINT NodeMask; | ||
100 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
101 | } D3D12_VIDEO_DECODER_DESC; | ||
102 | |||
103 | typedef struct D3D12_VIDEO_DECODER_HEAP_DESC | ||
104 | { | ||
105 | UINT NodeMask; | ||
106 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
107 | UINT DecodeWidth; | ||
108 | UINT DecodeHeight; | ||
109 | DXGI_FORMAT Format; | ||
110 | DXGI_RATIONAL FrameRate; | ||
111 | UINT BitRate; | ||
112 | UINT MaxDecodePictureBufferCount; | ||
113 | } D3D12_VIDEO_DECODER_HEAP_DESC; | ||
114 | |||
115 | typedef struct D3D12_VIDEO_SIZE_RANGE | ||
116 | { | ||
117 | UINT MaxWidth; | ||
118 | UINT MaxHeight; | ||
119 | UINT MinWidth; | ||
120 | UINT MinHeight; | ||
121 | } D3D12_VIDEO_SIZE_RANGE; | ||
122 | |||
123 | typedef enum D3D12_VIDEO_PROCESS_FILTER | ||
124 | { | ||
125 | D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, | ||
126 | D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, | ||
127 | D3D12_VIDEO_PROCESS_FILTER_HUE = 2, | ||
128 | D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, | ||
129 | D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, | ||
130 | D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, | ||
131 | D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, | ||
132 | D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7, | ||
133 | } D3D12_VIDEO_PROCESS_FILTER; | ||
134 | |||
135 | typedef enum D3D12_VIDEO_PROCESS_FILTER_FLAGS | ||
136 | { | ||
137 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0x0, | ||
138 | D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = (1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS), | ||
139 | D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = (1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST), | ||
140 | D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = (1 << D3D12_VIDEO_PROCESS_FILTER_HUE), | ||
141 | D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = (1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION), | ||
142 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = (1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION), | ||
143 | D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT), | ||
144 | D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = (1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING), | ||
145 | D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT), | ||
146 | |||
147 | } D3D12_VIDEO_PROCESS_FILTER_FLAGS; | ||
148 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS );") | ||
149 | |||
150 | typedef enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS | ||
151 | { | ||
152 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0x0, | ||
153 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, | ||
154 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000, | ||
155 | |||
156 | } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; | ||
157 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS );") | ||
158 | |||
159 | typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING | ||
160 | { | ||
161 | BOOL Enable; | ||
162 | FLOAT Alpha; | ||
163 | } D3D12_VIDEO_PROCESS_ALPHA_BLENDING; | ||
164 | |||
165 | typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY | ||
166 | { | ||
167 | BOOL Enable; | ||
168 | FLOAT Lower; | ||
169 | FLOAT Upper; | ||
170 | } D3D12_VIDEO_PROCESS_LUMA_KEY; | ||
171 | |||
172 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC | ||
173 | { | ||
174 | DXGI_FORMAT Format; | ||
175 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
176 | DXGI_RATIONAL SourceAspectRatio; | ||
177 | DXGI_RATIONAL DestinationAspectRatio; | ||
178 | DXGI_RATIONAL FrameRate; | ||
179 | D3D12_VIDEO_SIZE_RANGE SourceSizeRange; | ||
180 | D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; | ||
181 | BOOL EnableOrientation; | ||
182 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; | ||
183 | D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; | ||
184 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
185 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; | ||
186 | BOOL EnableAlphaBlending; | ||
187 | D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; | ||
188 | UINT NumPastFrames; | ||
189 | UINT NumFutureFrames; | ||
190 | BOOL EnableAutoProcessing; | ||
191 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; | ||
192 | |||
193 | typedef enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE | ||
194 | { | ||
195 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, | ||
196 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, | ||
197 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, | ||
198 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3, | ||
199 | } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; | ||
200 | |||
201 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC | ||
202 | { | ||
203 | DXGI_FORMAT Format; | ||
204 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
205 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; | ||
206 | UINT AlphaFillModeSourceStreamIndex; | ||
207 | FLOAT BackgroundColor[4]; | ||
208 | DXGI_RATIONAL FrameRate; | ||
209 | BOOL EnableStereo; | ||
210 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; | ||
211 | |||
212 | [uuid(0946B7C9-EBF6-4047-BB73-8683E27DBB1F), object, local, pointer_default(unique)] | ||
213 | interface ID3D12VideoDecoderHeap | ||
214 | : ID3D12Pageable | ||
215 | { | ||
216 | D3D12_VIDEO_DECODER_HEAP_DESC GetDesc(); | ||
217 | } | ||
218 | |||
219 | [uuid(1F052807-0B46-4ACC-8A89-364F793718A4), object, local, pointer_default(unique)] | ||
220 | interface ID3D12VideoDevice | ||
221 | : IUnknown | ||
222 | { | ||
223 | HRESULT CheckFeatureSupport( | ||
224 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
225 | [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData, | ||
226 | UINT FeatureSupportDataSize | ||
227 | ); | ||
228 | |||
229 | HRESULT CreateVideoDecoder( | ||
230 | [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, | ||
231 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder, | ||
232 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder | ||
233 | ); | ||
234 | |||
235 | HRESULT CreateVideoDecoderHeap( | ||
236 | [annotation("_In_")]const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, | ||
237 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap, | ||
238 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap | ||
239 | ); | ||
240 | |||
241 | HRESULT CreateVideoProcessor( | ||
242 | UINT NodeMask, | ||
243 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, | ||
244 | UINT NumInputStreamDescs, | ||
245 | [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
246 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor, | ||
247 | [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor | ||
248 | ); | ||
249 | } | ||
250 | |||
251 | [uuid(C59B6BDC-7720-4074-A136-17A156037470), object, local, pointer_default(unique)] | ||
252 | interface ID3D12VideoDecoder | ||
253 | : ID3D12Pageable | ||
254 | { | ||
255 | D3D12_VIDEO_DECODER_DESC GetDesc(); | ||
256 | } | ||
257 | |||
258 | typedef enum D3D12_VIDEO_DECODE_TIER | ||
259 | { | ||
260 | D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, | ||
261 | D3D12_VIDEO_DECODE_TIER_1 = 1, | ||
262 | D3D12_VIDEO_DECODE_TIER_2 = 2, | ||
263 | D3D12_VIDEO_DECODE_TIER_3 = 3, | ||
264 | } D3D12_VIDEO_DECODE_TIER; | ||
265 | |||
266 | typedef enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS | ||
267 | { | ||
268 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0x0, | ||
269 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
270 | |||
271 | } D3D12_VIDEO_DECODE_SUPPORT_FLAGS; | ||
272 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS );") | ||
273 | |||
274 | typedef enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS | ||
275 | { | ||
276 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0x0, | ||
277 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, | ||
278 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, | ||
279 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, | ||
280 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8, | ||
281 | |||
282 | } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; | ||
283 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS );") | ||
284 | |||
285 | typedef enum D3D12_VIDEO_DECODE_STATUS | ||
286 | { | ||
287 | D3D12_VIDEO_DECODE_STATUS_OK = 0, | ||
288 | D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, | ||
289 | D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, | ||
290 | D3D12_VIDEO_DECODE_STATUS_RESTART = 3, | ||
291 | D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4, | ||
292 | } D3D12_VIDEO_DECODE_STATUS; | ||
293 | |||
294 | typedef enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE | ||
295 | { | ||
296 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, | ||
297 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, | ||
298 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, | ||
299 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3 | ||
300 | } D3D12_VIDEO_DECODE_ARGUMENT_TYPE; | ||
301 | |||
302 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT | ||
303 | { | ||
304 | UINT NodeIndex; // input | ||
305 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
306 | UINT Width; // input | ||
307 | UINT Height; // input | ||
308 | DXGI_FORMAT DecodeFormat; // input | ||
309 | DXGI_RATIONAL FrameRate; // input | ||
310 | UINT BitRate; // input | ||
311 | D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; // output | ||
312 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; // output | ||
313 | D3D12_VIDEO_DECODE_TIER DecodeTier; // output | ||
314 | } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; | ||
315 | |||
316 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT | ||
317 | { | ||
318 | UINT NodeIndex; // input | ||
319 | UINT ProfileCount; // output | ||
320 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; | ||
321 | |||
322 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES | ||
323 | { | ||
324 | UINT NodeIndex; // input | ||
325 | UINT ProfileCount; // input | ||
326 | [annotation("_Field_size_full_(ProfileCount)")] GUID *pProfiles; // output. The list of supported profiles. The caller allocates storage for the profile list before calling CheckFeatureSupport. | ||
327 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; | ||
328 | |||
329 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT | ||
330 | { | ||
331 | UINT NodeIndex; // input | ||
332 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
333 | UINT FormatCount; // output | ||
334 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; | ||
335 | |||
336 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS | ||
337 | { | ||
338 | UINT NodeIndex; // input | ||
339 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
340 | UINT FormatCount; // input | ||
341 | [annotation("_Field_size_full_(FormatCount)")] DXGI_FORMAT *pOutputFormats; // output. The list of supported video formats. The caller allocates storage for the format list before calling CheckFeatureSupport. | ||
342 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; | ||
343 | |||
344 | typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE | ||
345 | { | ||
346 | BOOL IOCoherent; | ||
347 | } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; | ||
348 | |||
349 | typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT | ||
350 | { | ||
351 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, | ||
352 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, | ||
353 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, | ||
354 | |||
355 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, | ||
356 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, | ||
357 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, | ||
358 | |||
359 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3, | ||
360 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; | ||
361 | |||
362 | typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS | ||
363 | { | ||
364 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0x0, | ||
365 | |||
366 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y), | ||
367 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U), | ||
368 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V), | ||
369 | |||
370 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R), | ||
371 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G), | ||
372 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B), | ||
373 | |||
374 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A), | ||
375 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; | ||
376 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS );") | ||
377 | |||
378 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM | ||
379 | { | ||
380 | UINT NodeIndex; // in | ||
381 | GUID DecodeProfile; // in | ||
382 | UINT Width; // in | ||
383 | UINT Height; // in | ||
384 | DXGI_FORMAT DecodeFormat; // in | ||
385 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; // out | ||
386 | UINT BinCount; // out | ||
387 | UINT CounterBitDepth; // out | ||
388 | } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; | ||
389 | |||
390 | typedef enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS | ||
391 | { | ||
392 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0x0, | ||
393 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
394 | |||
395 | } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; | ||
396 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS );") | ||
397 | |||
398 | typedef enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS | ||
399 | { | ||
400 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0x0, | ||
401 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, | ||
402 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2, | ||
403 | |||
404 | } D3D12_VIDEO_SCALE_SUPPORT_FLAGS; | ||
405 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS );") | ||
406 | |||
407 | typedef struct D3D12_VIDEO_SCALE_SUPPORT | ||
408 | { | ||
409 | D3D12_VIDEO_SIZE_RANGE OutputSizeRange; | ||
410 | D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; | ||
411 | } D3D12_VIDEO_SCALE_SUPPORT; | ||
412 | |||
413 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT | ||
414 | { | ||
415 | UINT NodeIndex; // input | ||
416 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
417 | D3D12_VIDEO_SAMPLE DecodeSample; // input | ||
418 | D3D12_VIDEO_FORMAT OutputFormat; // input | ||
419 | DXGI_RATIONAL FrameRate; // input | ||
420 | UINT BitRate; // input | ||
421 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; // output | ||
422 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output | ||
423 | } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; | ||
424 | |||
425 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE | ||
426 | { | ||
427 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input | ||
428 | UINT64 MemoryPoolL0Size; // output | ||
429 | UINT64 MemoryPoolL1Size; // output | ||
430 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; | ||
431 | |||
432 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE | ||
433 | { | ||
434 | UINT NodeMask; | ||
435 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input | ||
436 | UINT NumInputStreamDescs; // input | ||
437 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input | ||
438 | UINT64 MemoryPoolL0Size; // output | ||
439 | UINT64 MemoryPoolL1Size; // output | ||
440 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; | ||
441 | |||
442 | typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS | ||
443 | { | ||
444 | UINT64 Status; // see D3D12_VIDEO_DECODE_STATUS | ||
445 | UINT64 NumMacroblocksAffected; | ||
446 | DXGI_RATIONAL FrameRate; | ||
447 | UINT BitRate; | ||
448 | } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; | ||
449 | |||
450 | typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT | ||
451 | { | ||
452 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; | ||
453 | UINT Size; | ||
454 | [annotation("_Field_size_bytes_full_(Size)")] void *pData; | ||
455 | } D3D12_VIDEO_DECODE_FRAME_ARGUMENT; | ||
456 | |||
457 | typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES | ||
458 | { | ||
459 | UINT NumTexture2Ds; | ||
460 | [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds; | ||
461 | [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources; | ||
462 | [annotation("_Field_size_full_opt_(NumTexture2Ds)")] ID3D12VideoDecoderHeap** ppHeaps; // If null, assume single decoder heap from input args. | ||
463 | } D3D12_VIDEO_DECODE_REFERENCE_FRAMES; | ||
464 | |||
465 | typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM | ||
466 | { | ||
467 | ID3D12Resource* pBuffer; | ||
468 | UINT64 Offset; | ||
469 | UINT64 Size; | ||
470 | } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; | ||
471 | |||
472 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS | ||
473 | { | ||
474 | BOOL Enable; | ||
475 | ID3D12Resource* pReferenceTexture2D; | ||
476 | UINT ReferenceSubresource; | ||
477 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
478 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
479 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; | ||
480 | |||
481 | typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS | ||
482 | { | ||
483 | UINT NumFrameArguments; | ||
484 | D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[D3D12_VIDEO_DECODE_MAX_ARGUMENTS]; | ||
485 | D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; | ||
486 | D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; | ||
487 | ID3D12VideoDecoderHeap *pHeap; | ||
488 | } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; | ||
489 | |||
490 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS | ||
491 | { | ||
492 | ID3D12Resource* pOutputTexture2D; | ||
493 | UINT OutputSubresource; | ||
494 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; | ||
495 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; | ||
496 | |||
497 | [uuid(304FDB32-BEDE-410A-8545-943AC6A46138), object, local, pointer_default(unique)] | ||
498 | interface ID3D12VideoProcessor | ||
499 | : ID3D12Pageable | ||
500 | { | ||
501 | UINT GetNodeMask(); | ||
502 | UINT GetNumInputStreamDescs(); | ||
503 | HRESULT GetInputStreamDescs(UINT NumInputStreamDescs, [annotation("_Out_writes_(NumInputStreamDescs)")] D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); | ||
504 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC GetOutputStreamDesc(); | ||
505 | } | ||
506 | |||
507 | typedef enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS | ||
508 | { | ||
509 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0x0, | ||
510 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, | ||
511 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, | ||
512 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, | ||
513 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, | ||
514 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, | ||
515 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, | ||
516 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40, | ||
517 | |||
518 | } D3D12_VIDEO_PROCESS_FEATURE_FLAGS; | ||
519 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS );") | ||
520 | |||
521 | typedef enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS | ||
522 | { | ||
523 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0x0, | ||
524 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x01, | ||
525 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x02, | ||
526 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x04, | ||
527 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x08, | ||
528 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, | ||
529 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, | ||
530 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, | ||
531 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, | ||
532 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000, | ||
533 | |||
534 | } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; | ||
535 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS );") | ||
536 | |||
537 | typedef enum D3D12_VIDEO_PROCESS_ORIENTATION | ||
538 | { | ||
539 | D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, | ||
540 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, | ||
541 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, | ||
542 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, | ||
543 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, | ||
544 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, | ||
545 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, | ||
546 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7, | ||
547 | } D3D12_VIDEO_PROCESS_ORIENTATION; | ||
548 | |||
549 | typedef enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS | ||
550 | { | ||
551 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0x0, | ||
552 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, | ||
553 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2, | ||
554 | |||
555 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; | ||
556 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS );") | ||
557 | |||
558 | typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE | ||
559 | { | ||
560 | INT Minimum; | ||
561 | INT Maximum; | ||
562 | INT Default; | ||
563 | FLOAT Multiplier; | ||
564 | } D3D12_VIDEO_PROCESS_FILTER_RANGE; | ||
565 | |||
566 | typedef enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS | ||
567 | { | ||
568 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0x0, | ||
569 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
570 | |||
571 | } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; | ||
572 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS );") | ||
573 | |||
574 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT | ||
575 | { | ||
576 | UINT NodeIndex; // input | ||
577 | D3D12_VIDEO_SAMPLE InputSample; // input | ||
578 | D3D12_VIDEO_FIELD_TYPE InputFieldType; // input | ||
579 | D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; // input | ||
580 | DXGI_RATIONAL InputFrameRate; // input | ||
581 | D3D12_VIDEO_FORMAT OutputFormat; // input | ||
582 | D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; // input | ||
583 | DXGI_RATIONAL OutputFrameRate; // input | ||
584 | D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; // output | ||
585 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output | ||
586 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // output | ||
587 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; // output | ||
588 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; // output | ||
589 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; // output | ||
590 | D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[D3D12_VIDEO_PROCESS_MAX_FILTERS]; // output | ||
591 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; | ||
592 | |||
593 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS | ||
594 | { | ||
595 | UINT NodeIndex; // input | ||
596 | UINT MaxInputStreams; // output | ||
597 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; | ||
598 | |||
599 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO | ||
600 | { | ||
601 | UINT NodeIndex; // input | ||
602 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; // input | ||
603 | D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; // input | ||
604 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // input | ||
605 | DXGI_RATIONAL InputFrameRate; // input | ||
606 | DXGI_RATIONAL OutputFrameRate; // input | ||
607 | BOOL EnableAutoProcessing; // input | ||
608 | UINT PastFrames; // output | ||
609 | UINT FutureFrames; // output | ||
610 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; | ||
611 | |||
612 | typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET | ||
613 | { | ||
614 | UINT NumPastFrames; | ||
615 | ID3D12Resource **ppPastFrames; | ||
616 | UINT *pPastSubresources; | ||
617 | UINT NumFutureFrames; | ||
618 | ID3D12Resource **ppFutureFrames; | ||
619 | UINT *pFutureSubresources; | ||
620 | } D3D12_VIDEO_PROCESS_REFERENCE_SET; | ||
621 | |||
622 | typedef struct D3D12_VIDEO_PROCESS_TRANSFORM | ||
623 | { | ||
624 | D3D12_RECT SourceRectangle; | ||
625 | D3D12_RECT DestinationRectangle; | ||
626 | D3D12_VIDEO_PROCESS_ORIENTATION Orientation; | ||
627 | } D3D12_VIDEO_PROCESS_TRANSFORM; | ||
628 | |||
629 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE | ||
630 | { | ||
631 | UINT OutputIndex; | ||
632 | UINT InputFrameOrField; | ||
633 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; | ||
634 | |||
635 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM | ||
636 | { | ||
637 | ID3D12Resource *pTexture2D; | ||
638 | UINT Subresource; | ||
639 | D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; | ||
640 | } D3D12_VIDEO_PROCESS_INPUT_STREAM; | ||
641 | |||
642 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS | ||
643 | { | ||
644 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
645 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
646 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
647 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
648 | INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; | ||
649 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
650 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; | ||
651 | |||
652 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM | ||
653 | { | ||
654 | ID3D12Resource* pTexture2D; | ||
655 | UINT Subresource; | ||
656 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM; | ||
657 | |||
658 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS | ||
659 | { | ||
660 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
661 | D3D12_RECT TargetRectangle; | ||
662 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; | ||
663 | |||
664 | [uuid(3B60536E-AD29-4E64-A269-F853837E5E53), object, local, pointer_default(unique)] | ||
665 | interface ID3D12VideoDecodeCommandList | ||
666 | : ID3D12CommandList | ||
667 | { | ||
668 | HRESULT Close(); | ||
669 | |||
670 | HRESULT Reset( | ||
671 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
672 | ); | ||
673 | |||
674 | void ClearState(); | ||
675 | |||
676 | void ResourceBarrier( | ||
677 | [annotation("_In_")] UINT NumBarriers, | ||
678 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
679 | ); | ||
680 | |||
681 | void DiscardResource( | ||
682 | [annotation("_In_")] ID3D12Resource* pResource, | ||
683 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
684 | ); | ||
685 | |||
686 | void BeginQuery( | ||
687 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
688 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
689 | [annotation("_In_")] UINT Index | ||
690 | ); | ||
691 | |||
692 | void EndQuery( | ||
693 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
694 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
695 | [annotation("_In_")] UINT Index | ||
696 | ); | ||
697 | |||
698 | void ResolveQueryData( | ||
699 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
700 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
701 | [annotation("_In_")] UINT StartIndex, | ||
702 | [annotation("_In_")] UINT NumQueries, | ||
703 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
704 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
705 | ); | ||
706 | |||
707 | void SetPredication( | ||
708 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
709 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
710 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
711 | ); | ||
712 | |||
713 | void SetMarker( | ||
714 | UINT Metadata, | ||
715 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
716 | UINT Size); | ||
717 | |||
718 | void BeginEvent( | ||
719 | UINT Metadata, | ||
720 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
721 | UINT Size); | ||
722 | |||
723 | void EndEvent(); | ||
724 | |||
725 | void DecodeFrame( | ||
726 | [annotation("_In_")] ID3D12VideoDecoder* pDecoder, | ||
727 | [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
728 | [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
729 | ); | ||
730 | |||
731 | void WriteBufferImmediate( | ||
732 | UINT Count, | ||
733 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
734 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
735 | ); | ||
736 | } | ||
737 | |||
738 | [uuid(AEB2543A-167F-4682-ACC8-D159ED4A6209), object, local, pointer_default(unique)] | ||
739 | interface ID3D12VideoProcessCommandList | ||
740 | : ID3D12CommandList | ||
741 | { | ||
742 | HRESULT Close(); | ||
743 | |||
744 | HRESULT Reset( | ||
745 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
746 | ); | ||
747 | |||
748 | void ClearState(); | ||
749 | |||
750 | void ResourceBarrier( | ||
751 | [annotation("_In_")] UINT NumBarriers, | ||
752 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
753 | ); | ||
754 | |||
755 | void DiscardResource( | ||
756 | [annotation("_In_")] ID3D12Resource* pResource, | ||
757 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
758 | ); | ||
759 | |||
760 | void BeginQuery( | ||
761 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
762 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
763 | [annotation("_In_")] UINT Index | ||
764 | ); | ||
765 | |||
766 | void EndQuery( | ||
767 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
768 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
769 | [annotation("_In_")] UINT Index | ||
770 | ); | ||
771 | |||
772 | void ResolveQueryData( | ||
773 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
774 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
775 | [annotation("_In_")] UINT StartIndex, | ||
776 | [annotation("_In_")] UINT NumQueries, | ||
777 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
778 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
779 | ); | ||
780 | |||
781 | void SetPredication( | ||
782 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
783 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
784 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
785 | ); | ||
786 | |||
787 | void SetMarker( | ||
788 | UINT Metadata, | ||
789 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
790 | UINT Size); | ||
791 | |||
792 | void BeginEvent( | ||
793 | UINT Metadata, | ||
794 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
795 | UINT Size); | ||
796 | |||
797 | void EndEvent(); | ||
798 | |||
799 | void ProcessFrames( | ||
800 | [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, | ||
801 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
802 | UINT NumInputStreams, | ||
803 | [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
804 | ); | ||
805 | |||
806 | void WriteBufferImmediate( | ||
807 | UINT Count, | ||
808 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
809 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
810 | ); | ||
811 | } | ||
812 | |||
813 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM | ||
814 | { | ||
815 | UINT64 Offset; | ||
816 | ID3D12Resource* pBuffer; | ||
817 | } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; | ||
818 | |||
819 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 | ||
820 | { | ||
821 | BOOL Enable; | ||
822 | ID3D12Resource* pReferenceTexture2D; | ||
823 | UINT ReferenceSubresource; | ||
824 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
825 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
826 | UINT OutputWidth; | ||
827 | UINT OutputHeight; | ||
828 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; | ||
829 | |||
830 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 | ||
831 | { | ||
832 | ID3D12Resource* pOutputTexture2D; | ||
833 | UINT OutputSubresource; | ||
834 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; | ||
835 | D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS]; | ||
836 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; | ||
837 | |||
838 | [uuid(D52F011B-B56E-453C-A05A-A7F311C8F472), object, local, pointer_default(unique)] | ||
839 | interface ID3D12VideoDecodeCommandList1 | ||
840 | : ID3D12VideoDecodeCommandList | ||
841 | { | ||
842 | void DecodeFrame1( | ||
843 | [annotation("_In_")] ID3D12VideoDecoder* pDecoder, | ||
844 | [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
845 | [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
846 | ); | ||
847 | } | ||
848 | |||
849 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 | ||
850 | { | ||
851 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
852 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
853 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
854 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
855 | INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; | ||
856 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
857 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
858 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; | ||
859 | |||
860 | [uuid(542C5C4D-7596-434F-8C93-4EFA6766F267), object, local, pointer_default(unique)] | ||
861 | interface ID3D12VideoProcessCommandList1 : ID3D12VideoProcessCommandList | ||
862 | { | ||
863 | void ProcessFrames1( | ||
864 | [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, | ||
865 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
866 | UINT NumInputStreams, | ||
867 | [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments | ||
868 | ); | ||
869 | } | ||
870 | |||
871 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE | ||
872 | { | ||
873 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0, | ||
874 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1, | ||
875 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE; | ||
876 | |||
877 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS | ||
878 | { | ||
879 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0, | ||
880 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8), | ||
881 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16), | ||
882 | |||
883 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS; | ||
884 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS );" ) | ||
885 | |||
886 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION | ||
887 | { | ||
888 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0, | ||
889 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION; | ||
890 | |||
891 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS | ||
892 | { | ||
893 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, | ||
894 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL), | ||
895 | |||
896 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS; | ||
897 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS );" ) | ||
898 | |||
899 | // D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT | ||
900 | typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT | ||
901 | { | ||
902 | UINT NodeIndex; // input | ||
903 | BOOL VideoDecodeSupport; // output | ||
904 | BOOL VideoProcessSupport; // output | ||
905 | BOOL VideoEncodeSupport; // output | ||
906 | } D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT; | ||
907 | |||
908 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR | ||
909 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR | ||
910 | { | ||
911 | UINT NodeIndex; // input | ||
912 | DXGI_FORMAT InputFormat; // input | ||
913 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; // output | ||
914 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; // output | ||
915 | D3D12_VIDEO_SIZE_RANGE SizeRange; // output | ||
916 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR; | ||
917 | |||
918 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE | ||
919 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE | ||
920 | { | ||
921 | UINT NodeIndex; // input | ||
922 | DXGI_FORMAT InputFormat; // input | ||
923 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // input | ||
924 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // input | ||
925 | D3D12_VIDEO_SIZE_RANGE SizeRange; // input | ||
926 | BOOL Protected; // input | ||
927 | UINT64 MotionVectorHeapMemoryPoolL0Size; // output | ||
928 | UINT64 MotionVectorHeapMemoryPoolL1Size; // output | ||
929 | UINT64 MotionEstimatorMemoryPoolL0Size; // output | ||
930 | UINT64 MotionEstimatorMemoryPoolL1Size; // output | ||
931 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE; | ||
932 | |||
933 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC | ||
934 | { | ||
935 | UINT NodeMask; | ||
936 | DXGI_FORMAT InputFormat; | ||
937 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
938 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
939 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
940 | |||
941 | } D3D12_VIDEO_MOTION_ESTIMATOR_DESC; | ||
942 | |||
943 | [uuid(33FDAE0E-098B-428F-87BB-34B695DE08F8), object, local, pointer_default(unique)] | ||
944 | interface ID3D12VideoMotionEstimator | ||
945 | : ID3D12Pageable | ||
946 | { | ||
947 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC GetDesc(); | ||
948 | |||
949 | HRESULT GetProtectedResourceSession( | ||
950 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
951 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
952 | } | ||
953 | |||
954 | typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC | ||
955 | { | ||
956 | UINT NodeMask; | ||
957 | DXGI_FORMAT InputFormat; | ||
958 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
959 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
960 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
961 | |||
962 | } D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC; | ||
963 | |||
964 | [uuid(5BE17987-743A-4061-834B-23D22DAEA505), object, local, pointer_default(unique)] | ||
965 | interface ID3D12VideoMotionVectorHeap | ||
966 | : ID3D12Pageable | ||
967 | { | ||
968 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC GetDesc(); | ||
969 | |||
970 | HRESULT GetProtectedResourceSession( | ||
971 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
972 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
973 | } | ||
974 | |||
975 | [uuid(981611AD-A144-4C83-9890-F30E26D658AB), object, local, pointer_default(unique)] | ||
976 | interface ID3D12VideoDevice1 | ||
977 | : ID3D12VideoDevice | ||
978 | { | ||
979 | HRESULT CreateVideoMotionEstimator( | ||
980 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_DESC* pDesc, | ||
981 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
982 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionEstimator, | ||
983 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionEstimator | ||
984 | ); | ||
985 | |||
986 | HRESULT CreateVideoMotionVectorHeap( | ||
987 | [annotation("_In_")] const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC* pDesc, | ||
988 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
989 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionVectorHeap, | ||
990 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionVectorHeap | ||
991 | ); | ||
992 | } | ||
993 | |||
994 | typedef struct D3D12_RESOURCE_COORDINATE | ||
995 | { | ||
996 | // Coordinate values below index pixels. | ||
997 | UINT64 X; // Used for buffer, 1D, 2D, 3D | ||
998 | UINT Y; // Used for 2D, 3D | ||
999 | UINT Z; // Used for 3D | ||
1000 | UINT SubresourceIndex; // indexes into mips, arrays, and planes. Used for 1D, 2D, 3D | ||
1001 | } D3D12_RESOURCE_COORDINATE; | ||
1002 | |||
1003 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT | ||
1004 | { | ||
1005 | ID3D12VideoMotionVectorHeap* pMotionVectorHeap; | ||
1006 | } D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT; | ||
1007 | |||
1008 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT | ||
1009 | { | ||
1010 | ID3D12Resource* pInputTexture2D; | ||
1011 | UINT InputSubresourceIndex; | ||
1012 | ID3D12Resource* pReferenceTexture2D; | ||
1013 | UINT ReferenceSubresourceIndex; | ||
1014 | ID3D12VideoMotionVectorHeap* pHintMotionVectorHeap; | ||
1015 | } D3D12_VIDEO_MOTION_ESTIMATOR_INPUT; | ||
1016 | |||
1017 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT | ||
1018 | { | ||
1019 | ID3D12Resource* pMotionVectorTexture2D; | ||
1020 | D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; | ||
1021 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT; | ||
1022 | |||
1023 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT | ||
1024 | { | ||
1025 | ID3D12VideoMotionVectorHeap* pMotionVectorHeap; | ||
1026 | UINT PixelWidth; | ||
1027 | UINT PixelHeight; | ||
1028 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT; | ||
1029 | |||
1030 | [uuid(8455293A-0CBD-4831-9B39-FBDBAB724723), object, local, pointer_default(unique)] | ||
1031 | interface ID3D12VideoEncodeCommandList | ||
1032 | : ID3D12CommandList | ||
1033 | { | ||
1034 | HRESULT Close(); | ||
1035 | |||
1036 | HRESULT Reset( | ||
1037 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
1038 | ); | ||
1039 | |||
1040 | void ClearState(); | ||
1041 | |||
1042 | void ResourceBarrier( | ||
1043 | [annotation("_In_")] UINT NumBarriers, | ||
1044 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
1045 | ); | ||
1046 | |||
1047 | void DiscardResource( | ||
1048 | [annotation("_In_")] ID3D12Resource* pResource, | ||
1049 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
1050 | ); | ||
1051 | |||
1052 | void BeginQuery( | ||
1053 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
1054 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
1055 | [annotation("_In_")] UINT Index | ||
1056 | ); | ||
1057 | |||
1058 | void EndQuery( | ||
1059 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
1060 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
1061 | [annotation("_In_")] UINT Index | ||
1062 | ); | ||
1063 | |||
1064 | void ResolveQueryData( | ||
1065 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
1066 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
1067 | [annotation("_In_")] UINT StartIndex, | ||
1068 | [annotation("_In_")] UINT NumQueries, | ||
1069 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
1070 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
1071 | ); | ||
1072 | |||
1073 | void SetPredication( | ||
1074 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
1075 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
1076 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
1077 | ); | ||
1078 | |||
1079 | void SetMarker( | ||
1080 | UINT Metadata, | ||
1081 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
1082 | UINT Size); | ||
1083 | |||
1084 | void BeginEvent( | ||
1085 | UINT Metadata, | ||
1086 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
1087 | UINT Size); | ||
1088 | |||
1089 | void EndEvent(); | ||
1090 | |||
1091 | void EstimateMotion( | ||
1092 | [annotation("_In_")] ID3D12VideoMotionEstimator* pMotionEstimator, | ||
1093 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT* pOutputArguments, | ||
1094 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT* pInputArguments | ||
1095 | ); | ||
1096 | |||
1097 | void ResolveMotionVectorHeap( | ||
1098 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT* pOutputArguments, | ||
1099 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT* pInputArguments | ||
1100 | ); | ||
1101 | |||
1102 | void WriteBufferImmediate( | ||
1103 | UINT Count, | ||
1104 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
1105 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
1106 | ); | ||
1107 | |||
1108 | void SetProtectedResourceSession( | ||
1109 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
1110 | ); | ||
1111 | } | ||
1112 | |||
1113 | typedef enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS | ||
1114 | { | ||
1115 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0x0, | ||
1116 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
1117 | |||
1118 | } D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS; | ||
1119 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS );") | ||
1120 | |||
1121 | // D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES | ||
1122 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES | ||
1123 | { | ||
1124 | UINT NodeIndex; // input | ||
1125 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
1126 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
1127 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES; | ||
1128 | |||
1129 | // D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES | ||
1130 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES | ||
1131 | { | ||
1132 | UINT NodeIndex; // input | ||
1133 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
1134 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES; | ||
1135 | |||
1136 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES | ||
1137 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES | ||
1138 | { | ||
1139 | UINT NodeIndex; // input | ||
1140 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
1141 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES; | ||
1142 | |||
1143 | //D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 | ||
1144 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 | ||
1145 | { | ||
1146 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input | ||
1147 | BOOL Protected; // input | ||
1148 | UINT64 MemoryPoolL0Size; // output | ||
1149 | UINT64 MemoryPoolL1Size; // output | ||
1150 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1; | ||
1151 | |||
1152 | // D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 | ||
1153 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 | ||
1154 | { | ||
1155 | UINT NodeMask; | ||
1156 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input | ||
1157 | UINT NumInputStreamDescs; // input | ||
1158 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input | ||
1159 | BOOL Protected; // input | ||
1160 | UINT64 MemoryPoolL0Size; // output | ||
1161 | UINT64 MemoryPoolL1Size; // output | ||
1162 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1; | ||
1163 | |||
1164 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE | ||
1165 | { | ||
1166 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0, | ||
1167 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, | ||
1168 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2, | ||
1169 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3, | ||
1170 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4, | ||
1171 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5, | ||
1172 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6, | ||
1173 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE; | ||
1174 | |||
1175 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE | ||
1176 | { | ||
1177 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0, | ||
1178 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1, | ||
1179 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2, | ||
1180 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3, | ||
1181 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4, | ||
1182 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5, | ||
1183 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6, | ||
1184 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7, | ||
1185 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8, | ||
1186 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9, | ||
1187 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10, | ||
1188 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE; | ||
1189 | |||
1190 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS | ||
1191 | { | ||
1192 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0x00000000, | ||
1193 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x00000001, | ||
1194 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x00000002 | ||
1195 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS; | ||
1196 | |||
1197 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS );") | ||
1198 | |||
1199 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT | ||
1200 | { | ||
1201 | UINT NodeIndex; // in | ||
1202 | UINT CommandCount; // out | ||
1203 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT; | ||
1204 | |||
1205 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO | ||
1206 | { | ||
1207 | GUID CommandId; | ||
1208 | LPCWSTR Name; | ||
1209 | D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags; | ||
1210 | } D3D12_VIDEO_EXTENSION_COMMAND_INFO; | ||
1211 | |||
1212 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS | ||
1213 | { | ||
1214 | UINT NodeIndex; | ||
1215 | UINT CommandCount; | ||
1216 | [annotation("_Field_size_full_(CommandCount)")] D3D12_VIDEO_EXTENSION_COMMAND_INFO* pCommandInfos; | ||
1217 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS; | ||
1218 | |||
1219 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT | ||
1220 | { | ||
1221 | GUID CommandId; // in | ||
1222 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in | ||
1223 | UINT ParameterCount; // out | ||
1224 | UINT ParameterPacking; // out | ||
1225 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT; | ||
1226 | |||
1227 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO | ||
1228 | { | ||
1229 | LPCWSTR Name; | ||
1230 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type; | ||
1231 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags; | ||
1232 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO; | ||
1233 | |||
1234 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS | ||
1235 | { | ||
1236 | GUID CommandId; // in | ||
1237 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in | ||
1238 | UINT ParameterCount; // in | ||
1239 | [annotation("_Field_size_full_(ParameterCount)")] D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO* pParameterInfos; // out | ||
1240 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS; | ||
1241 | |||
1242 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT | ||
1243 | { | ||
1244 | UINT NodeIndex; | ||
1245 | GUID CommandId; | ||
1246 | [annotation("_Field_size_bytes_full_opt_(InputDataSizeInBytes)")] const void *pInputData; | ||
1247 | SIZE_T InputDataSizeInBytes; | ||
1248 | [annotation("_Field_size_bytes_full_opt_(OutputDataSizeInBytes)")] void *pOutputData; | ||
1249 | SIZE_T OutputDataSizeInBytes; | ||
1250 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT; | ||
1251 | |||
1252 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE | ||
1253 | { | ||
1254 | UINT NodeIndex; | ||
1255 | GUID CommandId; | ||
1256 | [annotation("_Field_size_bytes_full_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters; | ||
1257 | SIZE_T CreationParametersSizeInBytes; | ||
1258 | UINT64 MemoryPoolL0Size; // output | ||
1259 | UINT64 MemoryPoolL1Size; // output | ||
1260 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE; | ||
1261 | |||
1262 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC | ||
1263 | { | ||
1264 | UINT NodeMask; | ||
1265 | GUID CommandId; | ||
1266 | } D3D12_VIDEO_EXTENSION_COMMAND_DESC; | ||
1267 | |||
1268 | [uuid(79A2E5FB-CCD2-469A-9FDE-195D10951F7E), object, local, pointer_default(unique)] | ||
1269 | interface ID3D12VideoDecoder1 | ||
1270 | : ID3D12VideoDecoder | ||
1271 | { | ||
1272 | HRESULT GetProtectedResourceSession( | ||
1273 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
1274 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
1275 | } | ||
1276 | |||
1277 | [uuid(DA1D98C5-539F-41B2-BF6B-1198A03B6D26), object, local, pointer_default(unique)] | ||
1278 | interface ID3D12VideoDecoderHeap1 | ||
1279 | : ID3D12VideoDecoderHeap | ||
1280 | { | ||
1281 | HRESULT GetProtectedResourceSession( | ||
1282 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
1283 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
1284 | } | ||
1285 | |||
1286 | [uuid(F3CFE615-553F-425C-86D8-EE8C1B1FB01C), object, local, pointer_default(unique)] | ||
1287 | interface ID3D12VideoProcessor1 | ||
1288 | : ID3D12VideoProcessor | ||
1289 | { | ||
1290 | HRESULT GetProtectedResourceSession( | ||
1291 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
1292 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
1293 | } | ||
1294 | |||
1295 | [uuid(554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4), object, local, pointer_default(unique)] | ||
1296 | interface ID3D12VideoExtensionCommand | ||
1297 | : ID3D12Pageable | ||
1298 | { | ||
1299 | D3D12_VIDEO_EXTENSION_COMMAND_DESC GetDesc(); | ||
1300 | |||
1301 | HRESULT GetProtectedResourceSession( | ||
1302 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
1303 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
1304 | } | ||
1305 | |||
1306 | [uuid(F019AC49-F838-4A95-9B17-579437C8F513), object, local, pointer_default(unique)] | ||
1307 | interface ID3D12VideoDevice2 | ||
1308 | : ID3D12VideoDevice1 | ||
1309 | { | ||
1310 | HRESULT CreateVideoDecoder1( | ||
1311 | [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, | ||
1312 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
1313 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder1, | ||
1314 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder | ||
1315 | ); | ||
1316 | |||
1317 | HRESULT CreateVideoDecoderHeap1( | ||
1318 | [annotation("_In_")] const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, | ||
1319 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
1320 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap1, | ||
1321 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap | ||
1322 | ); | ||
1323 | |||
1324 | HRESULT CreateVideoProcessor1( | ||
1325 | UINT NodeMask, | ||
1326 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, | ||
1327 | UINT NumInputStreamDescs, | ||
1328 | [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
1329 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
1330 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor1, | ||
1331 | [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor | ||
1332 | ); | ||
1333 | |||
1334 | HRESULT CreateVideoExtensionCommand( | ||
1335 | [annotation("_In_")] const D3D12_VIDEO_EXTENSION_COMMAND_DESC* pDesc, | ||
1336 | [annotation("_In_reads_bytes_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters, | ||
1337 | SIZE_T CreationParametersDataSizeInBytes, | ||
1338 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedResourceSession, | ||
1339 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoExtensionCommand, | ||
1340 | [annotation("_COM_Outptr_")] void** ppVideoExtensionCommand); | ||
1341 | |||
1342 | HRESULT ExecuteExtensionCommand( | ||
1343 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1344 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
1345 | SIZE_T ExecutionParametersSizeInBytes, | ||
1346 | [annotation("_Out_writes_bytes_(OutputDataSizeInBytes)")] void *pOutputData, | ||
1347 | SIZE_T OutputDataSizeInBytes | ||
1348 | ); | ||
1349 | } | ||
1350 | |||
1351 | [uuid(6e120880-c114-4153-8036-d247051e1729), object, local, pointer_default(unique)] | ||
1352 | interface ID3D12VideoDecodeCommandList2 | ||
1353 | : ID3D12VideoDecodeCommandList1 | ||
1354 | { | ||
1355 | void SetProtectedResourceSession( | ||
1356 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
1357 | ); | ||
1358 | |||
1359 | void InitializeExtensionCommand( | ||
1360 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1361 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
1362 | SIZE_T InitializationParametersSizeInBytes); | ||
1363 | |||
1364 | void ExecuteExtensionCommand( | ||
1365 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1366 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
1367 | SIZE_T ExecutionParametersSizeInBytes); | ||
1368 | } | ||
1369 | |||
1370 | [uuid(db525ae4-6ad6-473c-baa7-59b2e37082e4), object, local, pointer_default(unique)] | ||
1371 | interface ID3D12VideoProcessCommandList2 | ||
1372 | : ID3D12VideoProcessCommandList1 | ||
1373 | { | ||
1374 | |||
1375 | void SetProtectedResourceSession( | ||
1376 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
1377 | ); | ||
1378 | |||
1379 | void InitializeExtensionCommand( | ||
1380 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1381 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
1382 | SIZE_T InitializationParametersSizeInBytes); | ||
1383 | |||
1384 | void ExecuteExtensionCommand( | ||
1385 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1386 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
1387 | SIZE_T ExecutionParametersSizeInBytes); | ||
1388 | } | ||
1389 | |||
1390 | [uuid(94971eca-2bdb-4769-88cf-3675ea757ebc), object, local, pointer_default(unique)] | ||
1391 | interface ID3D12VideoEncodeCommandList1 | ||
1392 | : ID3D12VideoEncodeCommandList | ||
1393 | { | ||
1394 | void InitializeExtensionCommand( | ||
1395 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1396 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
1397 | SIZE_T InitializationParametersSizeInBytes); | ||
1398 | |||
1399 | void ExecuteExtensionCommand( | ||
1400 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
1401 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
1402 | SIZE_T ExecutionParametersSizeInBytes); | ||
1403 | } | ||
1404 | |||
1405 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); ") | ||
1406 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); ") | ||
1407 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
1408 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);") | ||
1409 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);") | ||
1410 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);") | ||
1411 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
1412 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
1413 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);") | ||
1414 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);") | ||
1415 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);") | ||
1416 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);") | ||
1417 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);") | ||
1418 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);") | ||
1419 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);") | ||
1420 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);") | ||
1421 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);") | ||
1422 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);") | ||
1423 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);") | ||
1424 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);") | ||
1425 | |||
1426 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
1427 | #pragma endregion | ||
1428 | |||
1429 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);" ) | ||
1430 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);" ) | ||
1431 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);" ) | ||
1432 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);" ) | ||
1433 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);" ) | ||
1434 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);" ) | ||
1435 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);" ) | ||
1436 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);" ) | ||
1437 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);" ) | ||
1438 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);" ) | ||
1439 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);" ) | ||
1440 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);" ) | ||
1441 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);" ) | ||
1442 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);" ) | ||
1443 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);" ) | ||
1444 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);" ) | ||
1445 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);" ) | ||
1446 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);" ) | ||
1447 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);" ) | ||
1448 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);" ) | ||