我正在制作录音系统。我的任务是从同步器设备生成的音频输入流中提取SMPTE时间码。我正在使用ASIO SDK来获取每个回调缓冲区的时间码,但它始终为零。
也许有人有ASIO SDK(或任何其他可用于从音频流中提取SMPTE时间码的平台/ sdk)的经验可以帮助我吗?
此致 本
答案 0 :(得分:1)
LTC非常简单,所以如果不出意外,您只需扫描音频流以获取LTC数据as documented on wikipedia。每个80位帧以0011 1111 1111 1101结束,只扫描该字节序列进行同步,然后将该同步序列之后开始的缓冲区数据转换为80位struct timecode_t元素的数组。如果你的缓冲区大小为80的倍数,你的计算将更容易(但你需要测试同步丢失,因为声卡会因超出而丢失位)。
困难的部分是,如果我没有弄错,时间码“位”与采样音频流的位不同,因此您必须实现逻辑来检测位序列。这可以只是for循环检查正确的信号变化,并在适当时将位附加到缓冲区(然后调用函数解释缓冲区满时)。