iamBufferNegotiation 接口 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
接口 IAMBufferNegotiation
请求筛选器要创建的缓冲区数以及每个缓冲区的大小。 此接口可由使用 IMemInputPin 引脚接口连接的任何引脚公开,但通常在捕获筛选器的输出引脚上公开。
当两个引脚通过 IMemInputPin 连接时,它们同意负责创建缓冲区的分配器对象。 通常,此过程对应用程序是透明的,但在某些情况下,应用程序需要更多控制。 如果引脚公开 IAMBufferNegotiation
,应用程序可以建议要创建的缓冲区数、缓冲区的大小和其他属性。 如果应用程序执行捕获的音频预览,则可以指定较小的缓冲区大小以减少延迟。 电话会议应用程序应指定最小数量的缓冲区。
若要使用此接口,请在引脚连接之前调用 SuggestAllocatorProperties 方法。 引脚连接后,调用 GetAllocatorProperties 方法以确定引脚是否遵循请求。
筛选器开发人员:捕获筛选器应始终支持此接口(如果可能)。
继承
IAMBufferNegotiation 接口继承自 IUnknown 接口。 IAMBufferNegotiation 还具有以下类型的成员:
方法
IAMBufferNegotiation 接口具有以下方法。
IAMBufferNegotiation::GetAllocatorProperties GetAllocatorProperties 方法检索引脚正在使用的分配器属性。 |
IAMBufferNegotiation::SuggestAllocatorProperties SuggestAllocatorProperties 方法通知引脚应用程序的首选分配器属性。 在引脚连接之前调用此方法。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |