ReceiveConnection

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

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

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

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

某些 MPEG-2 解码器使用此机制在 MPEG-1 和 MPEG-2 输出之间切换或视频大小更改。