Module: wine Branch: master Commit: 826a9ce1ab55879b905e915101f05c1f2a51d219 URL: https://gitlab.winehq.org/wine/wine/-/commit/826a9ce1ab55879b905e915101f05c1...
Author: Rémi Bernon rbernon@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))