dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / evr.idl
blob22f745e12e9d409e7d7767e41d959b4a019e3dca
1 /*
2 * COM Classes for evr
4 * Copyright 2017 Fabian Maurer
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 import "unknwn.idl";
22 import "propidl.idl";
23 import "mfidl.idl";
24 import "mftransform.idl";
25 import "mediaobj.idl";
26 import "strmif.idl";
28 typedef enum _MFVP_MESSAGE_TYPE {
29 MFVP_MESSAGE_FLUSH,
30 MFVP_MESSAGE_INVALIDATEMEDIATYPE,
31 MFVP_MESSAGE_PROCESSINPUTNOTIFY,
32 MFVP_MESSAGE_BEGINSTREAMING,
33 MFVP_MESSAGE_ENDSTREAMING,
34 MFVP_MESSAGE_ENDOFSTREAM,
35 MFVP_MESSAGE_STEP,
36 MFVP_MESSAGE_CANCELSTEP,
37 } MFVP_MESSAGE_TYPE;
40 object,
41 uuid(29aff080-182a-4a5d-af3b-448f3a6346cb),
42 local
44 interface IMFVideoPresenter : IMFClockStateSink
46 HRESULT ProcessMessage(
47 [in] MFVP_MESSAGE_TYPE eMessage,
48 [in] ULONG_PTR ulParam
50 HRESULT GetCurrentMediaType(
51 [out] IMFVideoMediaType **ppMediaType
56 object,
57 uuid(83e91e85-82c1-4ea7-801d-85dc50b75086),
58 local
60 interface IEVRFilterConfig : IUnknown
62 HRESULT SetNumberOfStreams(
63 [in] DWORD dwMaxStreams
65 HRESULT GetNumberOfStreams(
66 [out] DWORD *pdwMaxStreams
71 object,
72 uuid(1f6a9f17-e70b-4e24-8ae4-0b2c3ba7a4ae),
73 local
75 interface IMFVideoPositionMapper : IUnknown
77 HRESULT MapOutputCoordinateToInputStream(
78 [in] float xOut,
79 [in] float yOut,
80 [in] DWORD dwOutputStreamIndex,
81 [in] DWORD dwInputStreamIndex,
82 [out] float *pxIn,
83 [out] float *pyIn
88 object,
89 uuid(dfdfd197-a9ca-43d8-b341-6af3503792cd),
90 local
92 interface IMFVideoRenderer : IUnknown
94 HRESULT InitializeRenderer(
95 [in] IMFTransform *pVideoMixer,
96 [in] IMFVideoPresenter *pVideoPresenter