[PATCH 1/1] d3d11: Add the ID3D11VideoContext interface.

Henri Verbeet hverbeet at codeweavers.com
Fri Jan 22 05:59:49 CST 2016


From: Andrey Turkin <andrey.turkin at gmail.com>

Signed-off-by: Andrey Turkin <andrey.turkin at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
So what happened here is that Jacek's patch yesterday made me remember this
one, and I assumed Andrey had dropped it. Guess I was wrong, oh well.
---
 include/d3d11.idl | 510 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 507 insertions(+), 3 deletions(-)

diff --git a/include/d3d11.idl b/include/d3d11.idl
index d32fa34..df6ea08 100644
--- a/include/d3d11.idl
+++ b/include/d3d11.idl
@@ -27,6 +27,11 @@ typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
 typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
 typedef RECT D3D11_RECT;
 
+interface ID3D11Device;
+interface ID3D11ClassLinkage;
+interface ID3D11Resource;
+interface ID3D11VideoProcessorInputView;
+
 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT      = 14;
 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS          = 4;
 const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
@@ -106,6 +111,8 @@ const UINT D3D11_SHADER_MAX_TYPES            = 65535;
 const UINT D3D11_SHADER_MINOR_VERSION        = 0;
 const UINT D3D11_VS_OUTPUT_REGISTER_COUNT    = 32;
 
+const UINT D3D11_OMAC_SIZE = 16;
+
 const UINT D3D11_PS_CS_UAV_REGISTER_COMPONENTS         = 1;
 const UINT D3D11_PS_CS_UAV_REGISTER_COUNT              = 8;
 const UINT D3D11_PS_CS_UAV_REGISTER_READS_PER_INST     = 1;
@@ -228,6 +235,61 @@ typedef enum D3D11_BLEND_OP
     D3D11_BLEND_OP_MAX
 } D3D11_BLEND_OP;
 
+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 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;
+
 typedef struct D3D11_BOX
 {
     UINT left;
@@ -1562,9 +1624,105 @@ typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
     ULONGLONG ProtectedMemorySize;
 } D3D11_VIDEO_CONTENT_PROTECTION_CAPS;
 
