Rémi Bernon : mf: Only allow converter connection if decoder didn't accept down type.

Alexandre Julliard julliard at winehq.org
Tue Aug 16 16:00:59 CDT 2022


Module: wine
Branch: master
Commit: 826a9ce1ab55879b905e915101f05c1f2a51d219
URL:    https://gitlab.winehq.org/wine/wine/-/commit/826a9ce1ab55879b905e915101f05c1f2a51d219

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Thu Aug 11 13:53:15 2022 +0200

mf: Only allow converter connection if decoder didn't accept down type.

---

 dlls/mf/topology_loader.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/dlls/mf/topology_loader.c b/dlls/mf/topology_loader.c
index 09fb9322261..4560e3a578d 100644
--- a/dlls/mf/topology_loader.c
+++ b/dlls/mf/topology_loader.c
@@ -281,8 +281,13 @@ static HRESULT topology_branch_connect_indirect(IMFTopology *topology, MF_CONNEC
 
     if (FAILED(hr = MFCreateTopologyNode(MF_TOPOLOGY_TRANSFORM_NODE, &node)))
         return hr;
-    if (decoder)
+    if (!decoder)
+        method_mask = MF_CONNECT_DIRECT;
+    else
+    {
         IMFTopologyNode_SetUINT32(node, &MF_TOPONODE_DECODER, 1);
+        method_mask = MF_CONNECT_ALLOW_CONVERTER;
+    }
 
     if (FAILED(hr = MFTEnumEx(category, MFT_ENUM_FLAG_ALL, &input_info, decoder ? NULL : &output_info, &activates, &count)))
         return hr;
@@ -307,11 +312,13 @@ static HRESULT topology_branch_connect_indirect(IMFTopology *topology, MF_CONNEC
                 hr = topology_branch_fill_media_type(up_type, down_type);
             if (SUCCEEDED(hr))
                 hr = IMFTransform_SetOutputType(transform, 0, down_type, 0);
+            if (SUCCEEDED(hr))
+                method_mask = MF_CONNECT_DIRECT;
         }
         IMFTransform_Release(transform);
 
         if (SUCCEEDED(hr))
-            hr = topology_branch_connect(topology, decoder ? MF_CONNECT_ALLOW_CONVERTER : MF_CONNECT_DIRECT, &down_branch);
+            hr = topology_branch_connect(topology, method_mask, &down_branch);
         if (SUCCEEDED(hr))
             hr = IMFTopology_AddNode(topology, node);
         if (SUCCEEDED(hr))




More information about the wine-cvs mailing list