Rémi Bernon (@rbernon) commented about dlls/mf/topology_loader.c:
if (SUCCEEDED(hr = IMFMediaTypeHandler_GetCurrentMediaType(branch->down.handler, &down_type))) { - if (topology_node_get_type(branch->down.node) != MF_TOPOLOGY_OUTPUT_NODE + if ((topology_node_get_type(branch->down.node) != MF_TOPOLOGY_OUTPUT_NODE || IMFMediaType_IsEqual(up_type, down_type, &flags) == S_OK) + && SUCCEEDED(hr = IMFMediaTypeHandler_IsMediaTypeSupported(branch->down.handler, down_type, NULL))) hr = topology_branch_connect_with_type(topology, branch, up_type);
We're about to connect with `up_type` here, shouldn't we rather call `IMFMediaTypeHandler_IsMediaTypeSupported` with it? Also I think it could instead be called in `topology_branch_connect_with_type`, before `IMFMediaTypeHandler_SetCurrentMediaType`, keeping the if a bit simpler here. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10645#note_136469