This section describes some advanced techniques for building topologies. You can use these techniques if you want more control over the topologies that you send to the Media Session.
Because these techniques are intended for scenarios that go beyond the functionality provided by the standard topology loader, many of the details will depend on the particular requirements of your application. Therefore, this section is organized loosely around smaller subtasks, rather than complete, end-to-end scenarios.
The typical playback application follows these steps:
The application builds a partial topology and queues it on the Media Session.
The Media Session invokes the topology loader to resolve the topology.
If you want to go beyond the capabilities of the topology loader, there are three general approaches:
Build a complete topology. When you queue the topology on the Media Session, call IMFMediaSession::SetTopology with the MFSESSION_SETTOPOLOGY_NORESOLUTION flag. This flag prevents the Media Session from attempting to resolve the topology.
Directly invoke the topology loader to resolve the topology. You can then modify the full topology before queuing it on the Media Session.
Implement a custom topology loader. With this approach, you queue a partial topology, but the Media Session invokes your custom loader instead of the standard Media Foundation implementation. One advantage of this approach is that you can perform custom topology building inside the protected environment. (In that case, however, the topology loader must be a trusted component. For more information, see Protected Media Path.)
Microsoft Teams relies on network connectivity, and for real-time voice, video, and sharing, good network performance is key to a good user experience. In this module, we go over what the Teams real-time network requirements are, how you can plan and test your network, and how you can design and configure your network to optimize the Teams real-time media performance.