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

Steve Lhomme robux4 at videolabs.io
Mon May 11 04:53:06 CDT 2015


On Mon, May 11, 2015 at 11:10 AM, Stefan Dösinger
<stefandoesinger at gmail.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> This patch still shows plenty of signs that it was copypasted from Microsoft's headers.

Care to elaborate ?

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

This part of the code reformatting is not needed.



More information about the wine-devel mailing list