Freigeben über


Attribut MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES

Gibt an, ob das Topologieladeprogramm die Medientypen auflistet, die von der Medienquelle bereitgestellt werden.

Datentyp

UINT32

Verwenden Sie einen der folgenden Werte:

Wert Bedeutung
FALSE
Die Quellmedientypen werden nicht aufgelistet.
TRUE
Die Quellmedientypen werden aufgelistet.

 

Get/set

Rufen Sie zum Abrufen dieses Attributs IMFAttributes::GetUINT32 auf.

Rufen Sie zum Festlegen dieses Attributs IMFAttributes::SetUINT32 auf.

Gilt für:

IMFTopology

Hinweise

Jeder Stream auf einer Medienquelle kann mehrere Medientyp bieten. Die Liste der Typen wird über die IMFMediaTypeHandler-Schnittstelle im Datenstromdeskriptor erstellt.

Die Reihenfolge, in der das Topologieladeprogramm die Medientypen einer Medienquelle ausprobiert, wird durch zwei Attribute gesteuert:

  • Das Attribut MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES für die Topologie.
  • Das Attribut MF_TOPONODE_CONNECT_METHOD auf dem Quellknoten.

Wenn das Attribut MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES auf FALSE festgelegt oder nicht festgelegt ist, verwendet das Topologieladeprogramm den aktuellen Medientyp des Streams. Die möglichen Typen werden nicht aufgelistet. Wenn der aktuelle Medientyp nicht mit dem nachgelagerten Topologieknoten kompatibel ist und keine Kombination von Decodern/Konvertern gefunden werden kann, schlägt die Topologieauflösung fehl.

Wenn das Attribut MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES auf TRUE festgelegt ist, listet das Topologieladeprogramm die Medientypen der Quelle auf, bis ein kompatibler Typ gefunden wird. In diesem Fall hängt die genaue Reihenfolge der Vorgänge davon ab, ob das Attribut MF_TOPONODE_CONNECT_METHOD auf dem Quellknoten das Flag MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES enthält.

Wenn MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES auf TRUE und das Flag MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES festgelegt ist, schöpft das Topologieladeprogramm alle Medientypen aus, bevor es zum nächsten wechselt:

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

Wenn MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES auf TRUE festgelegt ist, aber MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES nicht festgelegt ist, versucht das Topologieladeprogramm, eine direkte Verbindung mit jedem Medientyp herzustellen, und probiert dann jeden Medientyp mit Konvertern und schließlich jeden Medientyp mit Decodern:

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

Wenn MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES auf FALSE festgelegt ist, wird das Flag MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES ignoriert.

Der Standardwert von MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES ist aus Gründen der Kompatibilität mit vorhandenen Anwendungen FALSE.

Die GUID-Konstante für dieses Attribut wird aus „mfuuid.lib“ exportiert.

Beispiel

Hier ist ein Beispiel, das das Flag MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES veranschaulicht. Gehen Sie davon aus, dass das Attribut MF_TOPOLOGY_ENUMERATE_SOURCE_TYPES Attribut für die Topologie auf TRUE festgelegt ist.

Die Medienquelle bietet die folgenden Typen:

  • T1, T2, T3

Die Mediensenke akzeptiert die folgenden Typen:

  • T3, T4

Fall 1: Das Flag MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES ist festgelegt.

  1. Das Topologieladeprogramm versucht eine direkte Verbindung mit T1. Die Senke lehnt T1 ab.
  2. Das Topologieladeprogramm fügt einen Decoder ein, der T1 akzeptiert und T4 ausgibt. Die Senke akzeptiert T4.
  3. Die endgültige Topologie enthält Folgendes: Medienquelle → Decoder → Mediensenke.

Fall 2: Das Flag ist nicht festgelegt.

  1. Das Topologieladeprogramm versucht eine direkte Verbindung mit T1. Die Senke lehnt T1 ab.
  2. Das Topologieladeprogramm versucht eine direkte Verbindung mit T2. Die Senke lehnt T2 ab.
  3. Das Topologieladeprogramm versucht eine direkte Verbindung mit T3. Die Senke akzeptiert T3.
  4. Die endgültige Topologie enthält Folgendes: Medienquelle → Mediensenke.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 R2 [nur Desktop-Apps]
Header
Mfidl.h

Siehe auch

Alphabetische Liste der Media Foundation-Attribute

Topologieattribute