IKsInterfaceHandler::KsProcessMediaSamples 方法 (ksproxy.h)
KsProcessMediaSamples 方法會處理媒體範例。
語法
HRESULT KsProcessMediaSamples(
[in] IKsDataTypeHandler *KsDataTypeHandler,
[in] IMediaSample **SampleList,
[in, out] PLONG SampleCount,
[in] KSIOOPERATION IoOperation,
[out] PKSSTREAM_SEGMENT *StreamSegment
);
參數
[in] KsDataTypeHandler
處理 SampleList 所列媒體類型的數據類型處理程式之 IKsDataTypeHandler 介面的指標。 此數據類型處理程式具有所要串流之媒體類型的特定資訊。
[in] SampleList
緩衝區的指標,其中包含要處理的媒體範例清單的 IMediaSample 介面指標陣列。
[in, out] SampleCount
一開始在 SampleList 清單中包含樣本數目的變數指標,並在傳回時接收實際處理的樣本數目。
[in] IoOperation
指定 I/O 作業類型的值。 這個值可以是 KSIOOPERATION 列舉類型的下列其中一個值:
值 | Description |
---|---|
KsIoOperation_Write | 將數據寫入數據流。 |
KsIoOperation_Read | 從數據流讀取數據。 |
[out] StreamSegment
緩衝區的指標,接收 KSSTREAM_SEGMENT 結構的指標,其中包含傳送至內核模式釘選之數據流區段的標頭資訊。
傳回值
如果成功,則傳回 NOERROR;否則,會傳回錯誤碼。
備註
KsProcessMediaSamples 方法會將樣本從或移至先前指派的篩選釘選。 數據流標頭會初始化,以表示數據流區段中的每個媒體範例。 接著會執行輸入和輸出 (I/O) 、遞增等候專案的計數,以及 Proxy I/O 線程會等候完成。
KsProcessMediaSamples 方法會呼叫所接收 IKsDataTypeHandler 介面的 KsQueryExtendedSize 方法,以擷取擴充標頭的大小。 如果未指定擴充標頭大小, KsProcessMediaSamples 會捨棄 IKsDataTypeHandler 介面的指標。 如果指定擴充標頭大小, KsProcessMediaSamples 會保留 IKsDataTypeHandler 介面的指標,直到處理媒體範例完成為止。 KsProcessMediaSamples 方法接著會配置具有適當標頭大小的數據流標頭。 針對每個媒體範例, KsProcessMediaSamples 會 初始化標頭、複製數據指標、設定時間戳等等。 然後,每個範例都會新增至範例清單。 如果是寫入作業,範例會藉由遞增參考計數來保留。
如需 IMediaSample 的詳細資訊,請參閱 Microsoft Windows SDK 檔。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | ksproxy.h (包含 Ksproxy.h) |