首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有任何现代的Windows里面没有至少一个DirectShow捕获设备?

有没有任何现代的Windows里面没有至少一个DirectShow捕获设备?
EN

Stack Overflow用户
提问于 2011-11-20 01:31:25
回答 1查看 175关注 0票数 2

我正在考虑做一些可能看起来很奇怪的事情来得到一个可靠的时间时钟。我必须将缓冲区推送到WiFi连接的音频输出设备,该设备本身不进行缓冲或音频时间戳仲裁。如果我不定期发送缓冲区,这将合理地匹配一个硬件采样设备的时间,回放会损坏并开始口吃。

在考虑下面所描述的“黑客”之前,我先看了一下常见的高分辨率计时嫌疑犯。QueryPerformanceCounter看上去不错,直到我读到硬件抽象层中的buggy硬件实现,以及可变CPU速度的复杂性,破坏了QPC计算。此外,Windows多媒体计时器的精度仅为1毫秒,因此它在高采样率(如44.1 kHz )中的使用情况令人怀疑。这就是为什么我要考虑以下几点:

CPU时钟频率和因此QueryPerformanceCounter错误?

据我所知,目前生产的每台Windows PC至少都支持麦克风。我正在考虑做的是“携带”一个现有的捕获设备的时钟。我有一个DirectShow推送源过滤器,它是要发送到WiFi音频输出设备的真正音频源。我将强制捕获过滤器的采样率,以匹配推源过滤器。然后,我将使用信号量锁定push源过滤器的FillBuffer()调用,直到捕获过滤器的FillBuffer()调用生成一个缓冲区,从而利用捕获过滤器的缓冲区定时。

我能指望一个用户的电脑至少有一个捕获设备吗?此外,任何关于总体战略的评论都将受到欢迎。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-20 07:06:49

系统参考时钟是一个具有毫秒精度的可继电器时钟,在任何有或没有DirectShow捕获设备的PC中都有它。

可能要处理的问题是,tghis时钟与音频捕获或回放设备的时钟不完全匹配,而长期的声音流由于时钟的不匹配而累积了一个错误。DirectShow速率匹配是解决这一问题的方法。

另一方面,如果您需要一个精度较高的好时钟,则可以使用由QueryPerformanceCounter支持的时钟,但定期进行重新同步以保持长期精度,请参阅类DateTimePrecise

另外:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8198768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档