| /* | |
| * 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 | |
| ); | |
| } |