Konfigurieren von Dateneinheitserweiterung en

Beispiele, die in ASF-Dateien geschrieben werden, können neben den Medienbeispielen selbst zusätzliche Informationen enthalten. Diese Informationen werden mithilfe von Dateneinheitserweiterungen bereitgestellt. Weitere Informationen zu Dateneinheitserweiterungen finden Sie unter Dateneinheitserweiterungen.

Um Dateneinheitserweiterungen verwenden zu können, müssen Sie den Stream im Profil so konfigurieren, dass sie akzeptiert werden. Führen Sie die folgenden Schritte aus, um eine Dateneinheitserweiterung für einen Stream zu konfigurieren.

  1. Rufen Sie einen Zeiger auf die IWMStreamConfig2-Schnittstelle ab, indem Sie die QueryInterface-Methode von IWMStreamConfig aufrufen.
  2. Rufen Sie IWMStreamConfig2::AddDataUnitExtension auf, um einen Typ der Dateneinheitserweiterung für den Stream zu registrieren.

Sie können alle Dateneinheitserweiterungstypen untersuchen, die derzeit für einen Stream registriert sind, indem Sie IWMStreamConfig2::GetDataUnitExtensionCount aufrufen, um die Anzahl der registrierten Datentypenerweiterungstypen abzurufen. Anschließend können Sie alle Typen durchlaufen, indem Sie jeweils IWMStreamConfig2::GetDataUnitExtension aufrufen.

Dateneinheitserweiterungen werden bei der Konfiguration für einen Stream eine Größe zugewiesen. Viele Dateneinheitserweiterungssysteme verwenden Daten mit einer konstanten Größe (in der Regel eine -Struktur). Sie können ihre Dateneinheitserweiterungen jedoch auch so konfigurieren, dass sie eine variable Größe aufweisen, indem Sie die Größe auf 0xFFFF festlegen. Jede zum Codierungszeitpunkt zugewiesene Dateneinheitserweiterung kann dann eine beliebige Größe zwischen 1 Byte und 65534 Byte aufweisen. Dateneinheitenerweiterungen mit unterschiedlicher Größe werden auch als dynamische Dateneinheitserweiterungen bezeichnet.

Der Vorteil der Verwendung dynamischer Dateneinheitserweiterungen besteht darin, dass Sie Erweiterungsdaten nach Bedarf anfügen können. Wenn Sie eine Dateneinheitserweiterung mit einer festgelegten Größe definieren, muss jedes Beispiel für den Stream Erweiterungsdaten dieser Größe enthalten, auch wenn für einige Beispiele keine Daten vorhanden sind. Mit dynamischen Dateneinheitserweiterungen können Sie Dateneinheitserweiterungen in einigen Beispielen weglassen, was Platz spart und den Bandbreitenbedarf reduziert. Wenn dateneinheitserweiterungen jedoch eine variable Größe aufweisen, kann das Leseobjekt die empfangenen Erweiterungsdaten nicht anhand einer statischen Größe überprüfen. Sie müssen überprüfen, ob die empfangenen Erweiterungsdaten gültig sind und keine böswilligen Verzerrungen des Bitdatenstroms sind.

Einzelne Dateneinheitserweiterungen müssen für Beispiele mithilfe der INSSBuffer3::SetProperty-Methode festgelegt werden. Weitere Informationen finden Sie unter Festlegen von Dateneinheitserweiterungen.

Konfigurieren von Streams