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) |