Gabriel Ivăncescu : qedit: Retrieve the pin media type using a helper function.

Alexandre Julliard julliard at winehq.org
Mon Apr 27 15:19:31 CDT 2020


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

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Mon Apr 27 14:14:03 2020 -0500

qedit: Retrieve the pin media type using a helper function.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/qedit/mediadet.c | 38 +++++++++++++++++++-------------------
 1 file changed, 19 insertions(+), 19 deletions(-)

diff --git a/dlls/qedit/mediadet.c b/dlls/qedit/mediadet.c
index 392320560b..3c00a85b9e 100644
--- a/dlls/qedit/mediadet.c
+++ b/dlls/qedit/mediadet.c
@@ -103,6 +103,24 @@ static HRESULT get_filter_info(IMoniker *moniker, GUID *clsid, VARIANT *var)
     return hr;
 }
 
+static HRESULT get_pin_media_type(IPin *pin, AM_MEDIA_TYPE *out)
+{
+    IEnumMediaTypes *enummt;
+    AM_MEDIA_TYPE *pmt;
+    HRESULT hr;
+
+    if (FAILED(hr = IPin_EnumMediaTypes(pin, &enummt)))
+        return hr;
+    hr = IEnumMediaTypes_Next(enummt, 1, &pmt, NULL);
+    IEnumMediaTypes_Release(enummt);
+    if (hr != S_OK)
+        return E_NOINTERFACE;
+
+    *out = *pmt;
+    CoTaskMemFree(pmt);
+    return S_OK;
+}
+
 static HRESULT find_splitter(MediaDetImpl *detector)
 {
     IPin *source_pin, *splitter_pin;
@@ -611,9 +629,6 @@ static HRESULT WINAPI MediaDet_get_StreamMediaType(IMediaDet* iface,
                                                    AM_MEDIA_TYPE *pVal)
 {
     MediaDetImpl *This = impl_from_IMediaDet(iface);
-    IEnumMediaTypes *types;
-    AM_MEDIA_TYPE *pmt;
-    HRESULT hr;
 
     TRACE("(%p)\n", This);
 
@@ -623,22 +638,7 @@ static HRESULT WINAPI MediaDet_get_StreamMediaType(IMediaDet* iface,
     if (!This->cur_pin)
         return E_INVALIDARG;
 
-    hr = IPin_EnumMediaTypes(This->cur_pin, &types);
-    if (SUCCEEDED(hr))
-    {
-        hr = (IEnumMediaTypes_Next(types, 1, &pmt, NULL) == S_OK
-              ? S_OK
-              : E_NOINTERFACE);
-        IEnumMediaTypes_Release(types);
-    }
-
-    if (SUCCEEDED(hr))
-    {
-        *pVal = *pmt;
-        CoTaskMemFree(pmt);
-    }
-
-    return hr;
+    return get_pin_media_type(This->cur_pin, pVal);
 }
 
 static HRESULT WINAPI MediaDet_GetSampleGrabber(IMediaDet* iface,




More information about the wine-cvs mailing list