データ ユニット拡張機能の構成
ASF ファイルに書き込まれたサンプルには、メディア サンプル自体とは別に追加情報を含めることができます。 この情報は、データ ユニット拡張機能を使用して含まれます。 データユニット拡張機能の詳細については、「 Data Unit Extensions」を参照してください。
データ ユニット拡張機能を使用するには、受け入れるようにプロファイル内のストリームを構成する必要があります。 ストリームのデータ ユニット拡張機能を構成するには、次の手順を実行します。
- IWMStreamConfig の QueryInterface メソッドを呼び出して、IWMStreamConfig2 インターフェイスへのポインターを取得します。
- IWMStreamConfig2::AddDataUnitExtension を呼び出して、ストリームのデータユニット拡張機能の種類を登録します。
IWMStreamConfig2::GetDataUnitExtensionCount を呼び出して、登録されているデータ ユニット拡張機能の種類の数を取得することで、ストリームに現在登録されているすべてのデータユニット拡張機能の種類を調べることができます。 その後、それぞれに対して IWMStreamConfig2::GetDataUnitExtension の呼び出しを使用して、すべての型をループ処理できます。
データ ユニット拡張機能には、ストリーム用に構成されている場合にサイズが割り当てられます。 多くのデータユニット拡張システムでは、一定のサイズ (通常は構造体) であるデータが使用されます。 ただし、サイズを 0xFFFF に設定することで、データ ユニット拡張機能を可変サイズに構成することもできます。 エンコード時に割り当てられる各データ単位拡張は、1 バイトから 65534 バイトまでの任意のサイズにすることができます。 可変サイズのデータ ユニット拡張機能は、動的データ ユニット拡張機能とも呼ばれます。
動的データ ユニット拡張機能を使用する利点は、必要に応じて拡張機能データをアタッチできることです。 サイズが設定されたデータユニット拡張を定義する場合、一部のサンプルのデータがない場合でも、ストリームのすべてのサンプルには、そのサイズの拡張データが含まれている必要があります。 動的データ ユニット拡張機能を使用すると、一部のサンプルからデータユニット拡張機能を省略できます。これにより、領域が節約され、帯域幅の要件が削減されます。 ただし、データユニット拡張が可変サイズの場合、読み取りオブジェクトは、受信した拡張データを静的サイズと照合できません。 受信する拡張データが有効であり、ビット ストリームの悪意のある歪みではないことを確認する必要があります。
INSSBuffer3::SetProperty メソッドを使用して、個々のデータ ユニット拡張機能をサンプルに設定する必要があります。 詳細については、「 データ ユニット拡張機能の設定」を参照してください。
関連トピック