IAMBufferNegotiation::SuggestAllocatorProperties 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 SuggestAllocatorProperties
通知引脚应用程序的首选分配器属性。 在引脚连接之前调用此方法。
语法
HRESULT SuggestAllocatorProperties(
[in] const ALLOCATOR_PROPERTIES *pprop
);
参数
[in] pprop
指向包含所请求属性 的ALLOCATOR_PROPERTIES 结构的指针。 任何成员的负值表示引脚应使用该属性的默认设置。
返回值
返回 HRESULT 值。 可能的值包括以下值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
失败。 |
|
NULL 指针参数。 |
|
固定已连接。 |
注解
如果连接中的两个引脚都公开 IAMBufferNegotiation 接口,请在每个引脚上调用此方法,以确保一个引脚不会覆盖另一个引脚。
若要请求特定数量的缓冲区,请设置 ALLOCATOR_PROPERTIES 结构的 cBuffers 成员。 若要请求特定的缓冲区大小,请设置 cbBuffer 成员。 应用程序通常不应指定对齐方式或前缀。 如果缓冲区数或每个缓冲区的大小太小,筛选器图可能会删除样本。
示例
C++ |
---|
ALLOCATOR_PROPERTIES AllocProp; AllocProp.cbAlign = -1; // -1 means no preference. AllocProp.cbBuffer = dwBytesPerSec * dwLatencyInMilliseconds / 1000; AllocProp.cbPrefix = -1; AllocProp.cBuffers = -1; pIAMBufferNegotiation->SuggestAllocatorProperties(&AllocProp); |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | strmif.h (包括 Dshow.h) |
Library | Strmiids.lib |