Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
}
+ if (session->state == SESSION_STATE_STARTED) + { + struct topo_node *node; + + LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry) + { + if (node->type == MF_TOPOLOGY_OUTPUT_NODE) + IMFStreamSink_Flush(node->object.sink_stream); + else if (node->type == MF_TOPOLOGY_TRANSFORM_NODE) + IMFTransform_ProcessMessage(node->object.transform, MFT_MESSAGE_COMMAND_FLUSH, 0); + } + + session_set_source_output_nodes_seeking(session); + }
There is a similar block for SESSION_STATE_STOPPING_SOURCES. If we really need to flush on seek, this should go to some helper. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3572#note_42292