Konfigurieren von Codec-DMOs

In diesem Thema wird der Prozess der Konfiguration der Codec-DMOs beschrieben. Jeder Codec verfügt über bestimmte Verfahren, aber die informationen, die allen gemeinsam sind, werden hier beschrieben.

Konfigurieren DMO Eingaben und Ausgaben

Jede DMO unterstützt bestimmte Eingabe- und Ausgabetypen. Sie können unterstützte Typen für Eingaben und Ausgaben abrufen, indem Sie IMediaObject::GetInputType für Eingaben und IMediaObject::GetOutputType für Ausgaben aufrufen. Sie können die unterstützten Formate aufzählen, indem Sie wiederholte Aufrufe an beide Methoden vornehmen und den Typindex mit jedem Aufruf erhöhen. Wenn der Index den des letzten unterstützten Typs überschreitet, gibt der Aufruf DMO _ E NO MORE ITEMS _ _ _ zurück.

Für die Videocodecs wird nur ein Ausgabetyp oder Eingabetyp für einen bestimmten Medienuntertyp aufzählt. Für die Audiocodecs wird jeder einzelne unterstützte Typ aufzählt. Weitere Informationen zu unterstützten Typen für einzelne Codecs finden Sie unter Working with Audio (Arbeiten mit Audio) und Working with Video (Arbeiten mit Video).

Nachdem Sie die Medientypen für die Eingabe- und Ausgabestreams konfiguriert haben, legen Sie sie fest, indem Sie IMediaObject::SetInputType bzw. IMediaObject::SetOutputType aufrufen. Beide Methoden geben DMO _ E TYPE NOT _ ACCEPTED _ _ zurück, wenn der angegebene Typ ungültig ist.

Konfigurieren der Codec-DMOs für die Codierung

Alle Windows Medienaudio- und Videocodecs unterstützen eine Vielzahl von Codierungsfunktionen. Diese Features werden im Allgemeinen konfiguriert, indem Eigenschaften auf dem DMO mithilfe der Methoden der IPropertyBag-Schnittstelle festgelegt werden. Einige Eigenschaften werden mit speziellen Codecschnittstellen konfiguriert. Diese Schnittstellen sind für jeden Codec im Abschnitt CodecObjekteaufgeführt.

Die allgemeine Reihenfolge der Vorgänge zum Konfigurieren einer Codierungs-DMO lautet wie folgt:

  1. Konfigurieren Sie Codecfunktionen wie gewünscht mithilfe der Methoden von IPropertyBag.
  2. Verwenden Sie den Codec DMO Schnittstellen, um bei Bedarf zusätzliche Features zu konfigurieren.
  3. Konfigurieren Sie die Eingabe- und Ausgabetypen. Die Reihenfolge, in der die Typen konfiguriert werden sollen, variiert für einzelne Codecs. Weitere Informationen finden Sie unter Working with Audio (Arbeiten mit Audio) und Working with Video (Arbeiten mit Video).

Konfigurieren der Codec-DMOs für die Decodierung

Die Decodierung ist einfacher als die Codierung, da weniger Decoderfeatures unterstützt werden.

Die allgemeine Reihenfolge der Vorgänge zum Konfigurieren eines Decodierungs-DMO lautet wie folgt:

  1. Konfigurieren Sie Decoderfeatures wie gewünscht mithilfe der Methoden von IPropertyBag.
  2. Legen Sie den Eingabetyp auf den Typ fest, der für die Encoderausgabe verwendet wird.
  3. Konfigurieren Sie den Ausgabetyp. Die unterstützten Ausgabetypen unterscheiden sich für verschiedene Eingaben.

Hinweis

Es ist wichtig, für die Decodereingabe denselben Medientyp wie für die Encoderausgabe zu verwenden. Dies liegt daran, dass die Windows Medienaudio- und Videocodecs Medienformate mit zusätzlichen Daten verwenden. Diese Daten werden an die Struktur angefügt, auf die der pbFormat-Member der DMO MEDIA _ _ TYPE-Struktur zeigt (normalerweise VIDEOINFOHEADER oder WAVEFORMATEX). Bei einigen Typen sind die zusätzlichen Daten Teil des Enumerationsausgabetyps des Encoders. Bei anderen Typen müssen Sie diese Daten manuell anfügen. Ohne die erweiterten Formatdaten können Sie den komprimierten Inhalt nicht decodieren.

Arbeiten mit Codec-DMOs