Vollständige und teilweise Medientypen
In diesem Thema wird der Unterschied zwischen vollständigen Medientypen und partiellen Medientypen beschrieben.
Vollständige Medientypen
Ein vollständigen Medientyps ist eine, die das Format des Mediendatenstroms vollständig definiert. Angesichts eines vollständigen Medientyps kann eine Pipelinekomponente die mit dem Medientyp verknüpften Datenstromdaten ohne Mehrdeutigkeit analysieren.
Bei nicht komprimierten Formaten definieren die folgenden Themen die Attribute, die für einen vollständigen Medientyp erforderlich sind:
Bei komprimierten (oder codierten) Datenströmen wird die Definition eines vollständigen Medientyps durch den Codec definiert. Wenn jedoch nicht komprimierte Typattribute für den komprimierten Datenstrom bekannt sind, sollten diese Werte im Medientyp für den komprimierten Datenstrom enthalten sein. Wenn beispielsweise die Framegröße bekannt ist, legen Sie das attribut MF_MT_FRAME_SIZE für den Medientyp fest, auch wenn technisch gesehen kein komprimierter Datenstrom eine Framegröße aufweist.
Partielle Medientypen
Ein teilweise 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 festlegen, um anzugeben, dass ein beliebiger Wert verarbeitet werden kann. Beispielsweise kann ein Videoprozessor die MF_MT_FRAME_RATE Attribut nicht festgelegt lassen, um anzugeben, dass er eine beliebige Framerate verarbeiten kann, und führt bei Bedarf eine Bildfrequenzkonvertierung durch.
Wenn Sie einen partiellen Medientyp erstellen, sollten Sie immer noch so viele Informationen wie Sie wissen. Ein Medientyp darf jedoch keine Informationen enthalten, die unsicher sind. Es ist besser, dass Informationen fehlen als falsch.
Mindestens ein partieller Medientyp sollte 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.
Verwandte Themen