Commit c6f0124e authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

mf: Pass start and flush messages to transform nodes.

parent 7454ac9c
...@@ -1827,6 +1827,12 @@ static HRESULT session_start_clock(struct media_session *session) ...@@ -1827,6 +1827,12 @@ static HRESULT session_start_clock(struct media_session *session)
struct topo_node *node; struct topo_node *node;
HRESULT hr; HRESULT hr;
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);
}
if (!(session->presentation.flags & SESSION_FLAG_SINKS_SUBSCRIBED)) if (!(session->presentation.flags & SESSION_FLAG_SINKS_SUBSCRIBED))
{ {
LIST_FOR_EACH_ENTRY(sink, &session->presentation.sinks, struct media_sink, entry) LIST_FOR_EACH_ENTRY(sink, &session->presentation.sinks, struct media_sink, entry)
...@@ -1968,8 +1974,17 @@ static void session_set_source_object_state(struct media_session *session, IUnkn ...@@ -1968,8 +1974,17 @@ static void session_set_source_object_state(struct media_session *session, IUnkn
LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry) LIST_FOR_EACH_ENTRY(node, &session->presentation.nodes, struct topo_node, entry)
{ {
if (node->type == MF_TOPOLOGY_OUTPUT_NODE) switch (node->type)
IMFStreamSink_Flush(node->object.sink_stream); {
case MF_TOPOLOGY_OUTPUT_NODE:
IMFStreamSink_Flush(node->object.sink_stream);
break;
case MF_TOPOLOGY_TRANSFORM_NODE:
IMFTransform_ProcessMessage(node->object.transform, MFT_MESSAGE_COMMAND_FLUSH, 0);
break;
default:
;
}
} }
session_set_caps(session, session->caps & ~MFSESSIONCAP_PAUSE); session_set_caps(session, session->caps & ~MFSESSIONCAP_PAUSE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment