evr/mixer: Add SetOutputBounds().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ad65d03013
commit
14d2b04478
|
@ -79,6 +79,8 @@ struct video_mixer
|
||||||
IMFAttributes *attributes;
|
IMFAttributes *attributes;
|
||||||
IMFAttributes *internal_attributes;
|
IMFAttributes *internal_attributes;
|
||||||
unsigned int mixing_flags;
|
unsigned int mixing_flags;
|
||||||
|
LONGLONG lower_bound;
|
||||||
|
LONGLONG upper_bound;
|
||||||
CRITICAL_SECTION cs;
|
CRITICAL_SECTION cs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -814,9 +816,18 @@ static HRESULT WINAPI video_mixer_transform_GetOutputStatus(IMFTransform *iface,
|
||||||
|
|
||||||
static HRESULT WINAPI video_mixer_transform_SetOutputBounds(IMFTransform *iface, LONGLONG lower, LONGLONG upper)
|
static HRESULT WINAPI video_mixer_transform_SetOutputBounds(IMFTransform *iface, LONGLONG lower, LONGLONG upper)
|
||||||
{
|
{
|
||||||
FIXME("%p, %s, %s.\n", iface, wine_dbgstr_longlong(lower), wine_dbgstr_longlong(upper));
|
struct video_mixer *mixer = impl_from_IMFTransform(iface);
|
||||||
|
|
||||||
return E_NOTIMPL;
|
TRACE("%p, %s, %s.\n", iface, wine_dbgstr_longlong(lower), wine_dbgstr_longlong(upper));
|
||||||
|
|
||||||
|
EnterCriticalSection(&mixer->cs);
|
||||||
|
|
||||||
|
mixer->lower_bound = lower;
|
||||||
|
mixer->upper_bound = upper;
|
||||||
|
|
||||||
|
LeaveCriticalSection(&mixer->cs);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI video_mixer_transform_ProcessEvent(IMFTransform *iface, DWORD id, IMFMediaEvent *event)
|
static HRESULT WINAPI video_mixer_transform_ProcessEvent(IMFTransform *iface, DWORD id, IMFMediaEvent *event)
|
||||||
|
@ -1879,6 +1890,8 @@ HRESULT evr_mixer_create(IUnknown *outer, void **out)
|
||||||
object->outer_unk = outer ? outer : &object->IUnknown_inner;
|
object->outer_unk = outer ? outer : &object->IUnknown_inner;
|
||||||
object->refcount = 1;
|
object->refcount = 1;
|
||||||
object->input_count = 1;
|
object->input_count = 1;
|
||||||
|
object->lower_bound = MFT_OUTPUT_BOUND_LOWER_UNBOUNDED;
|
||||||
|
object->upper_bound = MFT_OUTPUT_BOUND_UPPER_UNBOUNDED;
|
||||||
video_mixer_init_input(&object->inputs[0]);
|
video_mixer_init_input(&object->inputs[0]);
|
||||||
InitializeCriticalSection(&object->cs);
|
InitializeCriticalSection(&object->cs);
|
||||||
if (FAILED(hr = MFCreateAttributes(&object->attributes, 0)))
|
if (FAILED(hr = MFCreateAttributes(&object->attributes, 0)))
|
||||||
|
|
|
@ -531,6 +531,9 @@ todo_wine
|
||||||
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
||||||
IUnknown_Release(unk);
|
IUnknown_Release(unk);
|
||||||
|
|
||||||
|
hr = IMFTransform_SetOutputBounds(transform, 100, 10);
|
||||||
|
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
||||||
|
|
||||||
hr = IMFTransform_QueryInterface(transform, &IID_IMFVideoDeviceID, (void **)&deviceid);
|
hr = IMFTransform_QueryInterface(transform, &IID_IMFVideoDeviceID, (void **)&deviceid);
|
||||||
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
|
||||||
|
|
||||||
|
|
|
@ -265,6 +265,8 @@ typedef ULONG_PTR SIZE_T, *PSIZE_T;
|
||||||
|
|
||||||
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
|
typedef ULONG_PTR KAFFINITY, *PKAFFINITY;
|
||||||
|
|
||||||
|
#define MINLONGLONG ((LONGLONG)~MAXLONGLONG)
|
||||||
|
|
||||||
/* Some Wine-specific definitions */
|
/* Some Wine-specific definitions */
|
||||||
|
|
||||||
/* Architecture dependent settings. */
|
/* Architecture dependent settings. */
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
|
|
||||||
import "mfobjects.idl";
|
import "mfobjects.idl";
|
||||||
|
|
||||||
|
cpp_quote("#define MFT_OUTPUT_BOUND_LOWER_UNBOUNDED MINLONGLONG")
|
||||||
|
cpp_quote("#define MFT_OUTPUT_BOUND_UPPER_UNBOUNDED MAXLONGLONG")
|
||||||
|
|
||||||
typedef [v1_enum] enum _MFT_MESSAGE_TYPE
|
typedef [v1_enum] enum _MFT_MESSAGE_TYPE
|
||||||
{
|
{
|
||||||
MFT_MESSAGE_COMMAND_FLUSH = 0x00000000,
|
MFT_MESSAGE_COMMAND_FLUSH = 0x00000000,
|
||||||
|
|
Loading…
Reference in New Issue