CBaseRenderer.GetSampleTimes 方法

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

方法 GetSampleTimes 从示例中检索时间戳。

语法

virtual HRESULT GetSampleTimes(
   IMediaSample   *pMediaSample,
   REFERENCE_TIME *pStartTime,
   REFERENCE_TIME *pEndTime
);

参数

pMediaSample

指向示例 IMediaSample 接口的指针。

pStartTime

指向接收开始时间的变量的指针。

pEndTime

指向接收结束时间的变量的指针。

返回值

返回 HRESULT 值。 可能的值包括下表中显示的值。

返回代码 说明
S_OK
应立即呈现示例。
S_FALSE
应根据时间戳安排示例的呈现。
E_FAIL
不要呈现此示例。
VFW_E_START_TIME_AFTER_END
时间戳错误:结束时间早于开始时间。

备注

筛选器调用此方法以确定它应如何处理示例。 如果返回值为S_OK,筛选器将立即呈现示例。 如果返回值为S_FALSE,则筛选器会根据时间戳计划用于呈现的示例。 如果返回值为错误代码,则筛选器将拒绝示例。

如果示例没有时间戳,或者筛选器没有引用时钟,则此方法返回S_OK。 否则,它将返回 CBaseRenderer::ShouldDrawSampleNow 方法的值。 在基类中, ShouldDrawSampleNow 始终返回S_FALSE。 派生类可以重写此行为。 例如,如果派生类实现质量控制管理,则它可能会返回E_FAIL来删除示例。

要求

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

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

另请参阅

CBaseRenderer 类