CBaseOutputPin.DecideBufferSize 方法

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

方法 DecideBufferSize 设置缓冲区要求。

语法

virtual HRESULT DecideBufferSize(
   IMemAllocator        *pAlloc,
   ALLOCATOR_PROPERTIES *ppropInputRequest
) = 0;

参数

pAlloc

指向分配器的 IMemAllocator 接口的指针。

ppropInputRequest

指向包含输入引脚缓冲区要求的 ALLOCATOR_PROPERTIES 结构的指针。 如果输入引脚没有任何要求,则调用方应在调用 方法之前将此结构的成员归零。

返回值

如果成功,则返回S_OK,或返回指示错误原因的 HRESULT 值。

备注

在派生类中重写此方法。 调用 IMemAllocator::SetProperties 方法来指定缓冲区要求。 通常,派生类将遵循输入引脚的缓冲区要求,但不是必需的。

要求

要求
标头
Amfilter.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)

另请参阅

CBaseOutputPin 类