IAMTimecodeReader::GetTimecode 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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 |