Discard this patch, I forgot some methods between the ones necessary
and it doesn't work properly.

On Mon, May 11, 2015 at 1:43 PM, Steve Lhomme <[email protected]> wrote:
> ---
> These COM classes are needed by VLC
> ---
>  mingw-w64-headers/direct-x/include/d3d11.h   | 811 
> +++++++++++++++++++++++++++
>  mingw-w64-headers/direct-x/include/d3d11.idl | 199 +++++++
>  2 files changed, 1010 insertions(+)
>
> diff --git a/mingw-w64-headers/direct-x/include/d3d11.h 
> b/mingw-w64-headers/direct-x/include/d3d11.h
> index cc64c3f..c81905a 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 __ID3D11VideoDecoder_FWD_DEFINED__
> +#define __ID3D11VideoDecoder_FWD_DEFINED__
> +typedef interface ID3D11VideoDecoder ID3D11VideoDecoder;
> +#endif
> +
> +#ifndef __ID3D11VideoDecoderOutputView_FWD_DEFINED__
> +#define __ID3D11VideoDecoderOutputView_FWD_DEFINED__
> +typedef interface ID3D11VideoDecoderOutputView ID3D11VideoDecoderOutputView;
> +#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,797 @@ void __RPC_STUB ID3D11Device_GetExceptionMode_Stub(
>
>  #endif  /* __ID3D11Device_INTERFACE_DEFINED__ */
>
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT, 0x1b81be64, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,   0x1b81be65, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,   0x1b81be66, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT,     0x1b81be67, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT,    0x1b81be68, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT,      0x1b81be69, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,  0xd5f04ff9, 
> 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT, 
> 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,             
> 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,          
> 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC,     0x1b81be80, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP,       0x1b81be81, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC,     0x1b81be90, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP,       0x1b81be91, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT,         0x1b81be94, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC,      0x1b81beA0, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP,        0x1b81beA1, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT,          0x1b81beA2, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD,           0x1b81beA3, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010,         0x1b81beA4, 0xa0c7, 
> 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,           0xefd64d74, 
> 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,  0xed418a9f, 
> 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,    0xab998b5b, 
> 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,     0x5b11d51b, 0x2f4c, 
> 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,   0x107af0e0, 0xef1a, 
> 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_MOCOMP,      0xe6a9f44b, 0x61b0, 
> 0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_IDCT,        0xbf22ad00, 0x03ea, 
> 0x4690, 0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_VLD,         0xee27417f, 0x5e28, 
> 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG1_VLD,         0x6f3ec719, 0x3735, 
> 0x42cc, 0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16);
> +DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2and1_VLD,     0x86695f12, 0x340e, 
> 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);
> +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_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;
> +/*****************************************************************************
> + * 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_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__ */
> +
> +/*****************************************************************************
> + * 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__ */
> +
> +/*****************************************************************************
> + * 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 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 CreateVideoDecoderOutputView(
> +        ID3D11Resource *pResource,
> +        const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
> +        ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView) = 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);
> +
> +    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 *CreateVideoDecoderOutputView)(
> +        ID3D11VideoDevice* This,
> +        ID3D11Resource *pResource,
> +        const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
> +        ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView);
> +
> +    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_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_CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView)
>  
> (This)->lpVtbl->CreateVideoDecoderOutputView(This,pResource,pDesc,ppVideoDecoderOutputView)
> +#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 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_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_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);
> +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_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_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..dc10970 100644
> --- a/mingw-w64-headers/direct-x/include/d3d11.idl
> +++ b/mingw-w64-headers/direct-x/include/d3d11.idl
> @@ -2125,6 +2125,205 @@ interface ID3D11Device : IUnknown
>      UINT GetExceptionMode();
>  }
>
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT, 0x1b81be64, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_MOCOMP_FGT,   0x1b81be65, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_NOFGT,   0x1b81be66, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_IDCT_FGT,     0x1b81be67, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_NOFGT,    0x1b81be68, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_FGT,      0x1b81be69, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_WITHFMOASO_NOFGT,  
> 0xd5f04ff9, 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_PROGRESSIVE_NOFGT,
>  0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 
> 0x3d);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_STEREO_NOFGT,          
>    0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 
> 0x52);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_H264_VLD_MULTIVIEW_NOFGT,       
>    0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 
> 0x3c);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_POSTPROC,     0x1b81be80, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_WMV8_MOCOMP,       0x1b81be81, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_POSTPROC,     0x1b81be90, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_MOCOMP,       0x1b81be91, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_WMV9_IDCT,         0x1b81be94, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_POSTPROC,      0x1b81beA0, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_MOCOMP,        0x1b81beA1, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_IDCT,          0x1b81beA2, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_VLD,           0x1b81beA3, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_VC1_D2010,         0x1b81beA4, 
> 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_SIMPLE,           
> 0xefd64d74, 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_NOGMC,  
> 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG4PT2_VLD_ADVSIMPLE_GMC,    
> 0xab998b5b, 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN,     0x5b11d51b, 
> 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_HEVC_VLD_MAIN10,   0x107af0e0, 
> 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_MOCOMP,      0xe6a9f44b, 
> 0x61b0, 0x4563, 0x9e, 0xa4, 0x63, 0xd2, 0xa3, 0xc6, 0xfe, 0x66);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_IDCT,        0xbf22ad00, 
> 0x03ea, 0x4690, 0x80, 0x77, 0x47, 0x33, 0x46, 0x20, 0x9b, 0x7e);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2_VLD,         0xee27417f, 
> 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG1_VLD,         0x6f3ec719, 
> 0x3735, 0x42cc, 0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16);")
> +cpp_quote("DEFINE_GUID(D3D11_DECODER_PROFILE_MPEG2and1_VLD,     0x86695f12, 
> 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60);")
> +
> +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_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(3c9c5b51-995d-48d1-9b8d-fa5caeded65c)
> +]
> +interface ID3D11VideoDecoder : ID3D11DeviceChild
> +{
> +}
> +
> +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(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);
> +}
> +
> +[
> +    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);
> +    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 CreateVideoDecoderOutputView(
> +        [in] ID3D11Resource *pResource,
> +        [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
> +        [out] ID3D11VideoDecoderOutputView **ppVideoDecoderOutputView);
> +    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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to