Rémi Bernon (@rbernon) commented about dlls/mf/topology_loader.c:
- { - hr = topology_branch_connect_down(topology, method_mask, branch, up_type); + + if (SUCCEEDED(hr = IMFMediaTypeHandler_GetCurrentMediaType(up_handler, &up_type))) IMFMediaType_Release(up_type); - } + branch->up.enumerate = FAILED(hr); + IMFMediaTypeHandler_Release(up_handler); }
+ if (FAILED(hr = topology_branch_connect_up_types(branch, &up_type)) && up_type) + hr = topology_branch_connect_down(topology, method_mask, branch, up_type); + + if (up_type) + IMFMediaType_Release(up_type); Aren't we basically reimplementing the `if (enumerate_source_types)` case here, when enumerate == TRUE? This should probably be using the existing code, fixing it if necessary, rather than adding another type enumeration logic.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10009#note_134335