winegstreamer: Implement Get(Input/Output)CurrentType functions for audio converter transform.

Signed-off-by: Derek Lesho <dlesho@codeweavers.com>
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Derek Lesho 2020-12-03 16:55:54 -05:00 committed by Alexandre Julliard
parent 8771d06b94
commit f7230992cc
1 changed files with 52 additions and 4 deletions

View File

@ -423,16 +423,64 @@ static HRESULT WINAPI audio_converter_SetOutputType(IMFTransform *iface, DWORD i
static HRESULT WINAPI audio_converter_GetInputCurrentType(IMFTransform *iface, DWORD id, IMFMediaType **type)
{
FIXME("%p, %u, %p.\n", iface, id, type);
struct audio_converter *converter = impl_audio_converter_from_IMFTransform(iface);
IMFMediaType *ret;
HRESULT hr;
return E_NOTIMPL;
TRACE("%p, %u, %p.\n", converter, id, type);
if (id != 0)
return MF_E_INVALIDSTREAMNUMBER;
if (FAILED(hr = MFCreateMediaType(&ret)))
return hr;
EnterCriticalSection(&converter->cs);
if (converter->input_type)
hr = IMFMediaType_CopyAllItems(converter->input_type, (IMFAttributes *)ret);
else
hr = MF_E_TRANSFORM_TYPE_NOT_SET;
LeaveCriticalSection(&converter->cs);
if (SUCCEEDED(hr))
*type = ret;
else
IMFMediaType_Release(ret);
return hr;
}
static HRESULT WINAPI audio_converter_GetOutputCurrentType(IMFTransform *iface, DWORD id, IMFMediaType **type)
{
FIXME("%p, %u, %p.\n", iface, id, type);
struct audio_converter *converter = impl_audio_converter_from_IMFTransform(iface);
IMFMediaType *ret;
HRESULT hr;
return E_NOTIMPL;
TRACE("%p, %u, %p.\n", converter, id, type);
if (id != 0)
return MF_E_INVALIDSTREAMNUMBER;
if (FAILED(hr = MFCreateMediaType(&ret)))
return hr;
EnterCriticalSection(&converter->cs);
if (converter->output_type)
hr = IMFMediaType_CopyAllItems(converter->output_type, (IMFAttributes *)ret);
else
hr = MF_E_TRANSFORM_TYPE_NOT_SET;
LeaveCriticalSection(&converter->cs);
if (SUCCEEDED(hr))
*type = ret;
else
IMFMediaType_Release(ret);
return hr;
}
static HRESULT WINAPI audio_converter_GetInputStatus(IMFTransform *iface, DWORD id, DWORD *flags)