Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
+static HRESULT sink_node_update_input_type(struct topo_node *topo_node, IMFMediaType *media_type) +{ + IMFMediaTypeHandler *handler; + HRESULT hr; + + if (FAILED(hr = IMFStreamSink_GetMediaTypeHandler(topo_node->object.sink_stream, &handler))) + { + WARN("Failed to get type handler, hr %#lx.\n", hr); + return hr; + } + if (FAILED(hr = IMFMediaTypeHandler_SetCurrentMediaType(handler, media_type))) + WARN("Failed to set type, hr %#lx.\n", hr); + IMFMediaTypeHandler_Release(handler); + + return hr; +} This could be reduce to 3 lines with topology_node_get_type_handler() - _get_() -> SetCurrentMediaType() -> Release(). It will be short enough to avoid another helper.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/8933#note_118862