CBaseOutputPin.DecideAllocator 方法
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]
方法 DecideAllocator
选择内存分配器。
语法
virtual HRESULT DecideAllocator(
IMemInputPin *pPin,
IMemAllocator **pAlloc
);
参数
-
pPin
-
指向输入引脚的 IMemInputPin 接口的指针。
-
pAlloc
-
接收指向分配器的 IMemAllocator 接口的指针的变量的地址。
返回值
如果成功,则返回S_OK,或返回指示错误原因的 HRESULT 值。
备注
此方法在引脚连接过程结束时调用。 它执行以下步骤:
- 调用 IMemInputPin::GetAllocatorRequirements 方法来检索输入引脚的缓冲区要求(如果有)。
- 调用 IMemInputPin::GetAllocator 方法以从输入引脚请求分配器。 如果输入引脚不提供分配器,则输出引脚通过调用 CBaseOutputPin::InitAllocator 类方法创建一个分配器。
- 调用 CBaseOutputPin::D ecideBufferSize 类方法,用于设置分配器属性。 这是一种纯虚拟方法;派生类必须实现它。
- 调用 IMemInputPin::NotifyAllocator 方法,该方法通知正在使用的分配器的输入引脚。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|