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 枚举类型中的下列值之一:

说明
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