none
wince6.0上audio drift的CETK测试失败的原因是什么呢? RRS feed

  • 问题

  • 最近在wince6, x86平台对声卡HD audio driver进行CETK测试。capture和playback测试都通过了。audio drift和audio loopback测试都失败了。
    对audio drift测试而言,需要一个16 bits, mono, 8000Hz, and 120-seconds in duration的测试文件和一个loopback cable。这个我都有,测试文件是用程序生成的,应该可靠;cable应该能工作正常。
    这实际是一个quality测试,要循环30次,我的测试每次到第4、5个循环时就提示“Playback and capture audio devices drifting by 1 buffers at the sample rate of 8000”然后测试结束了。
    分析失败的原因,从哪里入手呢?
    1. 会有中断效率的问题吗?
    2. DMA buffer目前来看工作正常,这个驱动是移植UAM模型的,DMA部分没有做改动。
    3. 我的CETK是通过KITL链接的。我也在网上看到有人说CETK不需要KITL也可以运行。我试图用TCP Connect Transport选项,但是提示“The selected service was not include in the list of supported services and may not work with the selected device”。强行运用这种设置CETK连不上。KITL对这个测试有影响吗?

    希望路过的可以给出建议,非常感谢!
    2011年3月4日 7:34

全部回复

  • 我改进了测试方法。在image里去掉了kitl选项,从硬盘load image,在target device执行这个测试程序,大概在run 第10个循环时还是失败了。这样看来还是应该查查driver,可是如何着手呢?真是头疼。
    2011年3月7日 6:49
  • 您好,

    首先,CETK要用release的版本的image来测试。如果您是debug的版本,您需要相应的dubug版本的模块。

    其次,我们可以查一些Log文件来找到错误的提示。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月8日 6:26
    版主
  • 谢谢版主大人的回复。 1. 我是用release版的来测试的。 2. 下面是log文件的内容,说实话,我的确不能从中间得到多少有用的信息: BEGIN TEST: Playback Device 0 - HDAUDIO_××× Capture Device 0 - HDAUDIO_××× The sample file will be played back 30 times in loop. Playback and recording started. Please wait.... Loop Number=1. Loop Number=2. Loop Number=3. Loop Number=4. wom=2363 wim=2362. Playback and capture audio devices drifting by 1 buffers at the sample rate of 8000. END TEST 3. 我想问一下,professional版的wince在private\test\有没有提供audio drift, audio loopback测试的源码?我在wince6下看到了audio其它测试的源码,唯独没有这2个测试的。在ce7下根本就没有wince700\private目录。如果有的话,我希望可以从测试code中得到更多的信息。 4. MSDN也没有说如果测试失败,提示有drift的话driver可能有什么潜在的问题。 Thanks。
    2011年3月9日 5:41
  • 抱歉,这次回复格式成文本的了。我重新编辑了一次,还是这样。看起来有点乱。
    2011年3月9日 5:48
  • 有没有可能是多个stream需要同步的问题呢?

    我自己查查先,做过HDaudio driver的人欢迎给出建议哟!

    2011年3月11日 5:51
  • 一个out, 一个in,应该跟stream 同步无关。 版主们哪里去了,wince竟衰落至此?
    2011年3月17日 2:37
  • 有一点,不知道你有没有注意过。

    在处理play,也就是out stream的时候,如果你的driver处理得不够快,就是当app认为它传给你的stream应该已经play完,而事实上你没有play完的时候,app又给你传了第二个stream,这个时候你的driver无法处理,App就可能报错。

    2011年3月27日 10:25
    版主
  • 我觉得你说的这个应该是play性能的问题。 现在测试提示playback和capture之间有buffer drift, 我的猜测可能是已经开始playback,但是driver处理capture不过快,可能错失了很少量的数据。这个也涉及到了audioloopback测试中output+input的latency是否小于20ms的问题。 事实上,microsoft没有公开audio drift和audio loopback测试的code,但是我自己的应用处理边播边录的生成的文件的效果比它的测试程序产生的音质要好得多。 由于我这个BSP并没有申请做认证,所以这些质疑也得不到解释。真是愁!

    有一点,不知道你有没有注意过。

    在处理play,也就是out stream的时候,如果你的driver处理得不够快,就是当app认为它传给你的stream应该已经play完,而事实上你没有play完的时候,app又给你传了第二个stream,这个时候你的driver无法处理,App就可能报错。

    2011年3月28日 2:24