設定資料單位延伸模組
寫入 ASF 檔案的範例可以包含媒體範例本身以外的其他資訊。 這項資訊會使用資料單位延伸模組來包含。 如需資料單位延伸模組的詳細資訊,請參閱 資料單位延伸模組。
若要使用資料單位延伸模組,您必須在設定檔中設定資料流程以接受它們。 若要設定資料流程的資料單位延伸模組,請執行下列步驟。
- 呼叫IWMStreamConfig的QueryInterface方法,以取得IWMStreamConfig 介面的指標。
- 呼叫 IWMStreamConfig2::AddDataUnitExtension 來註冊資料流程的資料單位擴充類型。
您可以呼叫 IWMStreamConfig2::GetDataUnitExtensionCount 來擷取已註冊的資料單位延伸模組類型數目,以檢查目前為數據流註冊的所有資料單位擴充類型。 然後,您可以使用呼叫 IWMStreamConfig2::GetDataUnitExtension 來迴圈查看所有類型。
針對資料流程設定時,資料單位延伸模組會指派大小。 許多資料單位延伸系統會使用常數大小的資料, (通常是結構) 。 不過,您也可以將大小設定為0xFFFF,將資料單位延伸模組設定為可變大小。 然後,在編碼時間指派的每個資料單位延伸模組都可以是介於 1 位元組到 65534 個位元組之間的任何大小。 可變大小的資料單位延伸模組也稱為動態資料單位延伸模組。
使用動態資料單位延伸模組的優點是您可以視需要附加延伸模組資料。 如果您定義具有設定大小的資料單位延伸模組,則資料流程的每個樣本都必須包含該大小的延伸資料,即使您沒有某些樣本的資料也一樣。 使用動態資料單位延伸模組,您可以從某些範例省略資料單位延伸模組,以節省空間並減少頻寬需求。 不過,如果資料單位延伸模組的大小為可變大小,讀取物件就無法根據靜態大小來驗證接收的延伸模組資料。 您必須確認您收到的延伸模組資料有效,且不會惡意扭曲位資料流程。
必須使用 INSSBuffer3::SetProperty 方法,在範例上設定個別資料單位延伸模組。 如需詳細資訊,請參閱 設定資料單位延伸模組。
相關主題