Compartilhar via


Atributo MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES

Especifica se o carregador de topologia enumera os tipos de mídia fornecidos pela fonte de mídia.

Tipo de dados

UINT32

Use um dos seguintes valores.

Valor Significado
FALSE
Não enumere os tipos de mídia de origem.
TRUE
Enumere os tipos de mídia de origem.

 

Obter/definir

Para obter esse atributo, chame IMFAttributes::GetUINT32.

Para definir esse atributo, chame IMFAttributes::SetUINT32.

Aplicável ao

IMFTopology

Comentários

Cada fluxo em uma fonte de mídia pode oferecer mais de um tipo de mídia. A lista de tipos é enumerada por meio da interface IMFMediaTypeHandler no descrito de fluxo.

A ordem em que o carregador de topologia tenta os tipos de mídia de uma fonte de mídia é controlada por dois atributos:

Se o atributo MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES for FALSE ou não estiver definido, o carregador de topologia usará o tipo de mídia atual do fluxo. Ele não enumera a lista de tipos possíveis. Se o tipo de mídia atual for incompatível com o nó de topologia downstream e nenhuma combinação de decodificadores/conversores puder ser encontrada, a resolução da topologia falhará.

Se o atributo MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES for TRUE, o carregador de topologia enumerará os tipos de mídia da origem até encontrar um tipo compatível. Nesse caso, a ordem exata das operações depende se o atributo MF_TOPONODE_CONNECT_METHOD no nó de origem inclui o sinalizador MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES.

Se MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES for TRUE e o sinalizador MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES estiver definido, o carregador de topologia esgotará cada tipo de mídia antes de passar para o próximo, da seguinte maneira:

foreach media type T
    connect directly using T
    if failed, connect with converters using T
    if failed, connect with decoders using T

Se MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES for TRUE mas MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES não estiver definido, o carregador de topologia tentará uma conexão direta com cada tipo de mídia, em seguida, tentará cada tipo de mídia com conversores e, finalmente, tentará cada tipo de mídia com decodificadores:

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

Se MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES for FALSE, o sinalizador MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES será ignorado.

O valor padrão de MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES é FALSE, para compatibilidade com aplicativos existentes.

A constante GUID para esse atributo é exportada de mfuuid.lib.

Exemplo

Aqui está um exemplo que ilustra o sinalizador MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES. Suponha que a topologia tenha o atributo MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES definido como TRUE.

A fonte de mídia oferece os seguintes tipos:

  • T1, T2, T3

O coletor de mídia aceita os seguintes tipos:

  • T3, T4

Caso 1: O sinalizador MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES está definido.

  1. O carregador de topologia tenta uma conexão direta com T1. O coletor rejeita T1.
  2. O carregador de topologia insere um decodificador que aceita T1 e gera T4. O coletor aceita T4.
  3. A topologia final contém: fonte de mídia → decodificador → coletor de mídia.

Caso 2: O sinalizador não está definido.

  1. O carregador de topologia tenta uma conexão direta com T1. O coletor rejeita T1.
  2. O carregador de topologia tenta uma conexão direta com T2. O coletor rejeita T2.
  3. O carregador de topologia tenta uma conexão direta com T3. O coletor aceita T3.
  4. A topologia final contém: fonte de mídia → coletor de mídia.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Cabeçalho
Mfidl.h

Confira também

Lista alfabética de atributos da Media Foundation

Atributos de topologia