[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayer、IMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
当新格式需要更大的缓冲区时,此机制使输出引脚能够建议对其下游对等方进行格式更改。 输出引脚执行以下作:
- 在下游输入引脚上调用 IPin::ReceiveConnection。
- 如果
ReceiveConnection成功,请在输入引脚上调用 IMemInputPin::NotifyAllocator。
此外,输出引脚可能需要调用 IMemAllocator::SetProperties,然后取消提交并重新提交分配器才能更改缓冲区大小。 在更改缓冲区大小之前,请确保以旧格式提供所有挂起的样本。
某些 MPEG-2 解码器使用此机制在 MPEG-1 和 MPEG-2 输出之间切换,或者视频大小是否发生变化。