Расширенное построение топологии

В этом разделе описываются некоторые расширенные методы создания топологий. Эти методы можно использовать, если требуется более полный контроль над топологиями, отправляемыми в сеанс мультимедиа.

Так как эти методы предназначены для сценариев, выходящих за рамки функциональных возможностей стандартного загрузчика топологии, многие сведения будут зависеть от конкретных требований приложения. Таким образом, этот раздел слабо организован вокруг небольших подзадач, а не полных комплексных сценариев.

Обычное приложение воспроизведения выполняет следующие действия:

  1. Приложение создает частичную топологию и помещает ее в очередь в сеансе мультимедиа.
  2. Сеанс мультимедиа вызывает загрузчик топологии для разрешения топологии.

Если вы хотите выйти за рамки возможностей загрузчика топологии, существует три основных подхода:

  • Создайте полную топологию. При постановке топологии в очередь в сеансе мультимедиа вызовите IMFMediaSession::SetTopology с флагом MFSESSION_SETTOPOLOGY_NORESOLUTION. Этот флаг предотвращает попытку сеанса мультимедиа разрешить топологию.

  • Напрямую вызовите загрузчик топологии для разрешения топологии. Затем можно изменить полную топологию перед постановкой в очередь в сеансе мультимедиа.

  • Реализация пользовательского загрузчика топологии. При таком подходе вы помещаете в очередь частичную топологию, но сеанс мультимедиа вызывает пользовательский загрузчик вместо стандартной реализации Media Foundation. Одним из преимуществ этого подхода является то, что вы можете выполнять настраиваемую топологию в защищенной среде. (Однако в этом случае загрузчик топологии должен быть доверенным компонентом. Дополнительные сведения см. в разделе Путь к защищенному носителю.)

Этот раздел содержит следующие подразделы.

Раздел Описание
Пользовательские загрузчики топологии Как предоставить пользовательскую реализацию IMFTopoLoader для сеанса мультимедиа.
Привязка выходных узлов к приемникам мультимедиа Как подготовить выходные узлы в топологии, если используется загрузчик топологии вне сеанса мультимедиа.
Добавление декодера в топологию Как вручную выбрать декодер и добавить его в топологию.

 

Топологии