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

指向 IKsDataTypeHandler 接口的指针,该接口用于处理 SampleList中列出的媒体类型。 此数据类型处理程序包含有关正在流式传输的媒体类型的特定信息。

[in] SampleList

指向包含指向 IMediaSample 接口的指针数组的缓冲区的指针,以便处理媒体示例列表。

[in, out] SampleCount

指向一个变量的指针,该变量最初包含列表中 SampleList 中的样本数,并在返回时接收处理的实际样本数。

[in] IoOperation

指定 I/O作类型的值。 此值可以是 KSIOOPERATION 枚举类型的以下值之一:

价值 描述
KsIoOperation_Write 将数据写入流。
KsIoOperation_Read 从流中读取数据。

[out] StreamSegment

指向接收指向 KSSTREAM_SEGMENT 结构的指针的缓冲区的指针,该结构包含发送到内核模式引脚的流段的标头信息。

返回值

如果成功,则返回 NOERROR;否则,返回错误代码。

言论

KsProcessMediaSamples 方法将样本移入或移入以前分配的筛选器引脚。 流标头初始化为表示流段中的每个媒体示例。 然后执行输入和输出(I/O),递增等待项计数,代理 I/O 线程等待完成。

KsProcessMediaSamples 方法调用接收的 IKsDataTypeHandler 接口的 KsQueryExtendedSize 方法,以检索扩展标头的大小。 如果未指定扩展标头大小,KsProcessMediaSamples 放弃指向 IKsDataTypeHandler 接口的指针。 如果指定了扩展标头大小,KsProcessMediaSamples 将指针保留到 IKsDataTypeHandler 接口的指针,直到处理媒体示例完成。 然后,KsProcessMediaSamples 方法分配具有适当标头大小的流标头。 对于每个媒体示例,KsProcessMediaSamples 初始化标头、复制数据指针、设置时间戳等。 然后将每个示例添加到示例列表中。 如果是写入作,则通过递增引用计数来保存示例。

有关 IMediaSample的详细信息,请参阅 Microsoft Windows SDK 文档。

要求

要求 价值
目标平台 桌面
标头 ksproxy.h (包括 Ksproxy.h)

另请参阅

IKsDataTypeHandler

IKsDataTypeHandler::KsQueryExtendedSize

KSSTREAM_SEGMENT