Hi, I await review on Wine for it before giving further comments.
Regards, Kai 2015-05-11 15:16 GMT+02:00 Steve Lhomme <rob...@videolabs.io>: > --- > mingw-w64-headers/direct-x/include/d3d11.h | 939 > +++++++++++++++++++++++++++ > mingw-w64-headers/direct-x/include/d3d11.idl | 201 ++++++ > 2 files changed, 1140 insertions(+) > > diff --git a/mingw-w64-headers/direct-x/include/d3d11.h > b/mingw-w64-headers/direct-x/include/d3d11.h > index cc64c3f..9cfbd18 100644 > --- a/mingw-w64-headers/direct-x/include/d3d11.h > +++ b/mingw-w64-headers/direct-x/include/d3d11.h > @@ -172,6 +172,26 @@ typedef interface ID3D11DeviceContext > ID3D11DeviceContext; > typedef interface ID3D11Device ID3D11Device; > #endif > > +#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__ > +#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__ > +typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView; > +#endif > + > +#ifndef __ID3D11VideoDecoder_FWD_DEFINED__ > +#define __ID3D11VideoDecoder_FWD_DEFINED__ > +typedef interface ID3D11VideoDecoder ID3D11VideoDecoder; > +#endif > + > +#ifndef __ID3D11VideoContext_FWD_DEFINED__ > +#define __ID3D11VideoContext_FWD_DEFINED__ > +typedef interface ID3D11VideoContext ID3D11VideoContext; > +#endif > + > +#ifndef __ID3D11VideoDevice_FWD_DEFINED__ > +#define __ID3D11VideoDevice_FWD_DEFINED__ > +typedef interface ID3D11VideoDevice ID3D11VideoDevice; > +#endif > + > /* Headers for imported files */ > > #include <oaidl.h> > @@ -8850,6 +8870,925 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub( > > #endif /* __ID3D11Device_INTERFACE_DEFINED__ */ > > +typedef enum D3D11_VDOV_DIMENSION { > + D3D11_VDOV_DIMENSION_UNKNOWN = 0, > + D3D11_VDOV_DIMENSION_TEXTURE2D = 1 > +} D3D11_VDOV_DIMENSION; > +typedef struct D3D11_TEX2D_VDOV { > + UINT ArraySlice; > +} D3D11_TEX2D_VDOV; > +typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC { > + GUID DecodeProfile; > + D3D11_VDOV_DIMENSION ViewDimension; > + __C89_NAMELESS union { > + D3D11_TEX2D_VDOV Texture2D; > + } __C89_NAMELESSUNIONNAME; > +} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; > +/***************************************************************************** > + * ID3D11VideoDecoderOutputView interface > + */ > +#ifndef __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ > +#define __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ > + > +DEFINE_GUID(IID_ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, > 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18); > +#if defined(__cplusplus) && !defined(CINTERFACE) > +MIDL_INTERFACE("c2931aea-2a85-4f20-860f-fba1fd256e18") > +ID3D11VideoDecoderOutputView : public ID3D11View > +{ > + virtual void STDMETHODCALLTYPE GetDesc( > + D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) = 0; > + > +}; > +#ifdef __CRT_UUID_DECL > +__CRT_UUID_DECL(ID3D11VideoDecoderOutputView, 0xc2931aea, 0x2a85, 0x4f20, > 0x86,0x0f, 0xfb,0xa1,0xfd,0x25,0x6e,0x18) > +#endif > +#else > +typedef struct ID3D11VideoDecoderOutputViewVtbl { > + BEGIN_INTERFACE > + > + /*** IUnknown methods ***/ > + HRESULT (STDMETHODCALLTYPE *QueryInterface)( > + ID3D11VideoDecoderOutputView* This, > + REFIID riid, > + void **ppvObject); > + > + ULONG (STDMETHODCALLTYPE *AddRef)( > + ID3D11VideoDecoderOutputView* This); > + > + ULONG (STDMETHODCALLTYPE *Release)( > + ID3D11VideoDecoderOutputView* This); > + > + /*** ID3D11DeviceChild methods ***/ > + void (STDMETHODCALLTYPE *GetDevice)( > + ID3D11VideoDecoderOutputView* This, > + ID3D11Device **ppDevice); > + > + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( > + ID3D11VideoDecoderOutputView* This, > + REFGUID guid, > + UINT *pDataSize, > + void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( > + ID3D11VideoDecoderOutputView* This, > + REFGUID guid, > + UINT DataSize, > + const void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( > + ID3D11VideoDecoderOutputView* This, > + REFGUID guid, > + const IUnknown *pData); > + > + /*** ID3D11View methods ***/ > + void (STDMETHODCALLTYPE *GetResource)( > + ID3D11VideoDecoderOutputView* This, > + ID3D11Resource **ppResource); > + > + /*** ID3D11VideoDecoderOutputView methods ***/ > + void (STDMETHODCALLTYPE *GetDesc)( > + ID3D11VideoDecoderOutputView* This, > + D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); > + > + END_INTERFACE > +} ID3D11VideoDecoderOutputViewVtbl; > +interface ID3D11VideoDecoderOutputView { > + CONST_VTBL ID3D11VideoDecoderOutputViewVtbl* lpVtbl; > +}; > + > +#ifdef COBJMACROS > +#ifndef WIDL_C_INLINE_WRAPPERS > +/*** IUnknown methods ***/ > +#define ID3D11VideoDecoderOutputView_QueryInterface(This,riid,ppvObject) > (This)->lpVtbl->QueryInterface(This,riid,ppvObject) > +#define ID3D11VideoDecoderOutputView_AddRef(This) > (This)->lpVtbl->AddRef(This) > +#define ID3D11VideoDecoderOutputView_Release(This) > (This)->lpVtbl->Release(This) > +/*** ID3D11DeviceChild methods ***/ > +#define ID3D11VideoDecoderOutputView_GetDevice(This,ppDevice) > (This)->lpVtbl->GetDevice(This,ppDevice) > +#define > ID3D11VideoDecoderOutputView_GetPrivateData(This,guid,pDataSize,pData) > (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) > +#define > ID3D11VideoDecoderOutputView_SetPrivateData(This,guid,DataSize,pData) > (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) > +#define > ID3D11VideoDecoderOutputView_SetPrivateDataInterface(This,guid,pData) > (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) > +/*** ID3D11View methods ***/ > +#define ID3D11VideoDecoderOutputView_GetResource(This,ppResource) > (This)->lpVtbl->GetResource(This,ppResource) > +/*** ID3D11VideoDecoderOutputView methods ***/ > +#define ID3D11VideoDecoderOutputView_GetDesc(This,pDesc) > (This)->lpVtbl->GetDesc(This,pDesc) > +#else > +/*** IUnknown methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoDecoderOutputView_QueryInterface(ID3D11VideoDecoderOutputView* > This,REFIID riid,void **ppvObject) { > + return This->lpVtbl->QueryInterface(This,riid,ppvObject); > +} > +static FORCEINLINE ULONG > ID3D11VideoDecoderOutputView_AddRef(ID3D11VideoDecoderOutputView* This) { > + return This->lpVtbl->AddRef(This); > +} > +static FORCEINLINE ULONG > ID3D11VideoDecoderOutputView_Release(ID3D11VideoDecoderOutputView* This) { > + return This->lpVtbl->Release(This); > +} > +/*** ID3D11DeviceChild methods ***/ > +static FORCEINLINE void > ID3D11VideoDecoderOutputView_GetDevice(ID3D11VideoDecoderOutputView* > This,ID3D11Device **ppDevice) { > + This->lpVtbl->GetDevice(This,ppDevice); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoderOutputView_GetPrivateData(ID3D11VideoDecoderOutputView* > This,REFGUID guid,UINT *pDataSize,void *pData) { > + return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoderOutputView_SetPrivateData(ID3D11VideoDecoderOutputView* > This,REFGUID guid,UINT DataSize,const void *pData) { > + return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoderOutputView_SetPrivateDataInterface(ID3D11VideoDecoderOutputView* > This,REFGUID guid,const IUnknown *pData) { > + return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); > +} > +/*** ID3D11View methods ***/ > +static FORCEINLINE void > ID3D11VideoDecoderOutputView_GetResource(ID3D11VideoDecoderOutputView* > This,ID3D11Resource **ppResource) { > + This->lpVtbl->GetResource(This,ppResource); > +} > +/*** ID3D11VideoDecoderOutputView methods ***/ > +static FORCEINLINE void > ID3D11VideoDecoderOutputView_GetDesc(ID3D11VideoDecoderOutputView* > This,D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc) { > + This->lpVtbl->GetDesc(This,pDesc); > +} > +#endif > +#endif > + > +#endif > + > +void STDMETHODCALLTYPE ID3D11VideoDecoderOutputView_GetDesc_Proxy( > + ID3D11VideoDecoderOutputView* This, > + D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc); > +void __RPC_STUB ID3D11VideoDecoderOutputView_GetDesc_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > + > +#endif /* __ID3D11VideoDecoderOutputView_INTERFACE_DEFINED__ */ > + > +/***************************************************************************** > + * ID3D11VideoDecoder interface > + */ > +#ifndef __ID3D11VideoDecoder_INTERFACE_DEFINED__ > +#define __ID3D11VideoDecoder_INTERFACE_DEFINED__ > + > +DEFINE_GUID(IID_ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, > 0xfa,0x5c,0xae,0xde,0xd6,0x5c); > +#if defined(__cplusplus) && !defined(CINTERFACE) > +MIDL_INTERFACE("3c9c5b51-995d-48d1-9b8d-fa5caeded65c") > +ID3D11VideoDecoder : public ID3D11DeviceChild > +{ > +}; > +#ifdef __CRT_UUID_DECL > +__CRT_UUID_DECL(ID3D11VideoDecoder, 0x3c9c5b51, 0x995d, 0x48d1, 0x9b,0x8d, > 0xfa,0x5c,0xae,0xde,0xd6,0x5c) > +#endif > +#else > +typedef struct ID3D11VideoDecoderVtbl { > + BEGIN_INTERFACE > + > + /*** IUnknown methods ***/ > + HRESULT (STDMETHODCALLTYPE *QueryInterface)( > + ID3D11VideoDecoder* This, > + REFIID riid, > + void **ppvObject); > + > + ULONG (STDMETHODCALLTYPE *AddRef)( > + ID3D11VideoDecoder* This); > + > + ULONG (STDMETHODCALLTYPE *Release)( > + ID3D11VideoDecoder* This); > + > + /*** ID3D11DeviceChild methods ***/ > + void (STDMETHODCALLTYPE *GetDevice)( > + ID3D11VideoDecoder* This, > + ID3D11Device **ppDevice); > + > + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( > + ID3D11VideoDecoder* This, > + REFGUID guid, > + UINT *pDataSize, > + void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( > + ID3D11VideoDecoder* This, > + REFGUID guid, > + UINT DataSize, > + const void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( > + ID3D11VideoDecoder* This, > + REFGUID guid, > + const IUnknown *pData); > + > + END_INTERFACE > +} ID3D11VideoDecoderVtbl; > +interface ID3D11VideoDecoder { > + CONST_VTBL ID3D11VideoDecoderVtbl* lpVtbl; > +}; > + > +#ifdef COBJMACROS > +#ifndef WIDL_C_INLINE_WRAPPERS > +/*** IUnknown methods ***/ > +#define ID3D11VideoDecoder_QueryInterface(This,riid,ppvObject) > (This)->lpVtbl->QueryInterface(This,riid,ppvObject) > +#define ID3D11VideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) > +#define ID3D11VideoDecoder_Release(This) (This)->lpVtbl->Release(This) > +/*** ID3D11DeviceChild methods ***/ > +#define ID3D11VideoDecoder_GetDevice(This,ppDevice) > (This)->lpVtbl->GetDevice(This,ppDevice) > +#define ID3D11VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) > (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) > +#define ID3D11VideoDecoder_SetPrivateData(This,guid,DataSize,pData) > (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) > +#define ID3D11VideoDecoder_SetPrivateDataInterface(This,guid,pData) > (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) > +#else > +/*** IUnknown methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoDecoder_QueryInterface(ID3D11VideoDecoder* This,REFIID riid,void > **ppvObject) { > + return This->lpVtbl->QueryInterface(This,riid,ppvObject); > +} > +static FORCEINLINE ULONG ID3D11VideoDecoder_AddRef(ID3D11VideoDecoder* This) > { > + return This->lpVtbl->AddRef(This); > +} > +static FORCEINLINE ULONG ID3D11VideoDecoder_Release(ID3D11VideoDecoder* > This) { > + return This->lpVtbl->Release(This); > +} > +/*** ID3D11DeviceChild methods ***/ > +static FORCEINLINE void ID3D11VideoDecoder_GetDevice(ID3D11VideoDecoder* > This,ID3D11Device **ppDevice) { > + This->lpVtbl->GetDevice(This,ppDevice); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoder_GetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT > *pDataSize,void *pData) { > + return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoder_SetPrivateData(ID3D11VideoDecoder* This,REFGUID guid,UINT > DataSize,const void *pData) { > + return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDecoder_SetPrivateDataInterface(ID3D11VideoDecoder* This,REFGUID > guid,const IUnknown *pData) { > + return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); > +} > +#endif > +#endif > + > +#endif > + > + > +#endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ > + > +typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { > + D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, > + D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, > + D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, > + D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, > + D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, > + D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, > + D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, > + D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, > + D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 > +} D3D11_VIDEO_DECODER_BUFFER_TYPE; > +typedef struct D3D11_ENCRYPTED_BLOCK_INFO { > + UINT NumEncryptedBytesAtBeginning; > + UINT NumBytesInSkipPattern; > + UINT NumBytesInEncryptPattern; > +} D3D11_ENCRYPTED_BLOCK_INFO; > +typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; > + UINT BufferIndex; > + UINT DataOffset; > + UINT DataSize; > + UINT FirstMBaddress; > + UINT NumMBsInBuffer; > + UINT Width; > + UINT Height; > + UINT Stride; > + UINT ReservedBits; > + void *pIV; > + UINT IVSize; > + WINBOOL PartialEncryption; > + D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; > +} D3D11_VIDEO_DECODER_BUFFER_DESC; > +/***************************************************************************** > + * ID3D11VideoContext interface > + */ > +#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ > +#define __ID3D11VideoContext_INTERFACE_DEFINED__ > + > +DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, > 0x67,0x10,0x0d,0x9a,0xd5,0xe4); > +#if defined(__cplusplus) && !defined(CINTERFACE) > +MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") > +ID3D11VideoContext : public ID3D11DeviceChild > +{ > + virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, > + UINT *pBufferSize, > + void **ppBuffer) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( > + ID3D11VideoDecoder *pDecoder, > + ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, > + UINT ContentKeySize, > + const void *pContentKey) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( > + ID3D11VideoDecoder *pDecoder) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( > + ID3D11VideoDecoder *pDecoder, > + UINT NumBuffers, > + const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; > + > +}; > +#ifdef __CRT_UUID_DECL > +__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, > 0x67,0x10,0x0d,0x9a,0xd5,0xe4) > +#endif > +#else > +typedef struct ID3D11VideoContextVtbl { > + BEGIN_INTERFACE > + > + /*** IUnknown methods ***/ > + HRESULT (STDMETHODCALLTYPE *QueryInterface)( > + ID3D11VideoContext* This, > + REFIID riid, > + void **ppvObject); > + > + ULONG (STDMETHODCALLTYPE *AddRef)( > + ID3D11VideoContext* This); > + > + ULONG (STDMETHODCALLTYPE *Release)( > + ID3D11VideoContext* This); > + > + /*** ID3D11DeviceChild methods ***/ > + void (STDMETHODCALLTYPE *GetDevice)( > + ID3D11VideoContext* This, > + ID3D11Device **ppDevice); > + > + HRESULT (STDMETHODCALLTYPE *GetPrivateData)( > + ID3D11VideoContext* This, > + REFGUID guid, > + UINT *pDataSize, > + void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateData)( > + ID3D11VideoContext* This, > + REFGUID guid, > + UINT DataSize, > + const void *pData); > + > + HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( > + ID3D11VideoContext* This, > + REFGUID guid, > + const IUnknown *pData); > + > + /*** ID3D11VideoContext methods ***/ > + HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, > + UINT *pBufferSize, > + void **ppBuffer); > + > + HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); > + > + HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, > + UINT ContentKeySize, > + const void *pContentKey); > + > + HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder); > + > + HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + UINT NumBuffers, > + const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); > + > + END_INTERFACE > +} ID3D11VideoContextVtbl; > +interface ID3D11VideoContext { > + CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; > +}; > + > +#ifdef COBJMACROS > +#ifndef WIDL_C_INLINE_WRAPPERS > +/*** IUnknown methods ***/ > +#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) > (This)->lpVtbl->QueryInterface(This,riid,ppvObject) > +#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) > +#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) > +/*** ID3D11DeviceChild methods ***/ > +#define ID3D11VideoContext_GetDevice(This,ppDevice) > (This)->lpVtbl->GetDevice(This,ppDevice) > +#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) > (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) > +#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) > (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) > +#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) > (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) > +/*** ID3D11VideoContext methods ***/ > +#define > ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) > > (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) > +#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) > (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) > +#define > ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) > > (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) > +#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) > (This)->lpVtbl->DecoderEndFrame(This,pDecoder) > +#define > ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) > (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) > +#else > +/*** IUnknown methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void > **ppvObject) { > + return This->lpVtbl->QueryInterface(This,riid,ppvObject); > +} > +static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) > { > + return This->lpVtbl->AddRef(This); > +} > +static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* > This) { > + return This->lpVtbl->Release(This); > +} > +/*** ID3D11DeviceChild methods ***/ > +static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* > This,ID3D11Device **ppDevice) { > + This->lpVtbl->GetDevice(This,ppDevice); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT > *pDataSize,void *pData) { > + return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT > DataSize,const void *pData) { > + return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID > guid,const IUnknown *pData) { > + return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); > +} > +/*** ID3D11VideoContext methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* > This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE > BufferType,UINT *pBufferSize,void **ppBuffer) { > + return > This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* > This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) > { > + return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* > This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView > *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { > + return > This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* > This,ID3D11VideoDecoder *pDecoder) { > + return This->lpVtbl->DecoderEndFrame(This,pDecoder); > +} > +static FORCEINLINE HRESULT > ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* > This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const > D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { > + return > This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); > +} > +#endif > +#endif > + > +#endif > + > +HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, > + UINT *pBufferSize, > + void **ppBuffer); > +void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); > +void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, > + UINT ContentKeySize, > + const void *pContentKey); > +void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder); > +void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( > + ID3D11VideoContext* This, > + ID3D11VideoDecoder *pDecoder, > + UINT NumBuffers, > + const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); > +void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > + > +#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ > + > +typedef struct D3D11_VIDEO_DECODER_DESC { > + GUID Guid; > + UINT SampleWidth; > + UINT SampleHeight; > + DXGI_FORMAT OutputFormat; > +} D3D11_VIDEO_DECODER_DESC; > +typedef struct D3D11_VIDEO_DECODER_CONFIG { > + GUID guidConfigBitstreamEncryption; > + GUID guidConfigMBcontrolEncryption; > + GUID guidConfigResidDiffEncryption; > + UINT ConfigBitstreamRaw; > + UINT ConfigMBcontrolRasterOrder; > + UINT ConfigResidDiffHost; > + UINT ConfigSpatialResid8; > + UINT ConfigResid8Subtraction; > + UINT ConfigSpatialHost8or9Clipping; > + UINT ConfigSpatialResidInterleaved; > + UINT ConfigIntraResidUnsigned; > + UINT ConfigResidDiffAccelerator; > + UINT ConfigHostInverseScan; > + UINT ConfigSpecificIDCT; > + UINT Config4GroupedCoefs; > + USHORT ConfigMinRenderTargetBuffCount; > + USHORT ConfigDecoderSpecific; > +} D3D11_VIDEO_DECODER_CONFIG; > +typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE { > + D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, > + D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2, > + D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3 > +} D3D11_AUTHENTICATED_CHANNEL_TYPE; > +/***************************************************************************** > + * ID3D11VideoDevice interface > + */ > +#ifndef __ID3D11VideoDevice_INTERFACE_DEFINED__ > +#define __ID3D11VideoDevice_INTERFACE_DEFINED__ > + > +DEFINE_GUID(IID_ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, > 0xd0,0xaa,0xc3,0x0f,0xe3,0x33); > +#if defined(__cplusplus) && !defined(CINTERFACE) > +MIDL_INTERFACE("10ec4d5b-975a-4689-b9e4-d0aac30fe333") > +ID3D11VideoDevice : public IUnknown > +{ > + virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( > + const D3D11_VIDEO_DECODER_DESC *pVideoDesc, > + const D3D11_VIDEO_DECODER_CONFIG *pConfig, > + ID3D11VideoDecoder **ppVideoDecoder) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( > + void *pEnumerator, > + UINT RateConversionIndex, > + void **ppVideoProcessor) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateAuthenticatedChannel( > + D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, > + void **ppAuthenticatedChannel) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateCryptoSession( > + const GUID *pCryptoType, > + const GUID *pDecoderProfile, > + const GUID *pKeyExchangeType, > + void **ppCryptoSession) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderOutputView( > + ID3D11Resource *pResource, > + const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, > + ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorInputView( > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pProcDesc, > + void **ppVPIView) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorOutputView( > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pDesc, > + void **ppVPOView) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessorEnumerator( > + const void *pDesc, > + void **ppEnum) = 0; > + > + virtual UINT STDMETHODCALLTYPE GetVideoDecoderProfileCount( > + ) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderProfile( > + UINT Index, > + GUID *pDecoderProfile) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE CheckVideoDecoderFormat( > + const GUID *pDecoderProfile, > + DXGI_FORMAT Format, > + WINBOOL *pSupported) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfigCount( > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT *pCount) = 0; > + > + virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderConfig( > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT Index, > + D3D11_VIDEO_DECODER_CONFIG *pConfig) = 0; > + > +}; > +#ifdef __CRT_UUID_DECL > +__CRT_UUID_DECL(ID3D11VideoDevice, 0x10ec4d5b, 0x975a, 0x4689, 0xb9,0xe4, > 0xd0,0xaa,0xc3,0x0f,0xe3,0x33) > +#endif > +#else > +typedef struct ID3D11VideoDeviceVtbl { > + BEGIN_INTERFACE > + > + /*** IUnknown methods ***/ > + HRESULT (STDMETHODCALLTYPE *QueryInterface)( > + ID3D11VideoDevice* This, > + REFIID riid, > + void **ppvObject); > + > + ULONG (STDMETHODCALLTYPE *AddRef)( > + ID3D11VideoDevice* This); > + > + ULONG (STDMETHODCALLTYPE *Release)( > + ID3D11VideoDevice* This); > + > + /*** ID3D11VideoDevice methods ***/ > + HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pVideoDesc, > + const D3D11_VIDEO_DECODER_CONFIG *pConfig, > + ID3D11VideoDecoder **ppVideoDecoder); > + > + HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( > + ID3D11VideoDevice* This, > + void *pEnumerator, > + UINT RateConversionIndex, > + void **ppVideoProcessor); > + > + HRESULT (STDMETHODCALLTYPE *CreateAuthenticatedChannel)( > + ID3D11VideoDevice* This, > + D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, > + void **ppAuthenticatedChannel); > + > + HRESULT (STDMETHODCALLTYPE *CreateCryptoSession)( > + ID3D11VideoDevice* This, > + const GUID *pCryptoType, > + const GUID *pDecoderProfile, > + const GUID *pKeyExchangeType, > + void **ppCryptoSession); > + > + HRESULT (STDMETHODCALLTYPE *CreateVideoDecoderOutputView)( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, > + ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); > + > + HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorInputView)( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pProcDesc, > + void **ppVPIView); > + > + HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorOutputView)( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pDesc, > + void **ppVPOView); > + > + HRESULT (STDMETHODCALLTYPE *CreateVideoProcessorEnumerator)( > + ID3D11VideoDevice* This, > + const void *pDesc, > + void **ppEnum); > + > + UINT (STDMETHODCALLTYPE *GetVideoDecoderProfileCount)( > + ID3D11VideoDevice* This); > + > + HRESULT (STDMETHODCALLTYPE *GetVideoDecoderProfile)( > + ID3D11VideoDevice* This, > + UINT Index, > + GUID *pDecoderProfile); > + > + HRESULT (STDMETHODCALLTYPE *CheckVideoDecoderFormat)( > + ID3D11VideoDevice* This, > + const GUID *pDecoderProfile, > + DXGI_FORMAT Format, > + WINBOOL *pSupported); > + > + HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfigCount)( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT *pCount); > + > + HRESULT (STDMETHODCALLTYPE *GetVideoDecoderConfig)( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT Index, > + D3D11_VIDEO_DECODER_CONFIG *pConfig); > + > + END_INTERFACE > +} ID3D11VideoDeviceVtbl; > +interface ID3D11VideoDevice { > + CONST_VTBL ID3D11VideoDeviceVtbl* lpVtbl; > +}; > + > +#ifdef COBJMACROS > +#ifndef WIDL_C_INLINE_WRAPPERS > +/*** IUnknown methods ***/ > +#define ID3D11VideoDevice_QueryInterface(This,riid,ppvObject) > (This)->lpVtbl->QueryInterface(This,riid,ppvObject) > +#define ID3D11VideoDevice_AddRef(This) (This)->lpVtbl->AddRef(This) > +#define ID3D11VideoDevice_Release(This) (This)->lpVtbl->Release(This) > +/*** ID3D11VideoDevice methods ***/ > +#define > ID3D11VideoDevice_CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) > (This)->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder) > +#define > ID3D11VideoDevice_CreateVideoProcessor(This,pEnumerator,RateConversionIndex,ppVideoProcessor) > > (This)->lpVtbl->CreateVideoProcessor(This,pEnumerator,RateConversionIndex,ppVideoProcessor) > +#define > ID3D11VideoDevice_CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) > > (This)->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel) > +#define > ID3D11VideoDevice_CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) > > (This)->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession) > +#define > ID3D11VideoDevice_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) > > (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView) > +#define > ID3D11VideoDevice_CreateVideoProcessorInputView(This,pResource,pEnum,pProcDesc,ppVPIView) > > (This)->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pProcDesc,ppVPIView) > +#define > ID3D11VideoDevice_CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) > > (This)->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView) > +#define ID3D11VideoDevice_CreateVideoProcessorEnumerator(This,pDesc,ppEnum) > (This)->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum) > +#define ID3D11VideoDevice_GetVideoDecoderProfileCount(This) > (This)->lpVtbl->GetVideoDecoderProfileCount(This) > +#define ID3D11VideoDevice_GetVideoDecoderProfile(This,Index,pDecoderProfile) > (This)->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile) > +#define > ID3D11VideoDevice_CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) > > (This)->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported) > +#define ID3D11VideoDevice_GetVideoDecoderConfigCount(This,pDesc,pCount) > (This)->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount) > +#define ID3D11VideoDevice_GetVideoDecoderConfig(This,pDesc,Index,pConfig) > (This)->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig) > +#else > +/*** IUnknown methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoDevice_QueryInterface(ID3D11VideoDevice* This,REFIID riid,void > **ppvObject) { > + return This->lpVtbl->QueryInterface(This,riid,ppvObject); > +} > +static FORCEINLINE ULONG ID3D11VideoDevice_AddRef(ID3D11VideoDevice* This) { > + return This->lpVtbl->AddRef(This); > +} > +static FORCEINLINE ULONG ID3D11VideoDevice_Release(ID3D11VideoDevice* This) { > + return This->lpVtbl->Release(This); > +} > +/*** ID3D11VideoDevice methods ***/ > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoDecoder(ID3D11VideoDevice* This,const > D3D11_VIDEO_DECODER_DESC *pVideoDesc,const D3D11_VIDEO_DECODER_CONFIG > *pConfig,ID3D11VideoDecoder **ppVideoDecoder) { > + return > This->lpVtbl->CreateVideoDecoder(This,pVideoDesc,pConfig,ppVideoDecoder); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoProcessor(ID3D11VideoDevice* This,void > *pEnumerator,UINT RateConversionIndex,void **ppVideoProcessor) { > + return > This->lpVtbl->CreateVideoProcessor(This,pEnumerator,RateConversionIndex,ppVideoProcessor); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateAuthenticatedChannel(ID3D11VideoDevice* > This,D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,void > **ppAuthenticatedChannel) { > + return > This->lpVtbl->CreateAuthenticatedChannel(This,ChannelType,ppAuthenticatedChannel); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateCryptoSession(ID3D11VideoDevice* This,const GUID > *pCryptoType,const GUID *pDecoderProfile,const GUID *pKeyExchangeType,void > **ppCryptoSession) { > + return > This->lpVtbl->CreateCryptoSession(This,pCryptoType,pDecoderProfile,pKeyExchangeType,ppCryptoSession); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoDecoderOutputView(ID3D11VideoDevice* > This,ID3D11Resource *pResource,const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC > *pDesc,ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) { > + return > This->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoProcessorInputView(ID3D11VideoDevice* > This,ID3D11Resource *pResource,void *pEnum,const void *pProcDesc,void > **ppVPIView) { > + return > This->lpVtbl->CreateVideoProcessorInputView(This,pResource,pEnum,pProcDesc,ppVPIView); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoProcessorOutputView(ID3D11VideoDevice* > This,ID3D11Resource *pResource,void *pEnum,const void *pDesc,void > **ppVPOView) { > + return > This->lpVtbl->CreateVideoProcessorOutputView(This,pResource,pEnum,pDesc,ppVPOView); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CreateVideoProcessorEnumerator(ID3D11VideoDevice* > This,const void *pDesc,void **ppEnum) { > + return This->lpVtbl->CreateVideoProcessorEnumerator(This,pDesc,ppEnum); > +} > +static FORCEINLINE UINT > ID3D11VideoDevice_GetVideoDecoderProfileCount(ID3D11VideoDevice* This) { > + return This->lpVtbl->GetVideoDecoderProfileCount(This); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_GetVideoDecoderProfile(ID3D11VideoDevice* This,UINT > Index,GUID *pDecoderProfile) { > + return This->lpVtbl->GetVideoDecoderProfile(This,Index,pDecoderProfile); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_CheckVideoDecoderFormat(ID3D11VideoDevice* This,const GUID > *pDecoderProfile,DXGI_FORMAT Format,WINBOOL *pSupported) { > + return > This->lpVtbl->CheckVideoDecoderFormat(This,pDecoderProfile,Format,pSupported); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_GetVideoDecoderConfigCount(ID3D11VideoDevice* This,const > D3D11_VIDEO_DECODER_DESC *pDesc,UINT *pCount) { > + return This->lpVtbl->GetVideoDecoderConfigCount(This,pDesc,pCount); > +} > +static FORCEINLINE HRESULT > ID3D11VideoDevice_GetVideoDecoderConfig(ID3D11VideoDevice* This,const > D3D11_VIDEO_DECODER_DESC *pDesc,UINT Index,D3D11_VIDEO_DECODER_CONFIG > *pConfig) { > + return This->lpVtbl->GetVideoDecoderConfig(This,pDesc,Index,pConfig); > +} > +#endif > +#endif > + > +#endif > + > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoDecoder_Proxy( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pVideoDesc, > + const D3D11_VIDEO_DECODER_CONFIG *pConfig, > + ID3D11VideoDecoder **ppVideoDecoder); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoder_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateVideoProcessor_Proxy( > + ID3D11VideoDevice* This, > + void *pEnumerator, > + UINT RateConversionIndex, > + void **ppVideoProcessor); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessor_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateAuthenticatedChannel_Proxy( > + ID3D11VideoDevice* This, > + D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, > + void **ppAuthenticatedChannel); > +void __RPC_STUB ID3D11VideoDevice_CreateAuthenticatedChannel_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CreateCryptoSession_Proxy( > + ID3D11VideoDevice* This, > + const GUID *pCryptoType, > + const GUID *pDecoderProfile, > + const GUID *pKeyExchangeType, > + void **ppCryptoSession); > +void __RPC_STUB ID3D11VideoDevice_CreateCryptoSession_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE > ID3D11VideoDevice_CreateVideoDecoderOutputView_Proxy( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, > + ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoDecoderOutputView_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE > ID3D11VideoDevice_CreateVideoProcessorInputView_Proxy( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pProcDesc, > + void **ppVPIView); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorInputView_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE > ID3D11VideoDevice_CreateVideoProcessorOutputView_Proxy( > + ID3D11VideoDevice* This, > + ID3D11Resource *pResource, > + void *pEnum, > + const void *pDesc, > + void **ppVPOView); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorOutputView_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE > ID3D11VideoDevice_CreateVideoProcessorEnumerator_Proxy( > + ID3D11VideoDevice* This, > + const void *pDesc, > + void **ppEnum); > +void __RPC_STUB ID3D11VideoDevice_CreateVideoProcessorEnumerator_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +UINT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfileCount_Proxy( > + ID3D11VideoDevice* This); > +void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfileCount_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderProfile_Proxy( > + ID3D11VideoDevice* This, > + UINT Index, > + GUID *pDecoderProfile); > +void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderProfile_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_CheckVideoDecoderFormat_Proxy( > + ID3D11VideoDevice* This, > + const GUID *pDecoderProfile, > + DXGI_FORMAT Format, > + WINBOOL *pSupported); > +void __RPC_STUB ID3D11VideoDevice_CheckVideoDecoderFormat_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfigCount_Proxy( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT *pCount); > +void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfigCount_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > +HRESULT STDMETHODCALLTYPE ID3D11VideoDevice_GetVideoDecoderConfig_Proxy( > + ID3D11VideoDevice* This, > + const D3D11_VIDEO_DECODER_DESC *pDesc, > + UINT Index, > + D3D11_VIDEO_DECODER_CONFIG *pConfig); > +void __RPC_STUB ID3D11VideoDevice_GetVideoDecoderConfig_Stub( > + IRpcStubBuffer* This, > + IRpcChannelBuffer* pRpcChannelBuffer, > + PRPC_MESSAGE pRpcMessage, > + DWORD* pdwStubPhase); > + > +#endif /* __ID3D11VideoDevice_INTERFACE_DEFINED__ */ > + > typedef enum D3D11_CREATE_DEVICE_FLAG { > D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, > D3D11_CREATE_DEVICE_DEBUG = 0x2, > diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl > b/mingw-w64-headers/direct-x/include/d3d11.idl > index c187463..32c5372 100644 > --- a/mingw-w64-headers/direct-x/include/d3d11.idl > +++ b/mingw-w64-headers/direct-x/include/d3d11.idl > @@ -2125,6 +2125,207 @@ interface ID3D11Device : IUnknown > UINT GetExceptionMode(); > } > > +typedef enum D3D11_VDOV_DIMENSION > +{ > + D3D11_VDOV_DIMENSION_UNKNOWN = 0, > + D3D11_VDOV_DIMENSION_TEXTURE2D > +} D3D11_VDOV_DIMENSION; > + > +typedef struct D3D11_TEX2D_VDOV > +{ > + UINT ArraySlice; > +} D3D11_TEX2D_VDOV; > + > +typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC > +{ > + GUID DecodeProfile; > + D3D11_VDOV_DIMENSION ViewDimension; > + > + union > + { > + D3D11_TEX2D_VDOV Texture2D; > + }; > +} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC; > + > +[ > + object, > + local, > + uuid(c2931aea-2a85-4f20-860f-fba1fd256e18) > +] > +interface ID3D11VideoDecoderOutputView : ID3D11View > +{ > + void GetDesc( > + [out] D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc ); > +} > + > +[ > + object, > + local, > + uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c) > +] > +interface ID3D11VideoDecoder : ID3D11DeviceChild > +{ > +} > + > +typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE > +{ > + D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, > + D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, > + D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, > + D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, > + D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, > + D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, > + D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, > + D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, > + D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN > +} D3D11_VIDEO_DECODER_BUFFER_TYPE; > + > +typedef struct D3D11_ENCRYPTED_BLOCK_INFO > +{ > + UINT NumEncryptedBytesAtBeginning; > + UINT NumBytesInSkipPattern; > + UINT NumBytesInEncryptPattern; > +} D3D11_ENCRYPTED_BLOCK_INFO; > + > +typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC > +{ > + D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; > + UINT BufferIndex; > + UINT DataOffset; > + UINT DataSize; > + UINT FirstMBaddress; > + UINT NumMBsInBuffer; > + UINT Width; > + UINT Height; > + UINT Stride; > + UINT ReservedBits; > + void *pIV; > + UINT IVSize; > + BOOL PartialEncryption; > + D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; > +} D3D11_VIDEO_DECODER_BUFFER_DESC; > + > +[ > + object, > + local, > + uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) > +] > +interface ID3D11VideoContext : ID3D11DeviceChild > +{ > + HRESULT GetDecoderBuffer( > + [in] ID3D11VideoDecoder *pDecoder, > + [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, > + [out] UINT *pBufferSize, > + [out] void **ppBuffer); > + HRESULT ReleaseDecoderBuffer( > + [in] ID3D11VideoDecoder *pDecoder, > + [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); > + HRESULT DecoderBeginFrame( > + [in] ID3D11VideoDecoder *pDecoder, > + [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, > + [in] UINT ContentKeySize, > + [in] const void *pContentKey); > + HRESULT DecoderEndFrame( > + [in] ID3D11VideoDecoder *pDecoder); > + HRESULT SubmitDecoderBuffers( > + [in] ID3D11VideoDecoder *pDecoder, > + [in] UINT NumBuffers, > + [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); > +} > + > +typedef struct D3D11_VIDEO_DECODER_DESC > +{ > + GUID Guid; > + UINT SampleWidth; > + UINT SampleHeight; > + DXGI_FORMAT OutputFormat; > +} D3D11_VIDEO_DECODER_DESC; > + > +typedef struct D3D11_VIDEO_DECODER_CONFIG > +{ > + GUID guidConfigBitstreamEncryption; > + GUID guidConfigMBcontrolEncryption; > + GUID guidConfigResidDiffEncryption; > + UINT ConfigBitstreamRaw; > + UINT ConfigMBcontrolRasterOrder; > + UINT ConfigResidDiffHost; > + UINT ConfigSpatialResid8; > + UINT ConfigResid8Subtraction; > + UINT ConfigSpatialHost8or9Clipping; > + UINT ConfigSpatialResidInterleaved; > + UINT ConfigIntraResidUnsigned; > + UINT ConfigResidDiffAccelerator; > + UINT ConfigHostInverseScan; > + UINT ConfigSpecificIDCT; > + UINT Config4GroupedCoefs; > + USHORT ConfigMinRenderTargetBuffCount; > + USHORT ConfigDecoderSpecific; > +} D3D11_VIDEO_DECODER_CONFIG; > + > +typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE > +{ > + D3D11_AUTHENTICATED_CHANNEL_D3D11 = 1, > + D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE, > + D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE > +} D3D11_AUTHENTICATED_CHANNEL_TYPE; > + > +[ > + object, > + local, > + uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333) > +] > +interface ID3D11VideoDevice : IUnknown > +{ > + HRESULT CreateVideoDecoder( > + [in] const D3D11_VIDEO_DECODER_DESC *pVideoDesc, > + [in] const D3D11_VIDEO_DECODER_CONFIG *pConfig, > + [out] ID3D11VideoDecoder **ppVideoDecoder); > + HRESULT CreateVideoProcessor( > + [in] void *pEnumerator, /* ID3D11VideoProcessorEnumerator */ > + [in] UINT RateConversionIndex, > + [out] void **ppVideoProcessor); /* ID3D11VideoProcessor */ > + HRESULT CreateAuthenticatedChannel( > + [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType, > + [out] void **ppAuthenticatedChannel); /* ID3D11AuthenticatedChannel > */ > + HRESULT CreateCryptoSession( > + [in] const GUID *pCryptoType, > + [in] const GUID *pDecoderProfile, > + [in] const GUID *pKeyExchangeType, > + [out] void **ppCryptoSession); /* ID3D11CryptoSession */ > + HRESULT CreateVideoDecoderOutputView( > + [in] ID3D11Resource *pResource, > + [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc, > + [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView); > + HRESULT CreateVideoProcessorInputView( > + [in] ID3D11Resource *pResource, > + [in] void *pEnum, /* ID3D11VideoProcessorEnumerator */ > + [in] const void *pProcDesc, /* D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC > */ > + [out] void **ppVPIView); /* ID3D11VideoProcessorInputView */ > + HRESULT CreateVideoProcessorOutputView( > + [in] ID3D11Resource *pResource, > + [in] void *pEnum, /* ID3D11VideoProcessorEnumerator */ > + [in] const void *pDesc, /* > D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC */ > + [out] void **ppVPOView); /* ID3D11VideoProcessorOutputView */ > + HRESULT CreateVideoProcessorEnumerator( > + [in] const void *pDesc, /* D3D11_VIDEO_PROCESSOR_CONTENT_DESC */ > + [out] void **ppEnum); /* ID3D11VideoProcessorEnumerator */ > + UINT GetVideoDecoderProfileCount(void); > + HRESULT GetVideoDecoderProfile( > + [in] UINT Index, > + [out] GUID *pDecoderProfile); > + HRESULT CheckVideoDecoderFormat( > + [in] const GUID *pDecoderProfile, > + [in] DXGI_FORMAT Format, > + [out] BOOL *pSupported); > + HRESULT GetVideoDecoderConfigCount( > + [in] const D3D11_VIDEO_DECODER_DESC *pDesc, > + [out] UINT *pCount); > + HRESULT GetVideoDecoderConfig( > + [in] const D3D11_VIDEO_DECODER_DESC *pDesc, > + [in] UINT Index, > + [out] D3D11_VIDEO_DECODER_CONFIG *pConfig); > +} > + > typedef enum D3D11_CREATE_DEVICE_FLAG { > D3D11_CREATE_DEVICE_SINGLETHREADED = 0x0001, > D3D11_CREATE_DEVICE_DEBUG = 0x0002, > -- > 2.4.0 > > > ------------------------------------------------------------------------------ > One dashboard for servers and applications across Physical-Virtual-Cloud > Widest out-of-the-box monitoring support with 50+ applications > Performance metrics, stats and reports that give you Actionable Insights > Deep dive visibility with transaction tracing using APM Insight. > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y > _______________________________________________ > Mingw-w64-public mailing list > Mingw-w64-public@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public