From a3b3708134a8956c79929764df7271b2a153f5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Wed, 29 Jun 2022 23:13:45 +0200 Subject: [PATCH] winegstreamer: Fix ColorConvert transform GetCurrent(Input|Output)Type. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Bernon --- dlls/winegstreamer/color_convert.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dlls/winegstreamer/color_convert.c b/dlls/winegstreamer/color_convert.c index 66a86aa4602..b47832b2c30 100644 --- a/dlls/winegstreamer/color_convert.c +++ b/dlls/winegstreamer/color_convert.c @@ -466,7 +466,6 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF static HRESULT WINAPI transform_GetInputCurrentType(IMFTransform *iface, DWORD id, IMFMediaType **type) { struct color_convert *impl = impl_from_IMFTransform(iface); - IMFMediaType *ret; HRESULT hr; TRACE("iface %p, id %#lx, type %p.\n", iface, id, type); @@ -477,16 +476,18 @@ static HRESULT WINAPI transform_GetInputCurrentType(IMFTransform *iface, DWORD i if (!impl->input_type) return MF_E_TRANSFORM_TYPE_NOT_SET; - if (FAILED(hr = MFCreateMediaType(&ret))) + if (FAILED(hr = MFCreateMediaType(type))) return hr; - return IMFMediaType_CopyAllItems(impl->input_type, (IMFAttributes *)ret); + if (FAILED(hr = IMFMediaType_CopyAllItems(impl->input_type, (IMFAttributes *)*type))) + IMFMediaType_Release(*type); + + return hr; } static HRESULT WINAPI transform_GetOutputCurrentType(IMFTransform *iface, DWORD id, IMFMediaType **type) { struct color_convert *impl = impl_from_IMFTransform(iface); - IMFMediaType *ret; HRESULT hr; TRACE("iface %p, id %#lx, type %p.\n", iface, id, type); @@ -497,10 +498,13 @@ static HRESULT WINAPI transform_GetOutputCurrentType(IMFTransform *iface, DWORD if (!impl->output_type) return MF_E_TRANSFORM_TYPE_NOT_SET; - if (FAILED(hr = MFCreateMediaType(&ret))) + if (FAILED(hr = MFCreateMediaType(type))) return hr; - return IMFMediaType_CopyAllItems(impl->output_type, (IMFAttributes *)ret); + if (FAILED(hr = IMFMediaType_CopyAllItems(impl->output_type, (IMFAttributes *)*type))) + IMFMediaType_Release(*type); + + return hr; } static HRESULT WINAPI transform_GetInputStatus(IMFTransform *iface, DWORD id, DWORD *flags)