新段

[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayerIMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]

是一组共享常见开始时间、停止时间和播放速率的媒体示例。 IPin::NewSegment 方法指示新段的开始。 它为源筛选器提供了一种通知下游筛选器的时间和速率信息已更改的方法。 例如,如果源筛选器查找流中的新点,则会使用新的开始时间调用 NewSegment

某些下游筛选器在处理示例时使用段信息。 例如,采用使用帧间压缩的格式,如果停止时间落在增量帧上,源筛选器可能需要在停止时间之后发送其他样本。 这使解码器能够解码最终增量帧。 若要确定正确的最终帧,解码器引用段停止时间。 另一个示例是,音频呈现器使用段速率和音频采样率来生成正确的音频输出。

在推送模型中,源筛选器启动 NewSegment 调用。 在拉取模型中,这是由分析程序筛选器完成的。 无论哪种情况,筛选器调用 NewSegment 下游输入引脚(将调用传播到下一个筛选器),直到调用到达呈现器为止。 筛选器必须使用其他流式处理调用(如 IMemInputPin::Receive)序列化 NewSegment 调用。

每个新段之后,流时间重置为零。 段从零开始后提供的样本的时间戳。