IAMTimecodeReader::GetTimecode 方法 (strmif.h)

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

方法 GetTimecode 检索流中可用的最新 timecode、userbit 和标志值。

语法

HRESULT GetTimecode(
  [out] PTIMECODE_SAMPLE pTimecodeSample
);

参数

[out] pTimecodeSample

指向 TIMECODE_SAMPLE 结构的指针。

返回值

返回一个 HRESULT 值,该值取决于接口的实现。

注解

使用此方法可以监视时间代码并分析重复项和不连续项。

时间代码包含未定义的位,称为 userbits。 应用程序可以使用这些位来存储同步信息或其他自定义信息。

DV 和 MPEG 摄像机实现

MSDV 驱动程序支持在 ATN) (读取 SMPTE 时间代码或绝对轨迹数。 MSTape 驱动程序支持 (RTC) 读取相对时间计数器。 若要读取这些设备上的时间信息,请执行以下操作:

TIMECODE_SAMPLE 结构的 dwFlags 成员设置为以下值之一。

一直 说明
ED_DEVCAP_TIMECODE_READ Timecode (DV)
ED_DEVCAP_ATN_READ dv) (绝对曲目数
ED_DEVCAP_RTC_READ MPEG 磁带) (相对时间计数器
 

TIMECODE_SAMPLE 结构的 timecode 成员是 TIMECODE 结构。 将结构的 dwFrames 成员初始化为零。

将忽略所有其他结构成员。

当 方法返回时, dwFrames 成员包含以下格式的时间信息。

时间信息 格式
Timecode 小时、分钟、秒和帧,作为二进制编码的十进制 (BCD) 值: 0xhhmmssff
Atn 曲目编号。
RTC 小时、分钟、秒和帧,作为 BCD 值: 0xhhmmsff。 帧字节中最重要的位是符号位。 如果帧计数不可用,则剩余的帧位设置为0x7F。
 

此外, dwUser 成员从设备接收 空白标志 位,该设备具有以下值之一。

说明
0x00 不是不连续的。
0x01 间断。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

从设备获取时间代码

IAMTimecodeReader 接口