атрибут MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES
Указывает, перечисляет ли загрузчик топологии типы носителей, предоставляемые источником мультимедиа.
Тип данных
UINT32
Используйте одно из следующих значений.
Значение | Значение |
---|---|
|
Не перечисляйте исходные типы носителей. |
|
Перечисление типов исходных носителей. |
Get/set
Чтобы получить этот атрибут, вызовите МВФAttributes::GetUINT32.
Чтобы задать этот атрибут, вызовите МВФAttributes::SetUINT32.
Относится к
Замечания
Каждый поток в источнике мультимедиа может предлагать несколько типов мультимедиа. Список типов перечисляется через интерфейс IMFMediaTypeHandler в дескрипторе потока.
Порядок, в котором загрузчик топологии пытается использовать типы носителей источника мультимедиа, управляются двумя атрибутами:
- Атрибут MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES топологии.
- Атрибут MF_TOPONODE_CONNECT_METHOD на исходном узле.
Если атрибут MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES имеет значение FALSE или не задан, загрузчик топологии использует текущий тип носителя потока. Он не перечисляет список возможных типов. Если текущий тип носителя несовместим с нисходящим узлом топологии и не найден сочетания декодеров и преобразователей, разрешение топологии завершается ошибкой.
Если атрибут MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES имеет значение TRUE, загрузчик топологии перечисляет типы носителей источника, пока не будет найден совместимый тип. В этом случае точный порядок операций зависит от того, включает ли MF_TOPONODE_CONNECT_METHOD атрибут на исходном узле флаг MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES.
Если MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES имеет значение TRUE , а флаг MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES задан, загрузчик топологии исчерпает каждый тип носителя перед переходом к следующему, как показано ниже.
foreach media type T
connect directly using T
if failed, connect with converters using T
if failed, connect with decoders using T
Если MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES имеет значение TRUE , но MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES не задано, загрузчик топологии пытается установить прямое соединение с каждым типом мультимедиа, а затем пытается использовать каждый тип мультимедиа с декодировщиками:
foreach media type T
connect directly using T
if failed,
foreach media type T
connect with converters using T
if failed
foreach media type T
connect with decoders using T
Если MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES имеет значение FALSE, флаг MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES игнорируется.
Значение по умолчанию MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES равно FALSE для совместимости с существующими приложениями.
Константу GUID для этого атрибута экспортируется из mfuuid.lib.
Пример
Ниже приведен пример, демонстрирующий флаг MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES . Предположим, что топология имеет атрибут MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES значение TRUE.
Источник мультимедиа предлагает следующие типы:
- T1, T2, T3
Приемник мультимедиа принимает следующие типы:
- T3, T4
Вариант 1. Установлен флаг MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES .
- Загрузчик топологии пытается установить прямое подключение к T1. Приемник отклоняет T1.
- Загрузчик топологии вставляет декодирования, который принимает T1 и выводит T4. Приемник принимает T4.
- Окончательная топология содержит: источник мультимедиа → декодатор → приемника мультимедиа.
Случай 2. Флаг не задан.
- Загрузчик топологии пытается установить прямое подключение к T1. Приемник отклоняет T1.
- Загрузчик топологии пытается установить прямое подключение к T2. Приемник отклоняет T2.
- Загрузчик топологии пытается подключиться к T3 напрямую. Приемник принимает T3.
- Последняя топология содержит: источник мультимедиа → приемник мультимедиа.
Requirements
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 7 [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 R2 [только классические приложения] |
Верхний колонтитул |
|
См. также