-/* A couple forward declarations are needed */
-interface ID3D11Device;
-interface ID3D11ClassLinkage;
+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 struct D3D11_VIDEO_COLOR_YCbCrA
+{
+    float Y;
+    float Cb;
+    float Cr;
+    float A;
+} D3D11_VIDEO_COLOR_YCbCrA;
+
+typedef struct D3D11_VIDEO_COLOR_RGBA
+{
+    float R;
+    float G;
+    float B;
+    float A;
+} D3D11_VIDEO_COLOR_RGBA;
+
+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 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;
+
+typedef struct D3D11_OMAC
+{
+      BYTE Omac[D3D11_OMAC_SIZE];
+} D3D11_OMAC;
+
+typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT
+{
+    D3D11_OMAC omac;
+    GUID ConfigureType;
+    HANDLE hChannel;
+    UINT SequenceNumber;
+    HRESULT ReturnCode;
+} D3D11_AUTHENTICATED_CONFIGURE_OUTPUT;
 
 [
     object,
@@ -2517,6 +2675,352 @@ interface ID3D11VideoDevice : IUnknown
 
 [
     object,
+    uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4),
+    local,
+    pointer_default(unique)
+]
+interface ID3D11VideoContext : ID3D11DeviceChild
+{
+    HRESULT GetDecoderBuffer(
+        [in] ID3D11VideoDecoder *decoder,
+        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type,
+        [out] UINT *buffer_size,
+        [out] void **buffer
+    );
+    HRESULT ReleaseDecoderBuffer(
+        [in] ID3D11VideoDecoder *decoder,
+        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type
+    );
+    HRESULT DecoderBeginFrame(
+        [in] ID3D11VideoDecoder *decoder,
+        [in] ID3D11VideoDecoderOutputView *view,
+        [in] UINT key_size,
+        [in] const void *key
+    );
+    HRESULT DecoderEndFrame(
+        [in] ID3D11VideoDecoder *decoder
+    );
+    HRESULT SubmitDecoderBuffers(
+        [in] ID3D11VideoDecoder *decoder,
+        [in] UINT buffers_count,
+        [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc
+    );
+    HRESULT DecoderExtension(
+        [in] ID3D11VideoDecoder *decoder,
+        [in] const D3D11_VIDEO_DECODER_EXTENSION *extension
+    );
+    void VideoProcessorSetOutputTargetRect(
+        [in] ID3D11VideoProcessor *processor,
+        [in] BOOL enable,
+        [in] const RECT *rect
+    );
+    void VideoProcessorSetOutputBackgroundColor(
+        [in] ID3D11VideoProcessor *processor,
+        [in] BOOL y_cb_cr,
+        [in] const D3D11_VIDEO_COLOR *color
+    );
+    void VideoProcessorSetOutputColorSpace(
+        [in] ID3D11VideoProcessor *processor,
+        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
+    );
+    void VideoProcessorSetOutputAlphaFillMode(
+        [in] ID3D11VideoProcessor *processor,
+        [in] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
+        [in] UINT stream_idx
+    );
+    void VideoProcessorSetOutputConstriction(
+        [in] ID3D11VideoProcessor *processor,
+        [in] BOOL enable,
+        [in] SIZE size
+    );
+    void VideoProcessorSetOutputStereoMode(
+        [in] ID3D11VideoProcessor *processor,
+        [in] BOOL enable
+    );
+    HRESULT VideoProcessorSetOutputExtension(
+        [in] ID3D11VideoProcessor *processor,
+        [in] const GUID *guid,
+        [in] UINT data_size,
+        [in] void *data
+    );
+    void VideoProcessorGetOutputTargetRect(
+        [in] ID3D11VideoProcessor *processor,
+        [out] BOOL *enabled,
+        [out] RECT *rect
+    );
+    void VideoProcessorGetOutputBackgroundColor(
+        [in] ID3D11VideoProcessor *processor,
+        [out] BOOL *y_cb_cr,
+        [out] D3D11_VIDEO_COLOR *color
+    );
+    void VideoProcessorGetOutputColorSpace(
+        [in] ID3D11VideoProcessor *processor,
+        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
+    );
+    void VideoProcessorGetOutputAlphaFillMode(
+        [in] ID3D11VideoProcessor *processor,
+        [out] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
+        [out] UINT *stream_idx
+    );
+    void VideoProcessorGetOutputConstriction(
+        [in] ID3D11VideoProcessor *processor,
+        [out] BOOL *enabled,
+        [out] SIZE *size
+    );
+    void VideoProcessorGetOutputStereoMode(
+        [in] ID3D11VideoProcessor *processor,
+        [out] BOOL *enabled
+    );
+    HRESULT VideoProcessorGetOutputExtension(
+        [in] ID3D11VideoProcessor *processor,
+        [in] const GUID *guid,
+        [in] UINT data_size,
+        [out] void *data
+    );
+    void VideoProcessorSetStreamFrameFormat(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] D3D11_VIDEO_FRAME_FORMAT format
+    );
+    void VideoProcessorSetStreamColorSpace(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
+    );
+    void VideoProcessorSetStreamOutputRate(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
+        [in] BOOL repeat,
+        [in] const DXGI_RATIONAL *custom_rate
+    );
+    void VideoProcessorSetStreamSourceRect(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] const RECT *rect
+    );
+    void VideoProcessorSetStreamDestRect(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] const RECT *rect
+    );
+    void VideoProcessorSetStreamAlpha(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] float alpha
+    );
+    void VideoProcessorSetStreamPalette(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] UINT entry_count,
+        [in] const UINT *entries
+    );
+    void VideoProcessorSetStreamPixelAspectRatio(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] const DXGI_RATIONAL *src_aspect_ratio,
+        [in] const DXGI_RATIONAL *dst_aspect_ratio
+    );
+    void VideoProcessorSetStreamLumaKey(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] float lower,
+        [in] float upper
+    );
+    void VideoProcessorSetStreamStereoFormat(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
+        [in] BOOL left_view_frame0,
+        [in] BOOL base_view_frame0,
+        [in] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
+        [in] int mono_offset
+    );
+    void VideoProcessorSetStreamAutoProcessingMode(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable
+    );
+    void VideoProcessorSetStreamFilter(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] D3D11_VIDEO_PROCESSOR_FILTER filter,
+        [in] BOOL enable,
+        [in] int level
+    );
+    HRESULT VideoProcessorSetStreamExtension(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] const GUID *guid,
+        [in] UINT data_size,
+        [in] void *data
+    );
+    void VideoProcessorGetStreamFrameFormat(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] D3D11_VIDEO_FRAME_FORMAT *format
+    );
+    void VideoProcessorGetStreamColorSpace(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
+    );
+    void VideoProcessorGetStreamOutputRate(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
+        [out] BOOL *repeat,
+        [out] DXGI_RATIONAL *custom_rate
+    );
+    void VideoProcessorGetStreamSourceRect(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] RECT *rect
+    );
+    void VideoProcessorGetStreamDestRect(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] RECT *rect
+    );
+    void VideoProcessorGetStreamAlpha(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] float *alpha
+    );
+    void VideoProcessorGetStreamPalette(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] UINT entry_count,
+        [out] UINT *entries
+    );
+    void VideoProcessorGetStreamPixelAspectRatio(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] DXGI_RATIONAL *src_aspect_ratio,
+        [out] DXGI_RATIONAL *dst_aspect_ratio
+    );
+    void VideoProcessorGetStreamLumaKey(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] float *lower,
+        [out] float *upper
+    );
+    void VideoProcessorGetStreamStereoFormat(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled,
+        [out] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
+        [out] BOOL *left_view_frame0,
+        [out] BOOL *base_view_frame0,
+        [out] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
+        [out] int *mono_offset
+    );
+    void VideoProcessorGetStreamAutoProcessingMode(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enabled
+    );
+    void VideoProcessorGetStreamFilter(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] D3D11_VIDEO_PROCESSOR_FILTER filter,
+        [out] BOOL *enabled,
+        [out] int *level
+    );
+    HRESULT VideoProcessorGetStreamExtension(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] const GUID *guid,
+        [in] UINT data_size,
+        [out] void *data
+    );
+    HRESULT VideoProcessorBlt(
+        [in] ID3D11VideoProcessor *processor,
+        [in] ID3D11VideoProcessorOutputView *view,
+        [in] UINT frame_idx,
+        [in] UINT stream_count,
+        [in] const D3D11_VIDEO_PROCESSOR_STREAM *streams
+    );
+    HRESULT NegotiateCryptoSessionKeyExchange(
+        [in] ID3D11CryptoSession *session,
+        [in] UINT data_size,
+        [in, out] void *data
+    );
+    void EncryptionBlt(
+        [in] ID3D11CryptoSession *session,
+        [in] ID3D11Texture2D *src_surface,
+        [in] ID3D11Texture2D *dst_surface,
+        [in] UINT iv_size,
+        [in, out] void *iv
+    );
+    void DecryptionBlt(
+        [in] ID3D11CryptoSession *session,
+        [in] ID3D11Texture2D *src_surface,
+        [in] ID3D11Texture2D *dst_surface,
+        [in] D3D11_ENCRYPTED_BLOCK_INFO *block_info,
+        [in] UINT key_size,
+        [in] const void *key,
+        [in] UINT iv_size,
+        [in, out] void *iv
+    );
+    void StartSessionKeyRefresh(
+        [in] ID3D11CryptoSession *session,
+        [in] UINT random_number_size,
+        [out] void *random_number
+    );
+    void FinishSessionKeyRefresh(
+        [in] ID3D11CryptoSession *session
+    );
+    HRESULT GetEncryptionBltKey(
+        [in] ID3D11CryptoSession *session,
+        [in] UINT key_size,
+        [out] void *key
+    );
+    HRESULT NegotiateAuthenticatedChannelKeyExchange(
+        [in] ID3D11AuthenticatedChannel *channel,
+        [in] UINT data_size,
+        [in, out] void *data
+    );
+    HRESULT QueryAuthenticatedChannel(
+        [in] ID3D11AuthenticatedChannel *channel,
+        [in] UINT input_size,
+        [in] const void *input,
+        [in] UINT output_size,
+        [out] void *output
+    );
+    HRESULT ConfigureAuthenticatedChannel(
+        [in] ID3D11AuthenticatedChannel *channel,
+        [in] UINT input_size,
+        [in] const void *input,
+        [out] D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output
+    );
+    void VideoProcessorSetStreamRotation(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [in] BOOL enable,
+        [in] D3D11_VIDEO_PROCESSOR_ROTATION rotation
+    );
+    void VideoProcessorGetStreamRotation(
+        [in] ID3D11VideoProcessor *processor,
+        [in] UINT stream_idx,
+        [out] BOOL *enable,
+        [out] D3D11_VIDEO_PROCESSOR_ROTATION *rotation
+    );
+}
+
+[
+    object,
     local,
     uuid(db6f6ddb-ac77-4e88-8253-819df9bbf140)
 ]
-- 
2.1.4




More information about the wine-patches mailing list