1 /*------------------------------------------------------------------------------------- 2 * 3 * Copyright (c) Microsoft Corporation 4 * 5 *-------------------------------------------------------------------------------------*/ 6 7 8 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 9 10 11 /* File created by MIDL compiler version 8.01.0622 */ 12 13 14 15 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 16 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 17 #define __REQUIRED_RPCNDR_H_VERSION__ 500 18 #endif 19 20 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 21 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 22 #define __REQUIRED_RPCSAL_H_VERSION__ 100 23 #endif 24 25 #include "rpc.h" 26 #include "rpcndr.h" 27 28 #ifndef __RPCNDR_H_VERSION__ 29 #error this stub requires an updated version of <rpcndr.h> 30 #endif /* __RPCNDR_H_VERSION__ */ 31 32 #ifndef COM_NO_WINDOWS_H 33 #include "windows.h" 34 #include "ole2.h" 35 #endif /*COM_NO_WINDOWS_H*/ 36 37 #ifndef __d3d12video_h__ 38 #define __d3d12video_h__ 39 40 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 41 #pragma once 42 #endif 43 44 /* Forward Declarations */ 45 46 #ifndef __ID3D12VideoDecoderHeap_FWD_DEFINED__ 47 #define __ID3D12VideoDecoderHeap_FWD_DEFINED__ 48 typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap; 49 50 #endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */ 51 52 53 #ifndef __ID3D12VideoDevice_FWD_DEFINED__ 54 #define __ID3D12VideoDevice_FWD_DEFINED__ 55 typedef interface ID3D12VideoDevice ID3D12VideoDevice; 56 57 #endif /* __ID3D12VideoDevice_FWD_DEFINED__ */ 58 59 60 #ifndef __ID3D12VideoDecoder_FWD_DEFINED__ 61 #define __ID3D12VideoDecoder_FWD_DEFINED__ 62 typedef interface ID3D12VideoDecoder ID3D12VideoDecoder; 63 64 #endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */ 65 66 67 #ifndef __ID3D12VideoProcessor_FWD_DEFINED__ 68 #define __ID3D12VideoProcessor_FWD_DEFINED__ 69 typedef interface ID3D12VideoProcessor ID3D12VideoProcessor; 70 71 #endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */ 72 73 74 #ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__ 75 #define __ID3D12VideoDecodeCommandList_FWD_DEFINED__ 76 typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList; 77 78 #endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */ 79 80 81 #ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__ 82 #define __ID3D12VideoProcessCommandList_FWD_DEFINED__ 83 typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList; 84 85 #endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */ 86 87 88 #ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ 89 #define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ 90 typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1; 91 92 #endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */ 93 94 95 #ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__ 96 #define __ID3D12VideoProcessCommandList1_FWD_DEFINED__ 97 typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1; 98 99 #endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */ 100 101 102 /* header files for imported files */ 103 #include "oaidl.h" 104 #include "ocidl.h" 105 #include "dxgicommon.h" 106 #include "d3d12.h" 107 108 #ifdef __cplusplus 109 extern "C"{ 110 #endif 111 112 113 /* interface __MIDL_itf_d3d12video_0000_0000 */ 114 /* [local] */ 115 116 #include <winapifamily.h> 117 // BK - pragma region App Family 118 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 119 typedef 120 enum D3D12_VIDEO_FIELD_TYPE 121 { 122 D3D12_VIDEO_FIELD_TYPE_NONE = 0, 123 D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, 124 D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2 125 } D3D12_VIDEO_FIELD_TYPE; 126 127 typedef 128 enum D3D12_VIDEO_FRAME_STEREO_FORMAT 129 { 130 D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, 131 D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, 132 D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, 133 D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, 134 D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4 135 } D3D12_VIDEO_FRAME_STEREO_FORMAT; 136 137 typedef struct D3D12_VIDEO_FORMAT 138 { 139 DXGI_FORMAT Format; 140 DXGI_COLOR_SPACE_TYPE ColorSpace; 141 } D3D12_VIDEO_FORMAT; 142 143 typedef struct D3D12_VIDEO_SAMPLE 144 { 145 UINT Width; 146 UINT Height; 147 D3D12_VIDEO_FORMAT Format; 148 } D3D12_VIDEO_SAMPLE; 149 150 typedef 151 enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE 152 { 153 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, 154 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1 155 } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; 156 157 typedef 158 enum D3D12_FEATURE_VIDEO 159 { 160 D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, 161 D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, 162 D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, 163 D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, 164 D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, 165 D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, 166 D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, 167 D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, 168 D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, 169 D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, 170 D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, 171 D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, 172 D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18 173 } D3D12_FEATURE_VIDEO; 174 175 typedef 176 enum D3D12_BITSTREAM_ENCRYPTION_TYPE 177 { 178 D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0 179 } D3D12_BITSTREAM_ENCRYPTION_TYPE; 180 181 typedef struct D3D12_VIDEO_DECODE_CONFIGURATION 182 { 183 GUID DecodeProfile; 184 D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; 185 D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; 186 } D3D12_VIDEO_DECODE_CONFIGURATION; 187 188 typedef struct D3D12_VIDEO_DECODER_DESC 189 { 190 UINT NodeMask; 191 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 192 } D3D12_VIDEO_DECODER_DESC; 193 194 typedef struct D3D12_VIDEO_DECODER_HEAP_DESC 195 { 196 UINT NodeMask; 197 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 198 UINT DecodeWidth; 199 UINT DecodeHeight; 200 DXGI_FORMAT Format; 201 DXGI_RATIONAL FrameRate; 202 UINT BitRate; 203 UINT MaxDecodePictureBufferCount; 204 } D3D12_VIDEO_DECODER_HEAP_DESC; 205 206 typedef struct D3D12_VIDEO_SIZE_RANGE 207 { 208 UINT MaxWidth; 209 UINT MaxHeight; 210 UINT MinWidth; 211 UINT MinHeight; 212 } D3D12_VIDEO_SIZE_RANGE; 213 214 typedef 215 enum D3D12_VIDEO_PROCESS_FILTER 216 { 217 D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, 218 D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, 219 D3D12_VIDEO_PROCESS_FILTER_HUE = 2, 220 D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, 221 D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, 222 D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, 223 D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, 224 D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7 225 } D3D12_VIDEO_PROCESS_FILTER; 226 227 typedef 228 enum D3D12_VIDEO_PROCESS_FILTER_FLAGS 229 { 230 D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0, 231 D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) , 232 D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) , 233 D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) , 234 D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) , 235 D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) , 236 D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) , 237 D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) , 238 D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT ) 239 } D3D12_VIDEO_PROCESS_FILTER_FLAGS; 240 241 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS ); 242 typedef 243 enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS 244 { 245 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0, 246 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, 247 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000 248 } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; 249 250 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS ); 251 typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING 252 { 253 BOOL Enable; 254 FLOAT Alpha; 255 } D3D12_VIDEO_PROCESS_ALPHA_BLENDING; 256 257 typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY 258 { 259 BOOL Enable; 260 FLOAT Lower; 261 FLOAT Upper; 262 } D3D12_VIDEO_PROCESS_LUMA_KEY; 263 264 typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC 265 { 266 DXGI_FORMAT Format; 267 DXGI_COLOR_SPACE_TYPE ColorSpace; 268 DXGI_RATIONAL SourceAspectRatio; 269 DXGI_RATIONAL DestinationAspectRatio; 270 DXGI_RATIONAL FrameRate; 271 D3D12_VIDEO_SIZE_RANGE SourceSizeRange; 272 D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; 273 BOOL EnableOrientation; 274 D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; 275 D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; 276 D3D12_VIDEO_FIELD_TYPE FieldType; 277 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; 278 BOOL EnableAlphaBlending; 279 D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; 280 UINT NumPastFrames; 281 UINT NumFutureFrames; 282 BOOL EnableAutoProcessing; 283 } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; 284 285 typedef 286 enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE 287 { 288 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, 289 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, 290 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, 291 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3 292 } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; 293 294 typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC 295 { 296 DXGI_FORMAT Format; 297 DXGI_COLOR_SPACE_TYPE ColorSpace; 298 D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; 299 UINT AlphaFillModeSourceStreamIndex; 300 FLOAT BackgroundColor[ 4 ]; 301 DXGI_RATIONAL FrameRate; 302 BOOL EnableStereo; 303 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; 304 305 306 307 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec; 308 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec; 309 310 #ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ 311 #define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ 312 313 /* interface ID3D12VideoDecoderHeap */ 314 /* [unique][local][object][uuid] */ 315 316 317 EXTERN_C const IID IID_ID3D12VideoDecoderHeap; 318 319 #if defined(__cplusplus) && !defined(CINTERFACE) 320 321 MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F") 322 ID3D12VideoDecoderHeap : public ID3D12Pageable 323 { 324 public: 325 virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 326 327 }; 328 329 330 #else /* C style interface */ 331 332 typedef struct ID3D12VideoDecoderHeapVtbl 333 { 334 BEGIN_INTERFACE 335 336 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 337 ID3D12VideoDecoderHeap * This, 338 REFIID riid, 339 _COM_Outptr_ void **ppvObject); 340 341 ULONG ( STDMETHODCALLTYPE *AddRef )( 342 ID3D12VideoDecoderHeap * This); 343 344 ULONG ( STDMETHODCALLTYPE *Release )( 345 ID3D12VideoDecoderHeap * This); 346 347 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 348 ID3D12VideoDecoderHeap * This, 349 _In_ REFGUID guid, 350 _Inout_ UINT *pDataSize, 351 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 352 353 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 354 ID3D12VideoDecoderHeap * This, 355 _In_ REFGUID guid, 356 _In_ UINT DataSize, 357 _In_reads_bytes_opt_( DataSize ) const void *pData); 358 359 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 360 ID3D12VideoDecoderHeap * This, 361 _In_ REFGUID guid, 362 _In_opt_ const IUnknown *pData); 363 364 HRESULT ( STDMETHODCALLTYPE *SetName )( 365 ID3D12VideoDecoderHeap * This, 366 _In_z_ LPCWSTR Name); 367 368 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 369 ID3D12VideoDecoderHeap * This, 370 REFIID riid, 371 _COM_Outptr_opt_ void **ppvDevice); 372 373 D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( 374 ID3D12VideoDecoderHeap * This); 375 376 END_INTERFACE 377 } ID3D12VideoDecoderHeapVtbl; 378 379 interface ID3D12VideoDecoderHeap 380 { 381 CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl; 382 }; 383 384 385 386 #ifdef COBJMACROS 387 388 389 #define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \ 390 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 391 392 #define ID3D12VideoDecoderHeap_AddRef(This) \ 393 ( (This)->lpVtbl -> AddRef(This) ) 394 395 #define ID3D12VideoDecoderHeap_Release(This) \ 396 ( (This)->lpVtbl -> Release(This) ) 397 398 399 #define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \ 400 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 401 402 #define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \ 403 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 404 405 #define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \ 406 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 407 408 #define ID3D12VideoDecoderHeap_SetName(This,Name) \ 409 ( (This)->lpVtbl -> SetName(This,Name) ) 410 411 412 #define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \ 413 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 414 415 416 417 #define ID3D12VideoDecoderHeap_GetDesc(This) \ 418 ( (This)->lpVtbl -> GetDesc(This) ) 419 420 #endif /* COBJMACROS */ 421 422 423 #endif /* C style interface */ 424 425 426 427 428 429 430 431 432 #endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */ 433 434 435 #ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__ 436 #define __ID3D12VideoDevice_INTERFACE_DEFINED__ 437 438 /* interface ID3D12VideoDevice */ 439 /* [unique][local][object][uuid] */ 440 441 442 EXTERN_C const IID IID_ID3D12VideoDevice; 443 444 #if defined(__cplusplus) && !defined(CINTERFACE) 445 446 MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4") 447 ID3D12VideoDevice : public IUnknown 448 { 449 public: 450 virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( 451 D3D12_FEATURE_VIDEO FeatureVideo, 452 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 453 UINT FeatureSupportDataSize) = 0; 454 455 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( 456 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, 457 _In_ REFIID riid, 458 _COM_Outptr_ void **ppVideoDecoder) = 0; 459 460 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap( 461 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, 462 _In_ REFIID riid, 463 _COM_Outptr_ void **ppVideoDecoderHeap) = 0; 464 465 virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( 466 UINT NodeMask, 467 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, 468 UINT NumInputStreamDescs, 469 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, 470 _In_ REFIID riid, 471 _COM_Outptr_ void **ppVideoProcessor) = 0; 472 473 }; 474 475 476 #else /* C style interface */ 477 478 typedef struct ID3D12VideoDeviceVtbl 479 { 480 BEGIN_INTERFACE 481 482 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 483 ID3D12VideoDevice * This, 484 REFIID riid, 485 _COM_Outptr_ void **ppvObject); 486 487 ULONG ( STDMETHODCALLTYPE *AddRef )( 488 ID3D12VideoDevice * This); 489 490 ULONG ( STDMETHODCALLTYPE *Release )( 491 ID3D12VideoDevice * This); 492 493 HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( 494 ID3D12VideoDevice * This, 495 D3D12_FEATURE_VIDEO FeatureVideo, 496 _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, 497 UINT FeatureSupportDataSize); 498 499 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( 500 ID3D12VideoDevice * This, 501 _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, 502 _In_ REFIID riid, 503 _COM_Outptr_ void **ppVideoDecoder); 504 505 HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( 506 ID3D12VideoDevice * This, 507 _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, 508 _In_ REFIID riid, 509 _COM_Outptr_ void **ppVideoDecoderHeap); 510 511 HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( 512 ID3D12VideoDevice * This, 513 UINT NodeMask, 514 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, 515 UINT NumInputStreamDescs, 516 _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, 517 _In_ REFIID riid, 518 _COM_Outptr_ void **ppVideoProcessor); 519 520 END_INTERFACE 521 } ID3D12VideoDeviceVtbl; 522 523 interface ID3D12VideoDevice 524 { 525 CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl; 526 }; 527 528 529 530 #ifdef COBJMACROS 531 532 533 #define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \ 534 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 535 536 #define ID3D12VideoDevice_AddRef(This) \ 537 ( (This)->lpVtbl -> AddRef(This) ) 538 539 #define ID3D12VideoDevice_Release(This) \ 540 ( (This)->lpVtbl -> Release(This) ) 541 542 543 #define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ 544 ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) 545 546 #define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ 547 ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) 548 549 #define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ 550 ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) 551 552 #define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ 553 ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) 554 555 #endif /* COBJMACROS */ 556 557 558 #endif /* C style interface */ 559 560 561 562 563 #endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */ 564 565 566 #ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__ 567 #define __ID3D12VideoDecoder_INTERFACE_DEFINED__ 568 569 /* interface ID3D12VideoDecoder */ 570 /* [unique][local][object][uuid] */ 571 572 573 EXTERN_C const IID IID_ID3D12VideoDecoder; 574 575 #if defined(__cplusplus) && !defined(CINTERFACE) 576 577 MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470") 578 ID3D12VideoDecoder : public ID3D12Pageable 579 { 580 public: 581 virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0; 582 583 }; 584 585 586 #else /* C style interface */ 587 588 typedef struct ID3D12VideoDecoderVtbl 589 { 590 BEGIN_INTERFACE 591 592 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 593 ID3D12VideoDecoder * This, 594 REFIID riid, 595 _COM_Outptr_ void **ppvObject); 596 597 ULONG ( STDMETHODCALLTYPE *AddRef )( 598 ID3D12VideoDecoder * This); 599 600 ULONG ( STDMETHODCALLTYPE *Release )( 601 ID3D12VideoDecoder * This); 602 603 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 604 ID3D12VideoDecoder * This, 605 _In_ REFGUID guid, 606 _Inout_ UINT *pDataSize, 607 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 608 609 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 610 ID3D12VideoDecoder * This, 611 _In_ REFGUID guid, 612 _In_ UINT DataSize, 613 _In_reads_bytes_opt_( DataSize ) const void *pData); 614 615 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 616 ID3D12VideoDecoder * This, 617 _In_ REFGUID guid, 618 _In_opt_ const IUnknown *pData); 619 620 HRESULT ( STDMETHODCALLTYPE *SetName )( 621 ID3D12VideoDecoder * This, 622 _In_z_ LPCWSTR Name); 623 624 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 625 ID3D12VideoDecoder * This, 626 REFIID riid, 627 _COM_Outptr_opt_ void **ppvDevice); 628 629 D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )( 630 ID3D12VideoDecoder * This); 631 632 END_INTERFACE 633 } ID3D12VideoDecoderVtbl; 634 635 interface ID3D12VideoDecoder 636 { 637 CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl; 638 }; 639 640 641 642 #ifdef COBJMACROS 643 644 645 #define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \ 646 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 647 648 #define ID3D12VideoDecoder_AddRef(This) \ 649 ( (This)->lpVtbl -> AddRef(This) ) 650 651 #define ID3D12VideoDecoder_Release(This) \ 652 ( (This)->lpVtbl -> Release(This) ) 653 654 655 #define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \ 656 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 657 658 #define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \ 659 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 660 661 #define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \ 662 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 663 664 #define ID3D12VideoDecoder_SetName(This,Name) \ 665 ( (This)->lpVtbl -> SetName(This,Name) ) 666 667 668 #define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \ 669 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 670 671 672 673 #define ID3D12VideoDecoder_GetDesc(This) \ 674 ( (This)->lpVtbl -> GetDesc(This) ) 675 676 #endif /* COBJMACROS */ 677 678 679 #endif /* C style interface */ 680 681 682 683 684 685 686 687 688 #endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */ 689 690 691 /* interface __MIDL_itf_d3d12video_0000_0003 */ 692 /* [local] */ 693 694 typedef 695 enum D3D12_VIDEO_DECODE_TIER 696 { 697 D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, 698 D3D12_VIDEO_DECODE_TIER_1 = 1, 699 D3D12_VIDEO_DECODE_TIER_2 = 2, 700 D3D12_VIDEO_DECODE_TIER_3 = 3 701 } D3D12_VIDEO_DECODE_TIER; 702 703 typedef 704 enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS 705 { 706 D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0, 707 D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1 708 } D3D12_VIDEO_DECODE_SUPPORT_FLAGS; 709 710 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS ); 711 typedef 712 enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS 713 { 714 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0, 715 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, 716 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, 717 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, 718 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8 719 } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; 720 721 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ); 722 typedef 723 enum D3D12_VIDEO_DECODE_STATUS 724 { 725 D3D12_VIDEO_DECODE_STATUS_OK = 0, 726 D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, 727 D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, 728 D3D12_VIDEO_DECODE_STATUS_RESTART = 3 729 } D3D12_VIDEO_DECODE_STATUS; 730 731 typedef 732 enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE 733 { 734 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, 735 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, 736 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, 737 D3D12_VIDEO_DECODE_ARGUMENT_TYPE_MAX_VALID = 3 738 } D3D12_VIDEO_DECODE_ARGUMENT_TYPE; 739 740 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 741 { 742 UINT NodeIndex; 743 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 744 UINT Width; 745 UINT Height; 746 DXGI_FORMAT DecodeFormat; 747 DXGI_RATIONAL FrameRate; 748 UINT BitRate; 749 D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; 750 D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; 751 D3D12_VIDEO_DECODE_TIER DecodeTier; 752 } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; 753 754 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT 755 { 756 UINT NodeIndex; 757 UINT ProfileCount; 758 } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; 759 760 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES 761 { 762 UINT NodeIndex; 763 UINT ProfileCount; 764 _Field_size_full_(ProfileCount) GUID *pProfiles; 765 } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; 766 767 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT 768 { 769 UINT NodeIndex; 770 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 771 UINT FormatCount; 772 } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; 773 774 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS 775 { 776 UINT NodeIndex; 777 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 778 UINT FormatCount; 779 _Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats; 780 } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; 781 782 typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE 783 { 784 BOOL IOCoherent; 785 } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; 786 787 typedef 788 enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT 789 { 790 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, 791 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, 792 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, 793 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, 794 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, 795 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, 796 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3 797 } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; 798 799 typedef 800 enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS 801 { 802 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0, 803 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) , 804 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) , 805 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) , 806 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) , 807 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) , 808 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) , 809 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A ) 810 } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; 811 812 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS ); 813 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM 814 { 815 UINT NodeIndex; 816 GUID DecodeProfile; 817 UINT Width; 818 UINT Height; 819 DXGI_FORMAT DecodeFormat; 820 D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; 821 UINT BinCount; 822 UINT CounterBitDepth; 823 } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; 824 825 typedef 826 enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS 827 { 828 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0, 829 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1 830 } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; 831 832 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS ); 833 typedef 834 enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS 835 { 836 D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0, 837 D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, 838 D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2 839 } D3D12_VIDEO_SCALE_SUPPORT_FLAGS; 840 841 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS ); 842 typedef struct D3D12_VIDEO_SCALE_SUPPORT 843 { 844 D3D12_VIDEO_SIZE_RANGE OutputSizeRange; 845 D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; 846 } D3D12_VIDEO_SCALE_SUPPORT; 847 848 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT 849 { 850 UINT NodeIndex; 851 D3D12_VIDEO_DECODE_CONFIGURATION Configuration; 852 D3D12_VIDEO_SAMPLE DecodeSample; 853 D3D12_VIDEO_FORMAT OutputFormat; 854 DXGI_RATIONAL FrameRate; 855 UINT BitRate; 856 D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; 857 D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; 858 } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; 859 860 typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE 861 { 862 D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; 863 UINT64 MemoryPoolL0Size; 864 UINT64 MemoryPoolL1Size; 865 } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; 866 867 typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE 868 { 869 UINT NodeMask; 870 const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc; 871 UINT NumInputStreamDescs; 872 const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; 873 UINT64 MemoryPoolL0Size; 874 UINT64 MemoryPoolL1Size; 875 } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; 876 877 typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS 878 { 879 UINT64 Status; 880 UINT64 NumMacroblocksAffected; 881 DXGI_RATIONAL FrameRate; 882 UINT BitRate; 883 } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; 884 885 typedef struct D3D12_VIDEO_DECODE_SUB_SAMPLE_MAPPING_BLOCK 886 { 887 UINT ClearSize; 888 UINT EncryptedSize; 889 } D3D12_VIDEO_DECODE_SUB_SAMPLE_MAPPING_BLOCK; 890 891 typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT 892 { 893 D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; 894 UINT Size; 895 _Field_size_bytes_full_(Size) void *pData; 896 } D3D12_VIDEO_DECODE_FRAME_ARGUMENT; 897 898 typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES 899 { 900 UINT NumTexture2Ds; 901 _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds; 902 _Field_size_full_(NumTexture2Ds) UINT *pSubresources; 903 _Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps; 904 } D3D12_VIDEO_DECODE_REFERENCE_FRAMES; 905 906 typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM 907 { 908 ID3D12Resource *pBuffer; 909 UINT64 Offset; 910 UINT64 Size; 911 } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; 912 913 typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS 914 { 915 BOOL Enable; 916 ID3D12Resource *pReferenceTexture2D; 917 UINT ReferenceSubresource; 918 DXGI_COLOR_SPACE_TYPE OutputColorSpace; 919 DXGI_COLOR_SPACE_TYPE DecodeColorSpace; 920 } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; 921 922 typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS 923 { 924 UINT NumFrameArguments; 925 D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ]; 926 D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; 927 D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; 928 ID3D12VideoDecoderHeap *pHeap; 929 } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; 930 931 typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS 932 { 933 ID3D12Resource *pOutputTexture2D; 934 UINT OutputSubresource; 935 D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; 936 } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; 937 938 939 940 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec; 941 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec; 942 943 #ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__ 944 #define __ID3D12VideoProcessor_INTERFACE_DEFINED__ 945 946 /* interface ID3D12VideoProcessor */ 947 /* [unique][local][object][uuid] */ 948 949 950 EXTERN_C const IID IID_ID3D12VideoProcessor; 951 952 #if defined(__cplusplus) && !defined(CINTERFACE) 953 954 MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138") 955 ID3D12VideoProcessor : public ID3D12Pageable 956 { 957 public: 958 virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; 959 960 virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0; 961 962 virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs( 963 UINT NumInputStreamDescs, 964 _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0; 965 966 virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0; 967 968 }; 969 970 971 #else /* C style interface */ 972 973 typedef struct ID3D12VideoProcessorVtbl 974 { 975 BEGIN_INTERFACE 976 977 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 978 ID3D12VideoProcessor * This, 979 REFIID riid, 980 _COM_Outptr_ void **ppvObject); 981 982 ULONG ( STDMETHODCALLTYPE *AddRef )( 983 ID3D12VideoProcessor * This); 984 985 ULONG ( STDMETHODCALLTYPE *Release )( 986 ID3D12VideoProcessor * This); 987 988 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 989 ID3D12VideoProcessor * This, 990 _In_ REFGUID guid, 991 _Inout_ UINT *pDataSize, 992 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 993 994 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 995 ID3D12VideoProcessor * This, 996 _In_ REFGUID guid, 997 _In_ UINT DataSize, 998 _In_reads_bytes_opt_( DataSize ) const void *pData); 999 1000 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1001 ID3D12VideoProcessor * This, 1002 _In_ REFGUID guid, 1003 _In_opt_ const IUnknown *pData); 1004 1005 HRESULT ( STDMETHODCALLTYPE *SetName )( 1006 ID3D12VideoProcessor * This, 1007 _In_z_ LPCWSTR Name); 1008 1009 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 1010 ID3D12VideoProcessor * This, 1011 REFIID riid, 1012 _COM_Outptr_opt_ void **ppvDevice); 1013 1014 UINT ( STDMETHODCALLTYPE *GetNodeMask )( 1015 ID3D12VideoProcessor * This); 1016 1017 UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )( 1018 ID3D12VideoProcessor * This); 1019 1020 HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )( 1021 ID3D12VideoProcessor * This, 1022 UINT NumInputStreamDescs, 1023 _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); 1024 1025 D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )( 1026 ID3D12VideoProcessor * This); 1027 1028 END_INTERFACE 1029 } ID3D12VideoProcessorVtbl; 1030 1031 interface ID3D12VideoProcessor 1032 { 1033 CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl; 1034 }; 1035 1036 1037 1038 #ifdef COBJMACROS 1039 1040 1041 #define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \ 1042 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1043 1044 #define ID3D12VideoProcessor_AddRef(This) \ 1045 ( (This)->lpVtbl -> AddRef(This) ) 1046 1047 #define ID3D12VideoProcessor_Release(This) \ 1048 ( (This)->lpVtbl -> Release(This) ) 1049 1050 1051 #define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \ 1052 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 1053 1054 #define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \ 1055 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 1056 1057 #define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \ 1058 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 1059 1060 #define ID3D12VideoProcessor_SetName(This,Name) \ 1061 ( (This)->lpVtbl -> SetName(This,Name) ) 1062 1063 1064 #define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \ 1065 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 1066 1067 1068 1069 #define ID3D12VideoProcessor_GetNodeMask(This) \ 1070 ( (This)->lpVtbl -> GetNodeMask(This) ) 1071 1072 #define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \ 1073 ( (This)->lpVtbl -> GetNumInputStreamDescs(This) ) 1074 1075 #define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \ 1076 ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) ) 1077 1078 #define ID3D12VideoProcessor_GetOutputStreamDesc(This) \ 1079 ( (This)->lpVtbl -> GetOutputStreamDesc(This) ) 1080 1081 #endif /* COBJMACROS */ 1082 1083 1084 #endif /* C style interface */ 1085 1086 1087 1088 1089 1090 1091 1092 1093 #endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */ 1094 1095 1096 /* interface __MIDL_itf_d3d12video_0000_0004 */ 1097 /* [local] */ 1098 1099 typedef 1100 enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS 1101 { 1102 D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0, 1103 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, 1104 D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, 1105 D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, 1106 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, 1107 D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, 1108 D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, 1109 D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40 1110 } D3D12_VIDEO_PROCESS_FEATURE_FLAGS; 1111 1112 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS ); 1113 typedef 1114 enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS 1115 { 1116 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0, 1117 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1, 1118 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2, 1119 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4, 1120 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8, 1121 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, 1122 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, 1123 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, 1124 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, 1125 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000 1126 } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; 1127 1128 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS ); 1129 typedef 1130 enum D3D12_VIDEO_PROCESS_ORIENTATION 1131 { 1132 D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, 1133 D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, 1134 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, 1135 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, 1136 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, 1137 D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, 1138 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, 1139 D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7 1140 } D3D12_VIDEO_PROCESS_ORIENTATION; 1141 1142 typedef 1143 enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS 1144 { 1145 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0, 1146 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, 1147 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2 1148 } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; 1149 1150 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS ); 1151 typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE 1152 { 1153 INT Minimum; 1154 INT Maximum; 1155 INT Default; 1156 FLOAT Multiplier; 1157 } D3D12_VIDEO_PROCESS_FILTER_RANGE; 1158 1159 typedef 1160 enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS 1161 { 1162 D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0, 1163 D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1 1164 } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; 1165 1166 DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS ); 1167 typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT 1168 { 1169 UINT NodeIndex; 1170 D3D12_VIDEO_SAMPLE InputSample; 1171 D3D12_VIDEO_FIELD_TYPE InputFieldType; 1172 D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; 1173 DXGI_RATIONAL InputFrameRate; 1174 D3D12_VIDEO_FORMAT OutputFormat; 1175 D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; 1176 DXGI_RATIONAL OutputFrameRate; 1177 D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; 1178 D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; 1179 D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; 1180 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; 1181 D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; 1182 D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; 1183 D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ]; 1184 } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; 1185 1186 typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS 1187 { 1188 UINT NodeIndex; 1189 UINT MaxInputStreams; 1190 } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; 1191 1192 typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO 1193 { 1194 UINT NodeIndex; 1195 D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; 1196 D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; 1197 D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; 1198 DXGI_RATIONAL InputFrameRate; 1199 DXGI_RATIONAL OutputFrameRate; 1200 BOOL EnableAutoProcessing; 1201 UINT PastFrames; 1202 UINT FutureFrames; 1203 } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; 1204 1205 typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET 1206 { 1207 UINT NumPastFrames; 1208 ID3D12Resource **ppPastFrames; 1209 UINT *pPastSubresources; 1210 UINT NumFutureFrames; 1211 ID3D12Resource **ppFutureFrames; 1212 UINT *pFutureSubresources; 1213 } D3D12_VIDEO_PROCESS_REFERENCE_SET; 1214 1215 typedef struct D3D12_VIDEO_PROCESS_TRANSFORM 1216 { 1217 D3D12_RECT SourceRectangle; 1218 D3D12_RECT DestinationRectangle; 1219 D3D12_VIDEO_PROCESS_ORIENTATION Orientation; 1220 } D3D12_VIDEO_PROCESS_TRANSFORM; 1221 1222 typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE 1223 { 1224 UINT OutputIndex; 1225 UINT InputFrameOrField; 1226 } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; 1227 1228 typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM 1229 { 1230 ID3D12Resource *pTexture2D; 1231 UINT Subresource; 1232 D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; 1233 } D3D12_VIDEO_PROCESS_INPUT_STREAM; 1234 1235 typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS 1236 { 1237 D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; 1238 D3D12_VIDEO_PROCESS_TRANSFORM Transform; 1239 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; 1240 D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; 1241 INT FilterLevels[ 32 ]; 1242 D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; 1243 } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; 1244 1245 typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM 1246 { 1247 ID3D12Resource *pTexture2D; 1248 UINT Subresource; 1249 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM; 1250 1251 typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS 1252 { 1253 D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ]; 1254 D3D12_RECT TargetRectangle; 1255 } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; 1256 1257 1258 1259 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec; 1260 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec; 1261 1262 #ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ 1263 #define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ 1264 1265 /* interface ID3D12VideoDecodeCommandList */ 1266 /* [unique][local][object][uuid] */ 1267 1268 1269 EXTERN_C const IID IID_ID3D12VideoDecodeCommandList; 1270 1271 #if defined(__cplusplus) && !defined(CINTERFACE) 1272 1273 MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53") 1274 ID3D12VideoDecodeCommandList : public ID3D12CommandList 1275 { 1276 public: 1277 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; 1278 1279 virtual HRESULT STDMETHODCALLTYPE Reset( 1280 _In_ ID3D12CommandAllocator *pAllocator) = 0; 1281 1282 virtual void STDMETHODCALLTYPE ClearState( void) = 0; 1283 1284 virtual void STDMETHODCALLTYPE ResourceBarrier( 1285 _In_ UINT NumBarriers, 1286 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; 1287 1288 virtual void STDMETHODCALLTYPE DiscardResource( 1289 _In_ ID3D12Resource *pResource, 1290 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; 1291 1292 virtual void STDMETHODCALLTYPE BeginQuery( 1293 _In_ ID3D12QueryHeap *pQueryHeap, 1294 _In_ D3D12_QUERY_TYPE Type, 1295 _In_ UINT Index) = 0; 1296 1297 virtual void STDMETHODCALLTYPE EndQuery( 1298 _In_ ID3D12QueryHeap *pQueryHeap, 1299 _In_ D3D12_QUERY_TYPE Type, 1300 _In_ UINT Index) = 0; 1301 1302 virtual void STDMETHODCALLTYPE ResolveQueryData( 1303 _In_ ID3D12QueryHeap *pQueryHeap, 1304 _In_ D3D12_QUERY_TYPE Type, 1305 _In_ UINT StartIndex, 1306 _In_ UINT NumQueries, 1307 _In_ ID3D12Resource *pDestinationBuffer, 1308 _In_ UINT64 AlignedDestinationBufferOffset) = 0; 1309 1310 virtual void STDMETHODCALLTYPE SetPredication( 1311 _In_opt_ ID3D12Resource *pBuffer, 1312 _In_ UINT64 AlignedBufferOffset, 1313 _In_ D3D12_PREDICATION_OP Operation) = 0; 1314 1315 virtual void STDMETHODCALLTYPE SetMarker( 1316 UINT Metadata, 1317 _In_reads_bytes_opt_(Size) const void *pData, 1318 UINT Size) = 0; 1319 1320 virtual void STDMETHODCALLTYPE BeginEvent( 1321 UINT Metadata, 1322 _In_reads_bytes_opt_(Size) const void *pData, 1323 UINT Size) = 0; 1324 1325 virtual void STDMETHODCALLTYPE EndEvent( void) = 0; 1326 1327 virtual void STDMETHODCALLTYPE DecodeFrame( 1328 _In_ ID3D12VideoDecoder *pDecoder, 1329 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 1330 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; 1331 1332 virtual void STDMETHODCALLTYPE WriteBufferImmediate( 1333 UINT Count, 1334 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 1335 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; 1336 1337 }; 1338 1339 1340 #else /* C style interface */ 1341 1342 typedef struct ID3D12VideoDecodeCommandListVtbl 1343 { 1344 BEGIN_INTERFACE 1345 1346 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1347 ID3D12VideoDecodeCommandList * This, 1348 REFIID riid, 1349 _COM_Outptr_ void **ppvObject); 1350 1351 ULONG ( STDMETHODCALLTYPE *AddRef )( 1352 ID3D12VideoDecodeCommandList * This); 1353 1354 ULONG ( STDMETHODCALLTYPE *Release )( 1355 ID3D12VideoDecodeCommandList * This); 1356 1357 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1358 ID3D12VideoDecodeCommandList * This, 1359 _In_ REFGUID guid, 1360 _Inout_ UINT *pDataSize, 1361 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 1362 1363 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1364 ID3D12VideoDecodeCommandList * This, 1365 _In_ REFGUID guid, 1366 _In_ UINT DataSize, 1367 _In_reads_bytes_opt_( DataSize ) const void *pData); 1368 1369 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1370 ID3D12VideoDecodeCommandList * This, 1371 _In_ REFGUID guid, 1372 _In_opt_ const IUnknown *pData); 1373 1374 HRESULT ( STDMETHODCALLTYPE *SetName )( 1375 ID3D12VideoDecodeCommandList * This, 1376 _In_z_ LPCWSTR Name); 1377 1378 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 1379 ID3D12VideoDecodeCommandList * This, 1380 REFIID riid, 1381 _COM_Outptr_opt_ void **ppvDevice); 1382 1383 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 1384 ID3D12VideoDecodeCommandList * This); 1385 1386 HRESULT ( STDMETHODCALLTYPE *Close )( 1387 ID3D12VideoDecodeCommandList * This); 1388 1389 HRESULT ( STDMETHODCALLTYPE *Reset )( 1390 ID3D12VideoDecodeCommandList * This, 1391 _In_ ID3D12CommandAllocator *pAllocator); 1392 1393 void ( STDMETHODCALLTYPE *ClearState )( 1394 ID3D12VideoDecodeCommandList * This); 1395 1396 void ( STDMETHODCALLTYPE *ResourceBarrier )( 1397 ID3D12VideoDecodeCommandList * This, 1398 _In_ UINT NumBarriers, 1399 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 1400 1401 void ( STDMETHODCALLTYPE *DiscardResource )( 1402 ID3D12VideoDecodeCommandList * This, 1403 _In_ ID3D12Resource *pResource, 1404 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 1405 1406 void ( STDMETHODCALLTYPE *BeginQuery )( 1407 ID3D12VideoDecodeCommandList * This, 1408 _In_ ID3D12QueryHeap *pQueryHeap, 1409 _In_ D3D12_QUERY_TYPE Type, 1410 _In_ UINT Index); 1411 1412 void ( STDMETHODCALLTYPE *EndQuery )( 1413 ID3D12VideoDecodeCommandList * This, 1414 _In_ ID3D12QueryHeap *pQueryHeap, 1415 _In_ D3D12_QUERY_TYPE Type, 1416 _In_ UINT Index); 1417 1418 void ( STDMETHODCALLTYPE *ResolveQueryData )( 1419 ID3D12VideoDecodeCommandList * This, 1420 _In_ ID3D12QueryHeap *pQueryHeap, 1421 _In_ D3D12_QUERY_TYPE Type, 1422 _In_ UINT StartIndex, 1423 _In_ UINT NumQueries, 1424 _In_ ID3D12Resource *pDestinationBuffer, 1425 _In_ UINT64 AlignedDestinationBufferOffset); 1426 1427 void ( STDMETHODCALLTYPE *SetPredication )( 1428 ID3D12VideoDecodeCommandList * This, 1429 _In_opt_ ID3D12Resource *pBuffer, 1430 _In_ UINT64 AlignedBufferOffset, 1431 _In_ D3D12_PREDICATION_OP Operation); 1432 1433 void ( STDMETHODCALLTYPE *SetMarker )( 1434 ID3D12VideoDecodeCommandList * This, 1435 UINT Metadata, 1436 _In_reads_bytes_opt_(Size) const void *pData, 1437 UINT Size); 1438 1439 void ( STDMETHODCALLTYPE *BeginEvent )( 1440 ID3D12VideoDecodeCommandList * This, 1441 UINT Metadata, 1442 _In_reads_bytes_opt_(Size) const void *pData, 1443 UINT Size); 1444 1445 void ( STDMETHODCALLTYPE *EndEvent )( 1446 ID3D12VideoDecodeCommandList * This); 1447 1448 void ( STDMETHODCALLTYPE *DecodeFrame )( 1449 ID3D12VideoDecodeCommandList * This, 1450 _In_ ID3D12VideoDecoder *pDecoder, 1451 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 1452 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); 1453 1454 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 1455 ID3D12VideoDecodeCommandList * This, 1456 UINT Count, 1457 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 1458 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 1459 1460 END_INTERFACE 1461 } ID3D12VideoDecodeCommandListVtbl; 1462 1463 interface ID3D12VideoDecodeCommandList 1464 { 1465 CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl; 1466 }; 1467 1468 1469 1470 #ifdef COBJMACROS 1471 1472 1473 #define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \ 1474 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1475 1476 #define ID3D12VideoDecodeCommandList_AddRef(This) \ 1477 ( (This)->lpVtbl -> AddRef(This) ) 1478 1479 #define ID3D12VideoDecodeCommandList_Release(This) \ 1480 ( (This)->lpVtbl -> Release(This) ) 1481 1482 1483 #define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \ 1484 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 1485 1486 #define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \ 1487 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 1488 1489 #define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \ 1490 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 1491 1492 #define ID3D12VideoDecodeCommandList_SetName(This,Name) \ 1493 ( (This)->lpVtbl -> SetName(This,Name) ) 1494 1495 1496 #define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \ 1497 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 1498 1499 1500 #define ID3D12VideoDecodeCommandList_GetType(This) \ 1501 ( (This)->lpVtbl -> GetType(This) ) 1502 1503 1504 #define ID3D12VideoDecodeCommandList_Close(This) \ 1505 ( (This)->lpVtbl -> Close(This) ) 1506 1507 #define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \ 1508 ( (This)->lpVtbl -> Reset(This,pAllocator) ) 1509 1510 #define ID3D12VideoDecodeCommandList_ClearState(This) \ 1511 ( (This)->lpVtbl -> ClearState(This) ) 1512 1513 #define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ 1514 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 1515 1516 #define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \ 1517 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 1518 1519 #define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ 1520 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 1521 1522 #define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \ 1523 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 1524 1525 #define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 1526 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 1527 1528 #define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 1529 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 1530 1531 #define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \ 1532 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 1533 1534 #define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \ 1535 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 1536 1537 #define ID3D12VideoDecodeCommandList_EndEvent(This) \ 1538 ( (This)->lpVtbl -> EndEvent(This) ) 1539 1540 #define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ 1541 ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) 1542 1543 #define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ 1544 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 1545 1546 #endif /* COBJMACROS */ 1547 1548 1549 #endif /* C style interface */ 1550 1551 1552 1553 1554 #endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */ 1555 1556 1557 #ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ 1558 #define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ 1559 1560 /* interface ID3D12VideoProcessCommandList */ 1561 /* [unique][local][object][uuid] */ 1562 1563 1564 EXTERN_C const IID IID_ID3D12VideoProcessCommandList; 1565 1566 #if defined(__cplusplus) && !defined(CINTERFACE) 1567 1568 MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209") 1569 ID3D12VideoProcessCommandList : public ID3D12CommandList 1570 { 1571 public: 1572 virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; 1573 1574 virtual HRESULT STDMETHODCALLTYPE Reset( 1575 _In_ ID3D12CommandAllocator *pAllocator) = 0; 1576 1577 virtual void STDMETHODCALLTYPE ClearState( void) = 0; 1578 1579 virtual void STDMETHODCALLTYPE ResourceBarrier( 1580 _In_ UINT NumBarriers, 1581 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; 1582 1583 virtual void STDMETHODCALLTYPE DiscardResource( 1584 _In_ ID3D12Resource *pResource, 1585 _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; 1586 1587 virtual void STDMETHODCALLTYPE BeginQuery( 1588 _In_ ID3D12QueryHeap *pQueryHeap, 1589 _In_ D3D12_QUERY_TYPE Type, 1590 _In_ UINT Index) = 0; 1591 1592 virtual void STDMETHODCALLTYPE EndQuery( 1593 _In_ ID3D12QueryHeap *pQueryHeap, 1594 _In_ D3D12_QUERY_TYPE Type, 1595 _In_ UINT Index) = 0; 1596 1597 virtual void STDMETHODCALLTYPE ResolveQueryData( 1598 _In_ ID3D12QueryHeap *pQueryHeap, 1599 _In_ D3D12_QUERY_TYPE Type, 1600 _In_ UINT StartIndex, 1601 _In_ UINT NumQueries, 1602 _In_ ID3D12Resource *pDestinationBuffer, 1603 _In_ UINT64 AlignedDestinationBufferOffset) = 0; 1604 1605 virtual void STDMETHODCALLTYPE SetPredication( 1606 _In_opt_ ID3D12Resource *pBuffer, 1607 _In_ UINT64 AlignedBufferOffset, 1608 _In_ D3D12_PREDICATION_OP Operation) = 0; 1609 1610 virtual void STDMETHODCALLTYPE SetMarker( 1611 UINT Metadata, 1612 _In_reads_bytes_opt_(Size) const void *pData, 1613 UINT Size) = 0; 1614 1615 virtual void STDMETHODCALLTYPE BeginEvent( 1616 UINT Metadata, 1617 _In_reads_bytes_opt_(Size) const void *pData, 1618 UINT Size) = 0; 1619 1620 virtual void STDMETHODCALLTYPE EndEvent( void) = 0; 1621 1622 virtual void STDMETHODCALLTYPE ProcessFrames( 1623 _In_ ID3D12VideoProcessor *pVideoProcessor, 1624 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 1625 UINT NumInputStreams, 1626 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; 1627 1628 virtual void STDMETHODCALLTYPE WriteBufferImmediate( 1629 UINT Count, 1630 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 1631 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; 1632 1633 }; 1634 1635 1636 #else /* C style interface */ 1637 1638 typedef struct ID3D12VideoProcessCommandListVtbl 1639 { 1640 BEGIN_INTERFACE 1641 1642 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1643 ID3D12VideoProcessCommandList * This, 1644 REFIID riid, 1645 _COM_Outptr_ void **ppvObject); 1646 1647 ULONG ( STDMETHODCALLTYPE *AddRef )( 1648 ID3D12VideoProcessCommandList * This); 1649 1650 ULONG ( STDMETHODCALLTYPE *Release )( 1651 ID3D12VideoProcessCommandList * This); 1652 1653 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1654 ID3D12VideoProcessCommandList * This, 1655 _In_ REFGUID guid, 1656 _Inout_ UINT *pDataSize, 1657 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 1658 1659 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1660 ID3D12VideoProcessCommandList * This, 1661 _In_ REFGUID guid, 1662 _In_ UINT DataSize, 1663 _In_reads_bytes_opt_( DataSize ) const void *pData); 1664 1665 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1666 ID3D12VideoProcessCommandList * This, 1667 _In_ REFGUID guid, 1668 _In_opt_ const IUnknown *pData); 1669 1670 HRESULT ( STDMETHODCALLTYPE *SetName )( 1671 ID3D12VideoProcessCommandList * This, 1672 _In_z_ LPCWSTR Name); 1673 1674 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 1675 ID3D12VideoProcessCommandList * This, 1676 REFIID riid, 1677 _COM_Outptr_opt_ void **ppvDevice); 1678 1679 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 1680 ID3D12VideoProcessCommandList * This); 1681 1682 HRESULT ( STDMETHODCALLTYPE *Close )( 1683 ID3D12VideoProcessCommandList * This); 1684 1685 HRESULT ( STDMETHODCALLTYPE *Reset )( 1686 ID3D12VideoProcessCommandList * This, 1687 _In_ ID3D12CommandAllocator *pAllocator); 1688 1689 void ( STDMETHODCALLTYPE *ClearState )( 1690 ID3D12VideoProcessCommandList * This); 1691 1692 void ( STDMETHODCALLTYPE *ResourceBarrier )( 1693 ID3D12VideoProcessCommandList * This, 1694 _In_ UINT NumBarriers, 1695 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 1696 1697 void ( STDMETHODCALLTYPE *DiscardResource )( 1698 ID3D12VideoProcessCommandList * This, 1699 _In_ ID3D12Resource *pResource, 1700 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 1701 1702 void ( STDMETHODCALLTYPE *BeginQuery )( 1703 ID3D12VideoProcessCommandList * This, 1704 _In_ ID3D12QueryHeap *pQueryHeap, 1705 _In_ D3D12_QUERY_TYPE Type, 1706 _In_ UINT Index); 1707 1708 void ( STDMETHODCALLTYPE *EndQuery )( 1709 ID3D12VideoProcessCommandList * This, 1710 _In_ ID3D12QueryHeap *pQueryHeap, 1711 _In_ D3D12_QUERY_TYPE Type, 1712 _In_ UINT Index); 1713 1714 void ( STDMETHODCALLTYPE *ResolveQueryData )( 1715 ID3D12VideoProcessCommandList * This, 1716 _In_ ID3D12QueryHeap *pQueryHeap, 1717 _In_ D3D12_QUERY_TYPE Type, 1718 _In_ UINT StartIndex, 1719 _In_ UINT NumQueries, 1720 _In_ ID3D12Resource *pDestinationBuffer, 1721 _In_ UINT64 AlignedDestinationBufferOffset); 1722 1723 void ( STDMETHODCALLTYPE *SetPredication )( 1724 ID3D12VideoProcessCommandList * This, 1725 _In_opt_ ID3D12Resource *pBuffer, 1726 _In_ UINT64 AlignedBufferOffset, 1727 _In_ D3D12_PREDICATION_OP Operation); 1728 1729 void ( STDMETHODCALLTYPE *SetMarker )( 1730 ID3D12VideoProcessCommandList * This, 1731 UINT Metadata, 1732 _In_reads_bytes_opt_(Size) const void *pData, 1733 UINT Size); 1734 1735 void ( STDMETHODCALLTYPE *BeginEvent )( 1736 ID3D12VideoProcessCommandList * This, 1737 UINT Metadata, 1738 _In_reads_bytes_opt_(Size) const void *pData, 1739 UINT Size); 1740 1741 void ( STDMETHODCALLTYPE *EndEvent )( 1742 ID3D12VideoProcessCommandList * This); 1743 1744 void ( STDMETHODCALLTYPE *ProcessFrames )( 1745 ID3D12VideoProcessCommandList * This, 1746 _In_ ID3D12VideoProcessor *pVideoProcessor, 1747 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 1748 UINT NumInputStreams, 1749 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); 1750 1751 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 1752 ID3D12VideoProcessCommandList * This, 1753 UINT Count, 1754 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 1755 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 1756 1757 END_INTERFACE 1758 } ID3D12VideoProcessCommandListVtbl; 1759 1760 interface ID3D12VideoProcessCommandList 1761 { 1762 CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl; 1763 }; 1764 1765 1766 1767 #ifdef COBJMACROS 1768 1769 1770 #define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \ 1771 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1772 1773 #define ID3D12VideoProcessCommandList_AddRef(This) \ 1774 ( (This)->lpVtbl -> AddRef(This) ) 1775 1776 #define ID3D12VideoProcessCommandList_Release(This) \ 1777 ( (This)->lpVtbl -> Release(This) ) 1778 1779 1780 #define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \ 1781 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 1782 1783 #define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \ 1784 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 1785 1786 #define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \ 1787 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 1788 1789 #define ID3D12VideoProcessCommandList_SetName(This,Name) \ 1790 ( (This)->lpVtbl -> SetName(This,Name) ) 1791 1792 1793 #define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \ 1794 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 1795 1796 1797 #define ID3D12VideoProcessCommandList_GetType(This) \ 1798 ( (This)->lpVtbl -> GetType(This) ) 1799 1800 1801 #define ID3D12VideoProcessCommandList_Close(This) \ 1802 ( (This)->lpVtbl -> Close(This) ) 1803 1804 #define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \ 1805 ( (This)->lpVtbl -> Reset(This,pAllocator) ) 1806 1807 #define ID3D12VideoProcessCommandList_ClearState(This) \ 1808 ( (This)->lpVtbl -> ClearState(This) ) 1809 1810 #define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ 1811 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 1812 1813 #define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \ 1814 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 1815 1816 #define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ 1817 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 1818 1819 #define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \ 1820 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 1821 1822 #define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 1823 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 1824 1825 #define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 1826 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 1827 1828 #define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \ 1829 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 1830 1831 #define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \ 1832 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 1833 1834 #define ID3D12VideoProcessCommandList_EndEvent(This) \ 1835 ( (This)->lpVtbl -> EndEvent(This) ) 1836 1837 #define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ 1838 ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) 1839 1840 #define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ 1841 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 1842 1843 #endif /* COBJMACROS */ 1844 1845 1846 #endif /* C style interface */ 1847 1848 1849 1850 1851 #endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */ 1852 1853 1854 /* interface __MIDL_itf_d3d12video_0000_0006 */ 1855 /* [local] */ 1856 1857 typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM 1858 { 1859 UINT64 Offset; 1860 ID3D12Resource *pBuffer; 1861 } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; 1862 1863 typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 1864 { 1865 BOOL Enable; 1866 ID3D12Resource *pReferenceTexture2D; 1867 UINT ReferenceSubresource; 1868 DXGI_COLOR_SPACE_TYPE OutputColorSpace; 1869 DXGI_COLOR_SPACE_TYPE DecodeColorSpace; 1870 UINT OutputWidth; 1871 UINT OutputHeight; 1872 } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; 1873 1874 typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 1875 { 1876 ID3D12Resource *pOutputTexture2D; 1877 UINT OutputSubresource; 1878 D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; 1879 D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ]; 1880 } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; 1881 1882 1883 1884 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec; 1885 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec; 1886 1887 #ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ 1888 #define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ 1889 1890 /* interface ID3D12VideoDecodeCommandList1 */ 1891 /* [unique][local][object][uuid] */ 1892 1893 1894 EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1; 1895 1896 #if defined(__cplusplus) && !defined(CINTERFACE) 1897 1898 MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472") 1899 ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList 1900 { 1901 public: 1902 virtual void STDMETHODCALLTYPE DecodeFrame1( 1903 _In_ ID3D12VideoDecoder *pDecoder, 1904 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, 1905 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; 1906 1907 }; 1908 1909 1910 #else /* C style interface */ 1911 1912 typedef struct ID3D12VideoDecodeCommandList1Vtbl 1913 { 1914 BEGIN_INTERFACE 1915 1916 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1917 ID3D12VideoDecodeCommandList1 * This, 1918 REFIID riid, 1919 _COM_Outptr_ void **ppvObject); 1920 1921 ULONG ( STDMETHODCALLTYPE *AddRef )( 1922 ID3D12VideoDecodeCommandList1 * This); 1923 1924 ULONG ( STDMETHODCALLTYPE *Release )( 1925 ID3D12VideoDecodeCommandList1 * This); 1926 1927 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 1928 ID3D12VideoDecodeCommandList1 * This, 1929 _In_ REFGUID guid, 1930 _Inout_ UINT *pDataSize, 1931 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 1932 1933 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 1934 ID3D12VideoDecodeCommandList1 * This, 1935 _In_ REFGUID guid, 1936 _In_ UINT DataSize, 1937 _In_reads_bytes_opt_( DataSize ) const void *pData); 1938 1939 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 1940 ID3D12VideoDecodeCommandList1 * This, 1941 _In_ REFGUID guid, 1942 _In_opt_ const IUnknown *pData); 1943 1944 HRESULT ( STDMETHODCALLTYPE *SetName )( 1945 ID3D12VideoDecodeCommandList1 * This, 1946 _In_z_ LPCWSTR Name); 1947 1948 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 1949 ID3D12VideoDecodeCommandList1 * This, 1950 REFIID riid, 1951 _COM_Outptr_opt_ void **ppvDevice); 1952 1953 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 1954 ID3D12VideoDecodeCommandList1 * This); 1955 1956 HRESULT ( STDMETHODCALLTYPE *Close )( 1957 ID3D12VideoDecodeCommandList1 * This); 1958 1959 HRESULT ( STDMETHODCALLTYPE *Reset )( 1960 ID3D12VideoDecodeCommandList1 * This, 1961 _In_ ID3D12CommandAllocator *pAllocator); 1962 1963 void ( STDMETHODCALLTYPE *ClearState )( 1964 ID3D12VideoDecodeCommandList1 * This); 1965 1966 void ( STDMETHODCALLTYPE *ResourceBarrier )( 1967 ID3D12VideoDecodeCommandList1 * This, 1968 _In_ UINT NumBarriers, 1969 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 1970 1971 void ( STDMETHODCALLTYPE *DiscardResource )( 1972 ID3D12VideoDecodeCommandList1 * This, 1973 _In_ ID3D12Resource *pResource, 1974 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 1975 1976 void ( STDMETHODCALLTYPE *BeginQuery )( 1977 ID3D12VideoDecodeCommandList1 * This, 1978 _In_ ID3D12QueryHeap *pQueryHeap, 1979 _In_ D3D12_QUERY_TYPE Type, 1980 _In_ UINT Index); 1981 1982 void ( STDMETHODCALLTYPE *EndQuery )( 1983 ID3D12VideoDecodeCommandList1 * This, 1984 _In_ ID3D12QueryHeap *pQueryHeap, 1985 _In_ D3D12_QUERY_TYPE Type, 1986 _In_ UINT Index); 1987 1988 void ( STDMETHODCALLTYPE *ResolveQueryData )( 1989 ID3D12VideoDecodeCommandList1 * This, 1990 _In_ ID3D12QueryHeap *pQueryHeap, 1991 _In_ D3D12_QUERY_TYPE Type, 1992 _In_ UINT StartIndex, 1993 _In_ UINT NumQueries, 1994 _In_ ID3D12Resource *pDestinationBuffer, 1995 _In_ UINT64 AlignedDestinationBufferOffset); 1996 1997 void ( STDMETHODCALLTYPE *SetPredication )( 1998 ID3D12VideoDecodeCommandList1 * This, 1999 _In_opt_ ID3D12Resource *pBuffer, 2000 _In_ UINT64 AlignedBufferOffset, 2001 _In_ D3D12_PREDICATION_OP Operation); 2002 2003 void ( STDMETHODCALLTYPE *SetMarker )( 2004 ID3D12VideoDecodeCommandList1 * This, 2005 UINT Metadata, 2006 _In_reads_bytes_opt_(Size) const void *pData, 2007 UINT Size); 2008 2009 void ( STDMETHODCALLTYPE *BeginEvent )( 2010 ID3D12VideoDecodeCommandList1 * This, 2011 UINT Metadata, 2012 _In_reads_bytes_opt_(Size) const void *pData, 2013 UINT Size); 2014 2015 void ( STDMETHODCALLTYPE *EndEvent )( 2016 ID3D12VideoDecodeCommandList1 * This); 2017 2018 void ( STDMETHODCALLTYPE *DecodeFrame )( 2019 ID3D12VideoDecodeCommandList1 * This, 2020 _In_ ID3D12VideoDecoder *pDecoder, 2021 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 2022 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); 2023 2024 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 2025 ID3D12VideoDecodeCommandList1 * This, 2026 UINT Count, 2027 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 2028 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 2029 2030 void ( STDMETHODCALLTYPE *DecodeFrame1 )( 2031 ID3D12VideoDecodeCommandList1 * This, 2032 _In_ ID3D12VideoDecoder *pDecoder, 2033 _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, 2034 _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); 2035 2036 END_INTERFACE 2037 } ID3D12VideoDecodeCommandList1Vtbl; 2038 2039 interface ID3D12VideoDecodeCommandList1 2040 { 2041 CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl; 2042 }; 2043 2044 2045 2046 #ifdef COBJMACROS 2047 2048 2049 #define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \ 2050 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 2051 2052 #define ID3D12VideoDecodeCommandList1_AddRef(This) \ 2053 ( (This)->lpVtbl -> AddRef(This) ) 2054 2055 #define ID3D12VideoDecodeCommandList1_Release(This) \ 2056 ( (This)->lpVtbl -> Release(This) ) 2057 2058 2059 #define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ 2060 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 2061 2062 #define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \ 2063 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 2064 2065 #define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \ 2066 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 2067 2068 #define ID3D12VideoDecodeCommandList1_SetName(This,Name) \ 2069 ( (This)->lpVtbl -> SetName(This,Name) ) 2070 2071 2072 #define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \ 2073 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 2074 2075 2076 #define ID3D12VideoDecodeCommandList1_GetType(This) \ 2077 ( (This)->lpVtbl -> GetType(This) ) 2078 2079 2080 #define ID3D12VideoDecodeCommandList1_Close(This) \ 2081 ( (This)->lpVtbl -> Close(This) ) 2082 2083 #define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \ 2084 ( (This)->lpVtbl -> Reset(This,pAllocator) ) 2085 2086 #define ID3D12VideoDecodeCommandList1_ClearState(This) \ 2087 ( (This)->lpVtbl -> ClearState(This) ) 2088 2089 #define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ 2090 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 2091 2092 #define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \ 2093 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 2094 2095 #define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ 2096 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 2097 2098 #define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ 2099 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 2100 2101 #define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 2102 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 2103 2104 #define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 2105 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 2106 2107 #define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \ 2108 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 2109 2110 #define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \ 2111 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 2112 2113 #define ID3D12VideoDecodeCommandList1_EndEvent(This) \ 2114 ( (This)->lpVtbl -> EndEvent(This) ) 2115 2116 #define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ 2117 ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) 2118 2119 #define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ 2120 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 2121 2122 2123 #define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ 2124 ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) 2125 2126 #endif /* COBJMACROS */ 2127 2128 2129 #endif /* C style interface */ 2130 2131 2132 2133 2134 #endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */ 2135 2136 2137 /* interface __MIDL_itf_d3d12video_0000_0007 */ 2138 /* [local] */ 2139 2140 typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 2141 { 2142 D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; 2143 D3D12_VIDEO_PROCESS_TRANSFORM Transform; 2144 D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; 2145 D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; 2146 INT FilterLevels[ 32 ]; 2147 D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; 2148 D3D12_VIDEO_FIELD_TYPE FieldType; 2149 } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; 2150 2151 2152 2153 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec; 2154 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec; 2155 2156 #ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ 2157 #define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ 2158 2159 /* interface ID3D12VideoProcessCommandList1 */ 2160 /* [unique][local][object][uuid] */ 2161 2162 2163 EXTERN_C const IID IID_ID3D12VideoProcessCommandList1; 2164 2165 #if defined(__cplusplus) && !defined(CINTERFACE) 2166 2167 MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267") 2168 ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList 2169 { 2170 public: 2171 virtual void STDMETHODCALLTYPE ProcessFrames1( 2172 _In_ ID3D12VideoProcessor *pVideoProcessor, 2173 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 2174 UINT NumInputStreams, 2175 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0; 2176 2177 }; 2178 2179 2180 #else /* C style interface */ 2181 2182 typedef struct ID3D12VideoProcessCommandList1Vtbl 2183 { 2184 BEGIN_INTERFACE 2185 2186 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 2187 ID3D12VideoProcessCommandList1 * This, 2188 REFIID riid, 2189 _COM_Outptr_ void **ppvObject); 2190 2191 ULONG ( STDMETHODCALLTYPE *AddRef )( 2192 ID3D12VideoProcessCommandList1 * This); 2193 2194 ULONG ( STDMETHODCALLTYPE *Release )( 2195 ID3D12VideoProcessCommandList1 * This); 2196 2197 HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 2198 ID3D12VideoProcessCommandList1 * This, 2199 _In_ REFGUID guid, 2200 _Inout_ UINT *pDataSize, 2201 _Out_writes_bytes_opt_( *pDataSize ) void *pData); 2202 2203 HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 2204 ID3D12VideoProcessCommandList1 * This, 2205 _In_ REFGUID guid, 2206 _In_ UINT DataSize, 2207 _In_reads_bytes_opt_( DataSize ) const void *pData); 2208 2209 HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 2210 ID3D12VideoProcessCommandList1 * This, 2211 _In_ REFGUID guid, 2212 _In_opt_ const IUnknown *pData); 2213 2214 HRESULT ( STDMETHODCALLTYPE *SetName )( 2215 ID3D12VideoProcessCommandList1 * This, 2216 _In_z_ LPCWSTR Name); 2217 2218 HRESULT ( STDMETHODCALLTYPE *GetDevice )( 2219 ID3D12VideoProcessCommandList1 * This, 2220 REFIID riid, 2221 _COM_Outptr_opt_ void **ppvDevice); 2222 2223 D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( 2224 ID3D12VideoProcessCommandList1 * This); 2225 2226 HRESULT ( STDMETHODCALLTYPE *Close )( 2227 ID3D12VideoProcessCommandList1 * This); 2228 2229 HRESULT ( STDMETHODCALLTYPE *Reset )( 2230 ID3D12VideoProcessCommandList1 * This, 2231 _In_ ID3D12CommandAllocator *pAllocator); 2232 2233 void ( STDMETHODCALLTYPE *ClearState )( 2234 ID3D12VideoProcessCommandList1 * This); 2235 2236 void ( STDMETHODCALLTYPE *ResourceBarrier )( 2237 ID3D12VideoProcessCommandList1 * This, 2238 _In_ UINT NumBarriers, 2239 _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); 2240 2241 void ( STDMETHODCALLTYPE *DiscardResource )( 2242 ID3D12VideoProcessCommandList1 * This, 2243 _In_ ID3D12Resource *pResource, 2244 _In_opt_ const D3D12_DISCARD_REGION *pRegion); 2245 2246 void ( STDMETHODCALLTYPE *BeginQuery )( 2247 ID3D12VideoProcessCommandList1 * This, 2248 _In_ ID3D12QueryHeap *pQueryHeap, 2249 _In_ D3D12_QUERY_TYPE Type, 2250 _In_ UINT Index); 2251 2252 void ( STDMETHODCALLTYPE *EndQuery )( 2253 ID3D12VideoProcessCommandList1 * This, 2254 _In_ ID3D12QueryHeap *pQueryHeap, 2255 _In_ D3D12_QUERY_TYPE Type, 2256 _In_ UINT Index); 2257 2258 void ( STDMETHODCALLTYPE *ResolveQueryData )( 2259 ID3D12VideoProcessCommandList1 * This, 2260 _In_ ID3D12QueryHeap *pQueryHeap, 2261 _In_ D3D12_QUERY_TYPE Type, 2262 _In_ UINT StartIndex, 2263 _In_ UINT NumQueries, 2264 _In_ ID3D12Resource *pDestinationBuffer, 2265 _In_ UINT64 AlignedDestinationBufferOffset); 2266 2267 void ( STDMETHODCALLTYPE *SetPredication )( 2268 ID3D12VideoProcessCommandList1 * This, 2269 _In_opt_ ID3D12Resource *pBuffer, 2270 _In_ UINT64 AlignedBufferOffset, 2271 _In_ D3D12_PREDICATION_OP Operation); 2272 2273 void ( STDMETHODCALLTYPE *SetMarker )( 2274 ID3D12VideoProcessCommandList1 * This, 2275 UINT Metadata, 2276 _In_reads_bytes_opt_(Size) const void *pData, 2277 UINT Size); 2278 2279 void ( STDMETHODCALLTYPE *BeginEvent )( 2280 ID3D12VideoProcessCommandList1 * This, 2281 UINT Metadata, 2282 _In_reads_bytes_opt_(Size) const void *pData, 2283 UINT Size); 2284 2285 void ( STDMETHODCALLTYPE *EndEvent )( 2286 ID3D12VideoProcessCommandList1 * This); 2287 2288 void ( STDMETHODCALLTYPE *ProcessFrames )( 2289 ID3D12VideoProcessCommandList1 * This, 2290 _In_ ID3D12VideoProcessor *pVideoProcessor, 2291 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 2292 UINT NumInputStreams, 2293 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); 2294 2295 void ( STDMETHODCALLTYPE *WriteBufferImmediate )( 2296 ID3D12VideoProcessCommandList1 * This, 2297 UINT Count, 2298 _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, 2299 _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); 2300 2301 void ( STDMETHODCALLTYPE *ProcessFrames1 )( 2302 ID3D12VideoProcessCommandList1 * This, 2303 _In_ ID3D12VideoProcessor *pVideoProcessor, 2304 _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, 2305 UINT NumInputStreams, 2306 _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); 2307 2308 END_INTERFACE 2309 } ID3D12VideoProcessCommandList1Vtbl; 2310 2311 interface ID3D12VideoProcessCommandList1 2312 { 2313 CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl; 2314 }; 2315 2316 2317 2318 #ifdef COBJMACROS 2319 2320 2321 #define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \ 2322 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 2323 2324 #define ID3D12VideoProcessCommandList1_AddRef(This) \ 2325 ( (This)->lpVtbl -> AddRef(This) ) 2326 2327 #define ID3D12VideoProcessCommandList1_Release(This) \ 2328 ( (This)->lpVtbl -> Release(This) ) 2329 2330 2331 #define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ 2332 ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) 2333 2334 #define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \ 2335 ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) 2336 2337 #define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \ 2338 ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) 2339 2340 #define ID3D12VideoProcessCommandList1_SetName(This,Name) \ 2341 ( (This)->lpVtbl -> SetName(This,Name) ) 2342 2343 2344 #define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \ 2345 ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) 2346 2347 2348 #define ID3D12VideoProcessCommandList1_GetType(This) \ 2349 ( (This)->lpVtbl -> GetType(This) ) 2350 2351 2352 #define ID3D12VideoProcessCommandList1_Close(This) \ 2353 ( (This)->lpVtbl -> Close(This) ) 2354 2355 #define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \ 2356 ( (This)->lpVtbl -> Reset(This,pAllocator) ) 2357 2358 #define ID3D12VideoProcessCommandList1_ClearState(This) \ 2359 ( (This)->lpVtbl -> ClearState(This) ) 2360 2361 #define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ 2362 ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) 2363 2364 #define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \ 2365 ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) 2366 2367 #define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ 2368 ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) 2369 2370 #define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ 2371 ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) 2372 2373 #define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ 2374 ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) 2375 2376 #define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ 2377 ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) 2378 2379 #define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \ 2380 ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) 2381 2382 #define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \ 2383 ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) 2384 2385 #define ID3D12VideoProcessCommandList1_EndEvent(This) \ 2386 ( (This)->lpVtbl -> EndEvent(This) ) 2387 2388 #define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ 2389 ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) 2390 2391 #define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ 2392 ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) 2393 2394 2395 #define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ 2396 ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) 2397 2398 #endif /* COBJMACROS */ 2399 2400 2401 #endif /* C style interface */ 2402 2403 2404 2405 2406 #endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */ 2407 2408 2409 /* interface __MIDL_itf_d3d12video_0000_0008 */ 2410 /* [local] */ 2411 2412 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); 2413 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); 2414 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); 2415 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d); 2416 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52); 2417 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c); 2418 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); 2419 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); 2420 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19); 2421 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e); 2422 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0); 2423 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13); 2424 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e); 2425 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7); 2426 DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7); 2427 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ 2428 // BK - pragma endregion 2429 DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F); 2430 DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4); 2431 DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70); 2432 DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38); 2433 DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53); 2434 DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09); 2435 DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72); 2436 DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67); 2437 2438 2439 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec; 2440 extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec; 2441 2442 /* Additional Prototypes for ALL interfaces */ 2443 2444 /* end of Additional Prototypes */ 2445 2446 #ifdef __cplusplus 2447 } 2448 #endif 2449 2450 #endif 2451 2452 2453