ReceiveConnection

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

当新格式需要更大的缓冲区时,此机制使输出引脚能够建议对其下游对等方进行格式更改。 输出引脚执行以下作:

  1. 在下游输入引脚上调用 IPin::ReceiveConnection
  2. 如果 ReceiveConnection 成功,请在输入引脚上调用 IMemInputPin::NotifyAllocator

此外,输出引脚可能需要调用 IMemAllocator::SetProperties,然后取消提交并重新提交分配器才能更改缓冲区大小。 在更改缓冲区大小之前,请确保以旧格式提供所有挂起的样本。

某些 MPEG-2 解码器使用此机制在 MPEG-1 和 MPEG-2 输出之间切换,或者视频大小是否发生变化。