115 lines
2.9 KiB
Plaintext
115 lines
2.9 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;
|
|
|
|
[
|
|
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
|
|
);
|
|
}
|