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