Microsoft Media Foundation) (媒体示例

媒体示例是包含零个或多个缓冲区的有序列表的对象。 媒体示例公开 IMFSample 接口。 一个样本中包含的数据量取决于创建示例的组件以及缓冲区中的数据类型。 对于未压缩的视频,示例通常包含单个视频帧。 对于未压缩的音频,数据量可能会有所不同,但音频帧通常不会跨越两个样本。 对于压缩数据,这些准则可能不适用。

出于效率考虑,单个示例可能包含多个缓冲区。 例如,在 ASF 文件中,视频帧通常分布在多个 ASF 数据包中。 媒体源可以将数据包读入多个缓冲区。 源只需将所有缓冲区放入一个样本中,而不是将每个片段复制到一个缓冲区中。 然后,下游组件可以决定是否将较小的缓冲区复制到一个连续缓冲区中。 通常,如果要编写管道组件,则应假定任何示例可能包含多个缓冲区。

本部分包含以下主题。

主题 说明
使用媒体示例 描述媒体示例的一般行为。
视频示例 介绍用于存放未压缩视频帧的 IMFSample 的专用实现。

 

媒体缓冲区

媒体基础基元