On 4/23/20 6:28 AM, Sergio Gómez Del Real wrote:
diff --git a/dlls/mf/topology.c b/dlls/mf/topology.c index 0b4d734442..72cb6062cc 100644 --- a/dlls/mf/topology.c +++ b/dlls/mf/topology.c @@ -1926,6 +1926,9 @@ static HRESULT WINAPI topology_loader_Load(IMFTopoLoader *iface, IMFTopology *in if (current_topology) FIXME("Current topology instance is ignored.\n");
- if (!topology || topology->nodes.count < 2)
return MF_E_TOPO_UNSUPPORTED;
for (i = 0; i < topology->nodes.count; ++i) { struct topology_node *node = topology->nodes.nodes[i];
That would come naturally, if we did some kind of reduction of input topology, by removing dangling nodes and branches.
What's left should be connected, and have at least on input and one output, which gives you those two nodes. Just two input nodes, or dangling branches will contribute to node count, but are still invalid. As I remember it actually does remove disconnected pieces, and the rest is resolved.
So the point is, we could do some extra steps that we'll need anyway - reduce, identify those edges/connection pairs, and if you got no pairs to resolves that's your TOPO_UNSUPPORTED condition.