[PATCH 6/7] mf/topoloader: Set MF_TOPONODE_MEDIASTART for all source nodes.
Nikolay Sivov
nsivov at codeweavers.com
Tue Dec 1 06:16:28 CST 2020
Signed-off-by: Nikolay Sivov <nsivov at 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);
}
--
2.29.2
More information about the wine-devel
mailing list