---
 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

Reply via email to