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 einer, der das Format des Mediendatenstroms vollständig definiert. Bei einem vollständigen Medientyp kann eine Pipelinekomponente die dem Medientyp zugeordneten Datenstromdaten 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 nicht komprimierte Typattribute für den komprimierten Stream bekannt sind, sollten diese Werte in den Medientyp für den komprimierten Stream aufgenommen werden. Wenn beispielsweise die Framegröße bekannt ist, legen Sie das attribut MF_MT_FRAME_SIZE für den Medientyp fest, obwohl technisch gesehen ein komprimierter Stream keine Framegröße aufweist.

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 unet lassen, um anzugeben, dass sie jeden Wert verarbeiten kann. Beispielsweise kann ein Videoprozessor das attribut MF_MT_FRAME_RATE nicht festgelegt lassen, um anzugeben, dass er jede Bildfrequenz verarbeiten kann, und führt bei Bedarf eine Bildfrequenzkonvertierung durch.

Wenn Sie einen Teilmedientyp erstellen, sollten Sie trotzdem so viele Informationen wie bekannt einschließen. Ein Medientyp darf jedoch keine informationen enthalten, die unsicher sind. Es ist besser, dass Informationen fehlen als falsch.

Ein partieller Medientyp sollte mindestens nur 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, kann ein Encoder einen partiellen Eingabetyp bereitstellen.

Medientypen