Sweden-Number/include/evr9.idl

126 lines
3.2 KiB
Plaintext

/*
* Copyright 2020 Nikolay Sivov for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "unknwn.idl";
import "evr.idl";
import "dxva2api.idl";
typedef struct MFVideoAlphaBitmapParams
{
DWORD dwFlags;
COLORREF clrSrcKey;
RECT rcSrc;
MFVideoNormalizedRect nrcDest;
FLOAT fAlpha;
DWORD dwFilterMode;
} MFVideoAlphaBitmapParams;
typedef struct MFVideoAlphaBitmap
{
BOOL GetBitmapFromDC;
union
{
HDC hdc;
IDirect3DSurface9 *pDDS;
} bitmap;
MFVideoAlphaBitmapParams params;
} MFVideoAlphaBitmap;
typedef enum
{
MFVideoAlphaBitmap_EntireDDS = 0x1,
MFVideoAlphaBitmap_SrcColorKey = 0x2,
MFVideoAlphaBitmap_SrcRect = 0x4,
MFVideoAlphaBitmap_DestRect = 0x8,
MFVideoAlphaBitmap_FilterMode = 0x10,
MFVideoAlphaBitmap_Alpha = 0x20,
MFVideoAlphaBitmap_BitMask = 0x3f
} MFVideoAlphaBitmapFlags;
[
object,
uuid(814c7b20-0fdb-4eec-af8f-f957c8f69edc),
local
]
interface IMFVideoMixerBitmap : IUnknown
{
HRESULT SetAlphaBitmap(
[in] const MFVideoAlphaBitmap *bitmap
);
HRESULT ClearAlphaBitmap(void);
HRESULT UpdateAlphaBitmapParameters(
[in] const MFVideoAlphaBitmapParams *params
);
HRESULT GetAlphaBitmapParameters(
[out] MFVideoAlphaBitmapParams *params
);
}
[
object,
uuid(6ab0000c-fece-4d1f-a2ac-a9573530656e),
pointer_default(unique)
]
interface IMFVideoProcessor : IUnknown
{
HRESULT GetAvailableVideoProcessorModes(
[out] UINT *count,
[out, size_is(*count)] GUID **modes
);
HRESULT GetVideoProcessorCaps(
[in] GUID *mode,
[out] DXVA2_VideoProcessorCaps *caps
);
HRESULT GetVideoProcessorMode(
[out] GUID *mode
);
HRESULT SetVideoProcessorMode(
[in] GUID *mode
);
HRESULT GetProcAmpRange(
[in] DWORD prop,
[out] DXVA2_ValueRange *range
);
HRESULT GetProcAmpValues(
[in] DWORD flags,
[out] DXVA2_ProcAmpValues *values
);
HRESULT SetProcAmpValues(
[in] DWORD flags,
[in] DXVA2_ProcAmpValues *values
);
HRESULT GetFilteringRange(
[in] DWORD prop,
[out] DXVA2_ValueRange *range
);
HRESULT GetFilteringValue(
[in] DWORD prop,
[out] DXVA2_Fixed32 *value
);
HRESULT SetFilteringValue(
[in] DWORD prop,
[in] DXVA2_Fixed32 *value
);
HRESULT GetBackgroundColor(
[out] COLORREF *color
);
HRESULT SetBackgroundColor(
[in] COLORREF color
);
}