Konfigurieren von Dateneinheitserweiterung en

In ASF-Dateien geschriebene Beispiele können neben den Medienbeispielen selbst zusätzliche Informationen enthalten. Diese Informationen werden mithilfe von Dateneinheitenerweiterungen eingeschlossen. Weitere Informationen zu Dateneinheitenerweiterungen finden Sie unter Dateneinheitenerweiterungen.

Um Dateneinheitenerweiterungen zu verwenden, müssen Sie den Datenstrom im Profil so konfigurieren, dass er sie akzeptiert. Führen Sie die folgenden Schritte aus, um eine Dateneinheitenerweiterung für einen Stream zu konfigurieren.

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

Sie können alle Derzeit für einen Stream registrierten Datentypen für Dateneinheitenerweiterungen untersuchen, indem Sie IWMStreamConfig2::GetDataUnitExtensionCount aufrufen, um die Anzahl der registrierten Datentypen für Dateneinheitenerweiterungen abzurufen. Anschließend können Sie alle Typen durchlaufen, indem Sie jeweils Aufrufe von IWMStreamConfig2::GetDataUnitExtension verwenden.

Dateneinheitenerweiterungen wird eine Größe zugewiesen, wenn sie für einen Stream konfiguriert sind. Viele Systeme für Dateneinheitenerweiterungen verwenden Daten mit konstanter Größe (in der Regel eine Struktur). Sie können ihre Dateneinheitenerweiterungen jedoch auch so konfigurieren, dass sie eine variable Größe aufweisen, indem Sie die Größe auf 0xFFFF festlegen. Jede zur Codierungszeit zugewiesene Dateneinheitenerweiterung kann dann eine beliebige Größe zwischen 1 Byte und 65.534 Bytes aufweisen. Dateneinheitenerweiterungen mit variabler Größe werden auch als dynamische Dateneinheiterweiterungen bezeichnet.

Der Vorteil der Verwendung dynamischer Dateneinheitenerweiterungen besteht darin, dass Sie Erweiterungsdaten nach Bedarf anfügen können. Wenn Sie eine Dateneinheitenerweiterung mit einer festgelegten Größe definieren, muss jede Stichprobe für den Stream Erweiterungsdaten dieser Größe enthalten, auch wenn sie für einige Beispiele keine Daten haben. Mit dynamischen Dateneinheitenerweiterungen können Sie Dateneinheiterweiterungen aus einigen Beispielen weglassen, wodurch Speicherplatz gespart wird und die Bandbreitenanforderungen reduziert werden. Wenn Dateneinheiterweiterungen 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 nicht böswillige Verzerrung des Bitdatenstroms.

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

Konfigurieren von Streams