Rémi Bernon : winegstreamer: Fix ColorConvert transform GetCurrent(Input|Output)Type.

Alexandre Julliard julliard at winehq.org
Tue Jul 5 15:55:06 CDT 2022


Module: wine
Branch: master
Commit: a3b3708134a8956c79929764df7271b2a153f5f0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=a3b3708134a8956c79929764df7271b2a153f5f0

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Wed Jun 29 23:13:45 2022 +0200

winegstreamer: Fix ColorConvert transform GetCurrent(Input|Output)Type.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>

---

 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)




More information about the wine-cvs mailing list