Share via


AVStream 中的資料範圍交集

資料格式是描述連線某些層面的單一參數集。 例如,音訊資料格式可能會在每秒 X 樣本和每個樣本的 Y 位指定特定格式的音訊。

資料範圍會指定有效的參數序列。 例如,音訊資料範圍可以在每個樣本的 A-B 樣本和每個樣本的 CD 位指定特定格式的音訊。

minidriver 提供它支援之對應KSPIN_DESCRIPTOR結構之 DataRanges成員中特定針腳的資料範圍清單。

在 AVStream 中,minidrivers 可以在KSPIN_DESCRIPTOR_EXIntersectHandler成員中提供迷你driver 提供的回呼常式指標,以提供自己的資料範圍交集處理常式。 若要讓 AVStream 與範圍交集,請將此成員設定為 Null。 請參閱 AVStrMiniIntersectHandlerEx 以瞭解如何定義回呼常式。

如果 minidriver 提供交集處理常式,則當需要建立交集時,minidriver 會收到兩個符合主要類型、子格式和規範的資料範圍。 此外,資料範圍的必要屬性相符。

如果AVStrMiniIntersectHandlerEx回呼常式的Data參數中提供了範圍交集和足夠的緩衝區空間,則交集常式會選擇交集格式,並將它傳回給Data所指向之緩衝區中的呼叫端。

如果兩個數據範圍沒有交集,處理常式會傳回STATUS_NO_MATCH。

如果 minidriver 已指定 AVStrMiniPinSetDataFormat 分派,則 AVStream 會呼叫此分派,通知迷你驅動程式 AVStream 正在釘選上設定特定格式。 在KSPIN_DISPATCH結構的SetDataFormat成員中,提供AVStrMiniPinSetDataFormat回呼常式的指標。 (屬於 資料流程類別 用戶端的 Minidrivers 接收 SRB_SET_DATA_FORMAT ,而不是 AVStrMiniPinSetDataFormat.)

minidriver 可以從 AVStrMiniPinSetDataFormat傳回STATUS_NO_MATCH來拒絕建議的格式。

除了在釘選建立之前對 AVStrMiniPinSetDataFormat 的初始呼叫之外,您的 minidriver 還會收到第二個 AVStrMiniPinSetDataFormat 呼叫,再將針腳轉換為 RUN 狀態。 如果您的 AVStream 或資料流程類別用戶端是視訊擷取迷你驅動程式,而且您收到這類通知, 則此分派包含實際的介面參數。 可能的話,minidriver 不應該讓這個第二個格式變更失敗。 請勿假設會發生第二次分派呼叫。

minidriver 應該以上次成功 AVStrMiniPinSetDataFormat 分派中包含的任何格式來擷取資料。