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