Vollständige und partielle Medientypen
In diesem Thema wird der Unterschied zwischen vollständigen Medientypen und partiellen Medientypen beschrieben.
Vollständige Medientypen
Ein vollständiger Medientyp ist ein Medientyp, der das Format des Medienstreams vollständig definiert. Bei einem vollständigen Medientyp kann eine Pipelinekomponente die stream-Daten, die dem Medientyp zugeordnet sind, ohne Mehrdeutigkeit analysieren.
Für nicht komprimierte Formate definieren die folgenden Themen die Attribute, die für einen vollständigen Medientyp erforderlich sind:
Bei komprimierten (oder codierten) Streams wird die Definition eines vollständigen Medientyps durch den Codec definiert. Wenn jedoch unkomprimierte Typattribute für den komprimierten Stream bekannt sind, sollten diese Werte im Medientyp für den komprimierten Stream enthalten sein. Wenn z. B. die Framegröße bekannt ist, legen Sie das MF _ MT FRAME _ _ SIZE-Attribut für den Medientyp fest, obwohl technisch gesehen ein komprimierter Stream keine Framegröße hat.
Partielle Medientypen
Einem partiellen Medientyp fehlt mindestens eines der Attribute, die für einen vollständigen Medientyp erforderlich sind. Beim Aufzählen möglicher Medientypen kann eine Microsoft Media Foundation Komponente einen Wert nicht angeben, um anzugeben, dass sie einen beliebigen Wert verarbeiten kann. Beispielsweise kann ein Videoprozessor das MF _ MT FRAME _ _ RATE-Attribut nicht angeben, um anzugeben, dass er jede Bildfrequenz verarbeiten kann, und bei Bedarf eine Bildfrequenzkonvertierung durchführen.
Wenn Sie einen partiellen Medientyp erstellen, sollten Sie immer noch so viele Informationen wie Sie wissen einschließen. Ein Medientyp darf jedoch keine unsicheren Informationen enthalten. Es ist besser, wenn Informationen fehlen als falsch.
Ein partieller Medientyp sollte mindestens zwei Attribute enthalten: MF _ MT MAJOR _ _ TYPE und MF MT _ _ SUBTYPE.
Manchmal müssen Media Foundation Komponenten vollständige Medientypen bereitstellen:
- Medienquellen müssen vollständige Ausgabetypen bereitstellen.
- Decoder müssen vollständige Ausgabetypen bereitstellen, nachdem der Eingabetyp festgelegt wurde. Bevor der Eingabetyp festgelegt wird, kann ein Decoder einen partiellen Ausgabetyp bereitstellen.
- Encoder müssen vollständige Eingabetypen bereitstellen, nachdem der Ausgabetyp festgelegt wurde. Bevor der Ausgabetyp festgelegt wird, stellt ein Encoder möglicherweise einen partiellen Eingabetyp bereit.