Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
+static void session_request_sample(struct media_session *session, IMFStreamSink *sink_stream);
+static void session_restart_sinks(struct media_session *session) +{
- struct topo_node *node;
- LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry)
- {
if (node->type == MF_TOPOLOGY_OUTPUT_NODE)
{
session_request_sample(session, node->object.sink_stream);
IMFStreamSink_Flush(node->object.sink_stream);
}
- }
+}
This doesn't look right. Why would we pretend that sink requested anything? I don't see why this would be necessary or different comparing to a regular start sequence.
Also, helpers names are not great, restart is associated with a clock state. Those are more like flush+drop downstream requests.