共用方式為


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)

另請參閱

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT