CBaseRenderer.GetSampleTimes 方法
[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayer、 IMFMediaEngine 和 音频/视频捕获 ,而不是 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,则筛选器会根据时间戳计划用于呈现的示例。 如果返回值为错误代码,则筛选器将拒绝示例。
如果示例没有时间戳,或者筛选器没有引用时钟,则此方法返回S_OK。 否则,它将返回 CBaseRenderer::ShouldDrawSampleNow 方法的值。 在基类中, ShouldDrawSampleNow 始终返回S_FALSE。 派生类可以重写此行为。 例如,如果派生类实现质量控制管理,则它可能会返回E_FAIL来删除示例。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|