CBaseOutputPin.GetDeliveryBuffer 方法

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

方法 GetDeliveryBuffer 检索包含空缓冲区的媒体示例。

语法

virtual HRESULT GetDeliveryBuffer(
   IMediaSample   **ppSample,
   REFERENCE_TIME *pStartTime,
   REFERENCE_TIME *pEndTime,
   DWORD          dwFlags
);

参数

ppSample

接收指向缓冲区 IMediaSample 接口的指针的变量的地址。

pStartTime

指向示例开始时间的指针,或 NULL

pEndTime

指向示例结束时间的指针,或 NULL

dwFlags

IMemAllocator::GetBuffer 接口支持的标志的按位组合。

返回值

返回 HRESULT 值。 可能的值包括下表中列出的值。

返回代码 说明
S_OK
成功。
E_NOINTERFACE
没有可用的分配器。

备注

此方法调用分配 器上的 IMemAllocator::GetBuffer 方法,并将参数传递给该方法。

要求

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

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

另请参阅

CBaseOutputPin 类