Nikolay Sivov (@nsivov) commented about dlls/mf/session.c:
struct topo_node *node; HRESULT hr;
- LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry)
- if (!seeking) {
if (node->type == MF_TOPOLOGY_TRANSFORM_NODE)
IMFTransform_ProcessMessage(node->object.transform, MFT_MESSAGE_NOTIFY_START_OF_STREAM, 0);
LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry)
{
if (node->type == MF_TOPOLOGY_TRANSFORM_NODE)
IMFTransform_ProcessMessage(node->object.transform, MFT_MESSAGE_NOTIFY_START_OF_STREAM, 0);
}}
Maybe we should move this somewhere else then, instead of using more flags and conditions. For example does first Start() with non-zero position qualify as seeking, does it produce NOTIFY_START_OF_STREAM?