[PATCH] d3d11.idl: add the interfaces necessary to use the D3D11 video decoder

Stefan Dösinger stefandoesinger at gmail.com
Mon May 11 04:10:04 CDT 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This patch still shows plenty of signs that it was copypasted from Microsoft's headers.

Am 2015-05-11 um 11:00 schrieb Steve Lhomme:
> From: Steve Lhomme <slhomme at matroska.org>
> 
> ---
>  include/d3d11.idl | 878 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 870 insertions(+), 8 deletions(-)
> 
> diff --git a/include/d3d11.idl b/include/d3d11.idl
> index 3726d32..70afbd5 100644
> --- a/include/d3d11.idl
> +++ b/include/d3d11.idl
> @@ -2125,16 +2125,878 @@ 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          = 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;
> +    BOOL PartialEncryption;
> +    D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
> +} D3D11_VIDEO_DECODER_BUFFER_DESC;
> +
> +typedef struct D3D11_VIDEO_DECODER_EXTENSION
> +{
> +    UINT Function;
> +    void *pPrivateInputData;
> +    UINT PrivateInputDataSize;
> +    void *pPrivateOutputData;
> +    UINT PrivateOutputDataSize;
> +    UINT ResourceCount;
> +    ID3D11Resource **ppResourceList;
> +} D3D11_VIDEO_DECODER_EXTENSION;
> +
> +typedef enum D3D11_VIDEO_FRAME_FORMAT
> +{
> +    D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE                   = 0,
> +    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST    = 1,
> +    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
> +} D3D11_VIDEO_FRAME_FORMAT;
> +
> +typedef enum D3D11_VIDEO_USAGE
> +{
> +    D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
> +    D3D11_VIDEO_USAGE_OPTIMAL_SPEED   = 1,
> +    D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2
> +} D3D11_VIDEO_USAGE;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC
> +{
> +    D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
> +    DXGI_RATIONAL InputFrameRate;
> +    UINT InputWidth;
> +    UINT InputHeight;
> +    DXGI_RATIONAL OutputFrameRate;
> +    UINT OutputWidth;
> +    UINT OutputHeight;
> +    D3D11_VIDEO_USAGE Usage;
> +} D3D11_VIDEO_PROCESSOR_CONTENT_DESC;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_CAPS
> +{
> +    UINT DeviceCaps;
> +    UINT FeatureCaps;
> +    UINT FilterCaps;
> +    UINT InputFormatCaps;
> +    UINT AutoStreamCaps;
> +    UINT StereoCaps;
> +    UINT RateConversionCapsCount;
> +    UINT MaxInputStreams;
> +    UINT MaxStreamStates;
> +} D3D11_VIDEO_PROCESSOR_CAPS;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS
> +{
> +    UINT PastFrames;
> +    UINT FutureFrames;
> +    UINT ProcessorCaps;
> +    UINT ITelecineCaps;
> +    UINT CustomRateCount;
> +} D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE 
> +{
> +    DXGI_RATIONAL CustomRate;
> +    UINT          OutputFrames;
> +    BOOL          InputInterlaced;
> +    UINT          InputFramesOrFields;
> +} D3D11_VIDEO_PROCESSOR_CUSTOM_RATE;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_FILTER 
> +{
> +    D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS         = 0,
> +    D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST           = 1,
> +    D3D11_VIDEO_PROCESSOR_FILTER_HUE                = 2,
> +    D3D11_VIDEO_PROCESSOR_FILTER_SATURATION         = 3,
> +    D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION    = 4,
> +    D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT   = 5,
> +    D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6, 
> +    D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT  = 7
> +} D3D11_VIDEO_PROCESSOR_FILTER;
> +
> +typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
> +{
> +    UINT      Caps;
> +    UINT      KeyExchangeTypeCount;
> +    UINT      BlockAlignmentSize;
> +    ULONGLONG ProtectedMemorySize;
> +} D3D11_VIDEO_CONTENT_PROTECTION_CAPS;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE 
> +{
> +  int   Minimum;
> +  int   Maximum;
> +  int   Default;
> +  float Multiplier;
> +} D3D11_VIDEO_PROCESSOR_FILTER_RANGE;
> +
> +typedef struct D3D11_VIDEO_COLOR_RGBA 
> +{
> +    float R;
> +    float G;
> +    float B;
> +    float A;
> +} D3D11_VIDEO_COLOR_RGBA;
> +
> +typedef struct D3D11_VIDEO_COLOR_YCbCrA 
> +{
> +    float Y;
> +    float Cb;
> +    float Cr;
> +    float A;
> +} D3D11_VIDEO_COLOR_YCbCrA;
> +
> +typedef struct D3D11_VIDEO_COLOR 
> +{
> +    union
> +    {
> +        D3D11_VIDEO_COLOR_YCbCrA YCbCr;
> +        D3D11_VIDEO_COLOR_RGBA RGBA;
> +    };
> +} D3D11_VIDEO_COLOR;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE 
> +{
> +    UINT Usage  :1;
> +    UINT RGB_Range  :1;
> +    UINT YCbCr_Matrix  :1;
> +    UINT YCbCr_xvYCC  :1;
> +    UINT Nominal_Range :2;
> +    UINT Reserved : 26;
> +} D3D11_VIDEO_PROCESSOR_COLOR_SPACE;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE 
> +{
> +    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE        = 0,
> +    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND    = 1,
> +    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION   = 2,
> +    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3 
> +} D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE 
> +{
> +    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL   = 0,
> +    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF     = 1,
> +    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM   = 2 
> +} D3D11_VIDEO_PROCESSOR_OUTPUT_RATE;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT
> +{
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO               = 0,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL         = 1,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL           = 2,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE           = 3,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET        = 4,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED    = 5,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD       = 7
> +} D3D11_VIDEO_PROCESSOR_STEREO_FORMAT;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE
> +{
> +    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE   = 0,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
> +    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2
> +} D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE;
> +
> +typedef enum D3D11_VIDEO_PROCESSOR_ROTATION 
> +{
> +    D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
> +    D3D11_VIDEO_PROCESSOR_ROTATION_90       = 1,
> +    D3D11_VIDEO_PROCESSOR_ROTATION_180      = 2,
> +    D3D11_VIDEO_PROCESSOR_ROTATION_270      = 3
> +} D3D11_VIDEO_PROCESSOR_ROTATION;
> +
> +[
> +    object,
> +    local,
> +    uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c)
> +]
> +interface ID3D11VideoDecoder : ID3D11DeviceChild
> +{
> +    HRESULT GetCreationParameters( 
> +        [out] D3D11_VIDEO_DECODER_DESC *pVideoDesc,
> +        [out] D3D11_VIDEO_DECODER_CONFIG *pConfig);
> +    HRESULT GetDriverHandle( 
> +        [out] HANDLE *pDriverHandle);
> +}
> +
> +[
> +    object,
> +    local,
> +    uuid(1d7b0652-185f-41c6-85ce-0c5be3d4ae6c)
> +]
> +interface ID3D11VideoProcessor : ID3D11DeviceChild
> +{
> +    void GetContentDesc( 
> +        [out] D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
> +    void GetRateConversionCaps(
> +        [out] D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
> +}
> +
> +typedef enum D3D11_VPOV_DIMENSION
> +{
> +    D3D11_VPOV_DIMENSION_UNKNOWN = 0,
> +    D3D11_VPOV_DIMENSION_TEXTURE2D = 1,
> +    D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2
> +} D3D11_VPOV_DIMENSION;
> +
> +typedef struct D3D11_TEX2D_VPOV
> +{
> +    UINT MipSlice;
> +} D3D11_TEX2D_VPOV;
> +
> +typedef struct D3D11_TEX2D_ARRAY_VPOV
> +{
> +    UINT MipSlice;
> +    UINT FirstArraySlice;
> +    UINT ArraySize;
> +} D3D11_TEX2D_ARRAY_VPOV;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC
> +{
> +    D3D11_VPOV_DIMENSION ViewDimension;
> +
> +    union
> +    {
> +        D3D11_TEX2D_VPOV Texture2D;
> +        D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
> +    };
> +} D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC;
> +
> +[
> +    object,
> +    local,
> +    uuid(a048285e-25a9-4527-bd93-d68b68c44254)
> +]
> +interface ID3D11VideoProcessorOutputView : ID3D11View
> +{
> +    void GetDesc( [out] D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
> +}
> +
> +[
> +    object,
> +    local,
> +    uuid(9b32f9ad-bdcc-40a6-a39d-d5c865845720)
> +]
> +interface ID3D11CryptoSession : ID3D11DeviceChild
> +{
> +    void GetCryptoType(
> +        [out] GUID *pCryptoType);
> +    void GetDecoderProfile(
> +        [out] GUID *pDecoderProfile);
> +    HRESULT GetCertificateSize( 
> +        [out] UINT *pCertificateSize);
> +    HRESULT GetCertificate(
> +        [in] UINT CertificateSize, 
> +        [out] BYTE *pCertificate);
> +    void GetCryptoSessionHandle(
> +        [out] HANDLE *pCryptoSessionHandle);
> +}
> +
> +#define D3D11_OMAC_SIZE    16
> +
> +typedef struct D3D11_OMAC
> +{
> +    BYTE Omac[D3D11_OMAC_SIZE];
> +} D3D11_OMAC;
> +
> +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;
> +
> +typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT
> +{
> +    D3D11_OMAC                          omac;  
> +    GUID                                ConfigureType;          
> +    HANDLE                              hChannel;
> +    UINT                                SequenceNumber;     
> +    HRESULT                             ReturnCode;
> +} D3D11_AUTHENTICATED_CONFIGURE_OUTPUT;
> +
> +[
> +    object,
> +    local,
> +    uuid(3015a308-dcbd-47aa-a747-192486d14d4a)
> +]
> +interface ID3D11AuthenticatedChannel : ID3D11DeviceChild
> +{
> +    HRESULT GetCertificateSize( 
> +        [out] UINT *pCertificateSize);
> +    HRESULT GetCertificate(
> +        [in] UINT CertificateSize, 
> +        [out] BYTE *pCertificate);
> +    void GetChannelHandle(
> +        [out] HANDLE *pChannelHandle); 
> +}
> +
> +typedef enum D3D11_VPIV_DIMENSION
> +{
> +    D3D11_VPIV_DIMENSION_UNKNOWN = 0,
> +    D3D11_VPIV_DIMENSION_TEXTURE2D = 1
> +} D3D11_VPIV_DIMENSION;
> +
> +typedef struct D3D11_TEX2D_VPIV
> +{
> +    UINT MipSlice;
> +    UINT ArraySlice;
> +} D3D11_TEX2D_VPIV;
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC
> +{
> +    UINT FourCC;
> +    D3D11_VPIV_DIMENSION ViewDimension;
> +
> +    union
> +    {
> +        D3D11_TEX2D_VPIV Texture2D;
> +    };
> +} D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC;
> +
> +[
> +    object,
> +    local,
> +    uuid(11ec5a5f-51dc-4945-ab34-6e8c21300ea5)
> +]
> +interface ID3D11VideoProcessorInputView : ID3D11View
> +{
> +    void GetDesc( [out] D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
> +}
> +
> +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;
> +
> +    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);
> +}
> +
> +typedef struct D3D11_VIDEO_PROCESSOR_STREAM
> +{
> +    BOOL Enable;
> +    UINT OutputIndex;
> +    UINT InputFrameOrField;
> +    UINT PastFrames;
> +    UINT FutureFrames;
> +    ID3D11VideoProcessorInputView **ppPastSurfaces;
> +    ID3D11VideoProcessorInputView *pInputSurface;
> +    ID3D11VideoProcessorInputView **ppFutureSurfaces;
> +    ID3D11VideoProcessorInputView **ppPastSurfacesRight;
> +    ID3D11VideoProcessorInputView *pInputSurfaceRight;
> +    ID3D11VideoProcessorInputView **ppFutureSurfacesRight;
> +} D3D11_VIDEO_PROCESSOR_STREAM;
> +
> +[
> +    object,
> +    local,
> +    uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4)
> +]
> +interface ID3D11VideoContext : ID3D11DeviceChild
> +{
> +    HRESULT GetDecoderBuffer( 
> +        [in] ID3D11VideoDecoder *pDecoder,
> +        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE Type,
> +        [out] UINT *pBufferSize,
> +        [out] void **ppBuffer);
> +    HRESULT ReleaseDecoderBuffer( 
> +        [in] ID3D11VideoDecoder *pDecoder,
> +        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE Type);
> +    HRESULT DecoderBeginFrame(
> +        [in] ID3D11VideoDecoder *pDecoder,
> +        [in] ID3D11VideoDecoderOutputView *pView,
> +        [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);
> +    HRESULT DecoderExtension( 
> +        [in] ID3D11VideoDecoder *pDecoder,
> +        [in] const D3D11_VIDEO_DECODER_EXTENSION *pExtensionData);
> +    void VideoProcessorSetOutputTargetRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] BOOL Enable,
> +        [in] const RECT *pRect);
> +    void VideoProcessorSetOutputBackgroundColor( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] BOOL YCbCr,
> +        [in] const D3D11_VIDEO_COLOR *pColor);
> +    void VideoProcessorSetOutputColorSpace( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
> +    void VideoProcessorSetOutputAlphaFillMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE AlphaFillMode,
> +        [in] UINT StreamIndex);
> +    void VideoProcessorSetOutputConstriction( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] BOOL Enable,
> +        [in] SIZE Size);
> +    void VideoProcessorSetOutputStereoMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] BOOL Enable);
> +    HRESULT VideoProcessorSetOutputExtension( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] const GUID *pExtensionGuid,
> +        [in] UINT DataSize,
> +        [in] void *pData);
> +    void VideoProcessorGetOutputTargetRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] BOOL *Enabled,
> +        [out] RECT *pRect);
> +    void VideoProcessorGetOutputBackgroundColor( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] BOOL *pYCbCr,
> +        [out] D3D11_VIDEO_COLOR *pColor);
> +    void VideoProcessorGetOutputColorSpace( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
> +    void VideoProcessorGetOutputAlphaFillMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *pAlphaFillMode,
> +        [out] UINT *pStreamIndex);
> +    void VideoProcessorGetOutputConstriction( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] BOOL *pEnabled,
> +        [out] SIZE *pSize);
> +    void VideoProcessorGetOutputStereoMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [out] BOOL *pEnabled);
> +    HRESULT VideoProcessorGetOutputExtension( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] const GUID *pExtensionGuid,
> +        [in] UINT DataSize,
> +        [out] void *pData);
> +    void VideoProcessorSetStreamFrameFormat( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] D3D11_VIDEO_FRAME_FORMAT FrameFormat);
> +    void VideoProcessorSetStreamColorSpace( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
> +    void VideoProcessorSetStreamOutputRate( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE OutputRate,
> +        [in] BOOL RepeatFrame,
> +        [in] const DXGI_RATIONAL *pCustomRate);
> +    void VideoProcessorSetStreamSourceRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] const RECT *pRect);
> +    void VideoProcessorSetStreamDestRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] const RECT *pRect);
> +    void VideoProcessorSetStreamAlpha( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] FLOAT Alpha);
> +    void VideoProcessorSetStreamPalette( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] UINT Count,
> +        [in] const UINT *pEntries);
> +    void VideoProcessorSetStreamPixelAspectRatio( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] const DXGI_RATIONAL *pSourceAspectRatio,
> +        [in] const DXGI_RATIONAL *pDestinationAspectRatio);
> +    void VideoProcessorSetStreamLumaKey(
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] FLOAT Lower,
> +        [in] FLOAT Upper);
> +    void VideoProcessorSetStreamStereoFormat(
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT Format,
> +        [in] BOOL LeftViewFrame0,
> +        [in] BOOL BaseViewFrame0,
> +        [in] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE FlipMode,
> +        [in] int MonoOffset);
> +    void VideoProcessorSetStreamAutoProcessingMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable);
> +    void VideoProcessorSetStreamFilter( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] D3D11_VIDEO_PROCESSOR_FILTER Filter,
> +        [in] BOOL Enable,
> +        [in] int Level);
> +    HRESULT VideoProcessorSetStreamExtension( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] const GUID *pExtensionGuid,
> +        [in] UINT DataSize,
> +        [in] void *pData);
> +    void VideoProcessorGetStreamFrameFormat( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] D3D11_VIDEO_FRAME_FORMAT *pFrameFormat);
> +    void VideoProcessorGetStreamColorSpace( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *pColorSpace);
> +    void VideoProcessorGetStreamOutputRate( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *pOutputRate,
> +        [out] BOOL *pRepeatFrame,
> +        [out] DXGI_RATIONAL *pCustomRate);
> +    void VideoProcessorGetStreamSourceRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled,
> +        [out] RECT *pRect);
> +    void VideoProcessorGetStreamDestRect( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled,
> +        [out] RECT *pRect);
> +    void VideoProcessorGetStreamAlpha( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled,
> +        [out] FLOAT *pAlpha);
> +    void VideoProcessorGetStreamPalette( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] UINT Count,
> +        [out] UINT *pEntries);
> +    void VideoProcessorGetStreamPixelAspectRatio( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled,
> +        [out] DXGI_RATIONAL *pSourceAspectRatio,
> +        [out] DXGI_RATIONAL *pDestinationAspectRatio);
> +    void VideoProcessorGetStreamLumaKey(
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled,
> +        [out] FLOAT *pLower,
> +        [out] FLOAT *pUpper);
> +    void VideoProcessorGetStreamStereoFormat(
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnable,
> +        [out] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *pFormat,
> +        [out] BOOL *pLeftViewFrame0,
> +        [out] BOOL *pBaseViewFrame0,
> +        [out] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *pFlipMode,
> +        [out] int *MonoOffset);
> +    void VideoProcessorGetStreamAutoProcessingMode( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnabled);
> +    void VideoProcessorGetStreamFilter( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] D3D11_VIDEO_PROCESSOR_FILTER Filter,
> +        [out] BOOL *pEnabled,
> +        [out] int *pLevel);
> +    HRESULT VideoProcessorGetStreamExtension( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] const GUID *pExtensionGuid,
> +        [in] UINT DataSize,
> +        [out] void *pData);
> +    HRESULT VideoProcessorBlt(
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] ID3D11VideoProcessorOutputView *pView,
> +        [in] UINT OutputFrame,
> +        [in] UINT StreamCount,
> +        [in] const D3D11_VIDEO_PROCESSOR_STREAM *pStreams);
> +    HRESULT NegotiateCryptoSessionKeyExchange(
> +        [in] ID3D11CryptoSession *pCryptoSession, 
> +        [in] UINT DataSize, 
> +        [in,out] void *pData);
> +    void EncryptionBlt( 
> +        [in] ID3D11CryptoSession *pCryptoSession, 
> +        [in] ID3D11Texture2D *pSrcSurface,
> +        [in] ID3D11Texture2D *pDstSurface,
> +        [in] UINT IVSize,
> +        [in,out] void *pIV);
> +    void DecryptionBlt( 
> +        [in] ID3D11CryptoSession *pCryptoSession, 
> +        [in] ID3D11Texture2D *pSrcSurface,
> +        [in] ID3D11Texture2D *pDstSurface,
> +        [in] D3D11_ENCRYPTED_BLOCK_INFO *pEncryptedBlockInfo,
> +        [in] UINT ContentKeySize,
> +        [in] const void *pContentKey,
> +        [in] UINT IVSize,
> +        [in,out] void *pIV);
> +    void StartSessionKeyRefresh( 
> +        [in] ID3D11CryptoSession *pCryptoSession, 
> +        [in] UINT RandomNumberSize, 
> +        [out] void *pRandomNumber);
> +    void FinishSessionKeyRefresh(
> +        [in] ID3D11CryptoSession *pCryptoSession);
> +    HRESULT GetEncryptionBltKey( 
> +        [in] ID3D11CryptoSession *pCryptoSession, 
> +        [in] UINT KeySize, 
> +        [out] void *pReadbackKey);
> +    HRESULT NegotiateAuthenticatedChannelKeyExchange(
> +        [in] ID3D11AuthenticatedChannel *pChannel, 
> +        [in] UINT DataSize, 
> +        [in,out] void *pData);
> +    HRESULT QueryAuthenticatedChannel(
> +        [in] ID3D11AuthenticatedChannel *pChannel, 
> +        [in] UINT InputSize, 
> +        [in] const void *pInput,
> +        [in] UINT OutputSize,
> +        [out] void *pOutput);
> +    HRESULT ConfigureAuthenticatedChannel( 
> +        [in] ID3D11AuthenticatedChannel *pChannel, 
> +        [in] UINT InputSize,
> +        [in] const void *pInput,
> +        [out] D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *pOutput);
> +    void VideoProcessorSetStreamRotation( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [in] BOOL Enable,
> +        [in] D3D11_VIDEO_PROCESSOR_ROTATION Rotation);
> +    void VideoProcessorGetStreamRotation( 
> +        [in] ID3D11VideoProcessor *pVideoProcessor,
> +        [in] UINT StreamIndex,
> +        [out] BOOL *pEnable,
> +        [out] D3D11_VIDEO_PROCESSOR_ROTATION *pRotation);
> +}
> +
> +[
> +    object,
> +    local,
> +    uuid(31627037-53ab-4200-9061-05faa9ab45f9)
> +]
> +interface ID3D11VideoProcessorEnumerator : ID3D11DeviceChild
> +{
> +    HRESULT GetVideoProcessorContentDesc(
> +        [out] D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
> +    HRESULT CheckVideoProcessorFormat(
> +        [in] DXGI_FORMAT Format,
> +        [out] UINT *pFlags);
> +    HRESULT GetVideoProcessorCaps(
> +        [out] D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
> +    HRESULT GetVideoProcessorRateConversionCaps(
> +        [in] UINT TypeIndex,
> +        [out] D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
> +    HRESULT GetVideoProcessorCustomRate(
> +        [in] UINT TypeIndex,
> +        [in] UINT CustomRateIndex,
> +        [out] D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
> +    HRESULT GetVideoProcessorFilterRange(
> +        [in] D3D11_VIDEO_PROCESSOR_FILTER Filter,
> +        [out] D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
> +}
> +
> +[
> +    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 **ppDecoder);
> +    HRESULT CreateVideoProcessor( 
> +        [in] ID3D11VideoProcessorEnumerator *pEnum,
> +        [in] UINT RateConversionIndex,
> +        [out] ID3D11VideoProcessor **ppVideoProcessor);
> +    HRESULT CreateAuthenticatedChannel( 
> +        [in] D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
> +        [out] ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
> +    HRESULT CreateCryptoSession( 
> +        [in] const GUID *pCryptoType,
> +        [in] const GUID *pDecoderProfile,
> +        [in] const GUID *pKeyExchangeType,
> +        [out] ID3D11CryptoSession **ppCryptoSession);
> +    HRESULT CreateVideoDecoderOutputView(
> +        [in] ID3D11Resource *pResource,
> +        [in] const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
> +        [out] ID3D11VideoDecoderOutputView **ppVDOVView);
> +    HRESULT CreateVideoProcessorInputView(
> +        [in] ID3D11Resource *pResource,
> +        [in] ID3D11VideoProcessorEnumerator *pEnum,
> +        [in] const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
> +        [out] ID3D11VideoProcessorInputView **ppVPIView);
> +    HRESULT CreateVideoProcessorOutputView(
> +        [in] ID3D11Resource *pResource,
> +        [in] ID3D11VideoProcessorEnumerator *pEnum,
> +        [in] const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
> +        [out] ID3D11VideoProcessorOutputView **ppVPOView);
> +    HRESULT CreateVideoProcessorEnumerator(
> +        [in] const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
> +        [out] ID3D11VideoProcessorEnumerator **ppEnum);
> +    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);
> +    HRESULT GetContentProtectionCaps( 
> +        [in] const GUID *pCryptoType,
> +        [in] const GUID *pDecoderProfile,
> +        [out] D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
> +    HRESULT CheckCryptoKeyExchange(
> +        [in] const GUID *pCryptoType,
> +        [in] const GUID *pDecoderProfile,
> +        [in] UINT Index,
> +        [out] GUID *pKeyExchangeType);
> +    HRESULT SetPrivateData(
> +        [in] REFGUID guid,
> +        [in] UINT DataSize,
> +        [in] const void *pData);
> +    HRESULT SetPrivateDataInterface(
> +        [in] REFGUID guid,
> +        [in] const IUnknown *pData);
> +}
> +
>  typedef enum D3D11_CREATE_DEVICE_FLAG {
> -    D3D11_CREATE_DEVICE_SINGLETHREADED  = 0x0001,
> -    D3D11_CREATE_DEVICE_DEBUG           = 0x0002,
> -    D3D11_CREATE_DEVICE_SWITCH_TO_REF   = 0x0004,
> -    D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x0008,
> -    D3D11_CREATE_DEVICE_BGRA_SUPPORT    = 0x0020,
> -    D3D11_CREATE_DEVICE_DEBUGGABLE      = 0x0040,
> +    D3D11_CREATE_DEVICE_SINGLETHREADED                                = 0x0001,
> +    D3D11_CREATE_DEVICE_DEBUG                                         = 0x0002,
> +    D3D11_CREATE_DEVICE_SWITCH_TO_REF                                 = 0x0004,
> +    D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS      = 0x0008,
> +    D3D11_CREATE_DEVICE_BGRA_SUPPORT                                  = 0x0020,
> +    D3D11_CREATE_DEVICE_DEBUGGABLE                                    = 0x0040,
>      D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x0080,
> -    D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x0100,
> -    D3D11_CREATE_DEVICE_VIDEO_SUPPORT   = 0x0800
> +    D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT                           = 0x0100,
> +    D3D11_CREATE_DEVICE_VIDEO_SUPPORT                                 = 0x0800
>  } D3D11_CREATE_DEVICE_FLAG;
>  
>  const UINT D3D11_SDK_VERSION = 7;
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJVUHHsAAoJEN0/YqbEcdMwt5IP/RQUorEad9xeKijd+ylUAZNH
k9W6EpbcMUcwd8bWEE95XQadiG+NQ/IpQDrVAanqX8yW5rA9ldfVZmX5AzgQDY1b
2+z6DZ41S8AqUQFkjakJmlAJu9KAEh+jbDFEl5742ZRu0XARF1cQkJ8tDuNKOmUY
dPetkbiPVNoP3wbfTr5PaQD5Ti4IgzkoPXP2ZEnLw//BGbqvj8zODN3KEEPrXW4X
Vx9lGihijOiSbCs225sBCA9gV5qGdtAZaDRaYBhcBhssL79/zfe+IhRgSlFDfN9G
DVu7MhCbJpC4ZhMiJq7XwywBFDFmRKRJ6ppOi5luUHOuowooG1OV71j+zkiTcId0
xkKiwz7hvRn634rbP8MO7jShVGJczYJRCECNYa8UcIz1IFJm/jas1lj3fNt0mZlw
DWzOv5MxvNVyI61IgQs2kgJhOjKmya62Wsz1f7W4TFWazMg2/QKN4K97P2GH3B4L
sypDv7Zgszds4kZDnihVzbJY115XlrbEEjyC2/wTzLr07ThwaFQGs1xlOkIYFiJY
GrRdouYJlfGmg1vCV7BOgNkeQrOdEXWOgmD9lw3cDWqnBMvabVBPYWPUGk62yzNQ
F9o0hktsMOAN+eHqD1kH5EcZX5qICIb+ys0SWWpROAkfnS3cbJfdBHeNYiRAFMfZ
TVNEg78wDgXDA8MmxhAQ
=efTb
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list