Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/mf/tests/mf.c | 8 ++++++++ dlls/mf/topology.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index c36a76d83bb..b2cb45668cb 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -2136,6 +2136,7 @@ static void test_topology_loader_evr(void) IMFTopoLoader *loader; IMFMediaSink *sink; WORD node_count; + UINT64 value64; HWND window; HRESULT hr;
@@ -2232,6 +2233,13 @@ todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); ok(!value, "Unexpected stream id %u.\n", value); } + else if (node_type == MF_TOPOLOGY_SOURCESTREAM_NODE) + { + value64 = 1; + hr = IMFTopologyNode_GetUINT64(node, &MF_TOPONODE_MEDIASTART, &value64); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + ok(!value64, "Unexpected value.\n"); + } }
IMFTopology_Release(full_topology); diff --git a/dlls/mf/topology.c b/dlls/mf/topology.c index 6f73bb859cd..825b9d538f3 100644 --- a/dlls/mf/topology.c +++ b/dlls/mf/topology.c @@ -2380,10 +2380,16 @@ static void topology_loader_resolve_complete(struct topoloader_context *context)
if (node_type == MF_TOPOLOGY_OUTPUT_NODE) { - /* Make sure MF_TOPONODE_STREAMID is set for all outputs. */ + /* Set MF_TOPONODE_STREAMID for all outputs. */ if (FAILED(IMFTopologyNode_GetItem(node, &MF_TOPONODE_STREAMID, NULL))) IMFTopologyNode_SetUINT32(node, &MF_TOPONODE_STREAMID, 0); } + else if (node_type == MF_TOPOLOGY_SOURCESTREAM_NODE) + { + /* Set MF_TOPONODE_MEDIASTART for all sources. */ + if (FAILED(IMFTopologyNode_GetItem(node, &MF_TOPONODE_MEDIASTART, NULL))) + IMFTopologyNode_SetUINT64(node, &MF_TOPONODE_MEDIASTART, 0); + }
IMFTopologyNode_Release(node); }