Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
+ + for (i = 0; video_effects && i < engine->effects.video_effects_count; ++i) + { + IMFTopology_AddNode(topology, video_effects[i]); + if (i > 0) + IMFTopologyNode_ConnectOutput(video_effects[i - 1], 0, video_effects[i], 0); + } + + if (video_effects) + { + IMFTopologyNode_ConnectOutput(video_src, 0, video_effects[0], 0); + IMFTopologyNode_ConnectOutput(video_effects[engine->effects.video_effects_count - 1], 0, grabber_node, 0); + } + else + IMFTopologyNode_ConnectOutput(video_src, 0, grabber_node, 0); } You could create effect nodes one by one inside this loop. No need to check for video_effects != NULL.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2778#note_35734