[wdmaudiodev] Re: One Audio Driver Problem

  • From: æåæ <huengpei@xxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Sun, 30 Jan 2005 00:23:36 +0800

Thank you. 

Dear Sam:

Do you know why these USB audio devices, which follow USB Audio Class and use 
Microsoft's USBAudio.sys driver, can't generate the problem?
Their WaveAPI filter can be used in preview and capture mode.
There is no delay issue for it. :(

Best Regards,
H.P.
  ----- Original Message ----- 
  From: Sam Tertzakian 
  To: wdmaudiodev@xxxxxxxxxxxxx 
  Sent: Saturday, January 29, 2005 11:52 PM
  Subject: [wdmaudiodev] Re: One Audio Driver Problem


  I donât have the code here right nowâbut, I think it is called 
âIAMBufferNegotiationâ.

  In that interface there is a function called something like 
âSetAllocatorPropertiesâ.

  You should search for âAllocatorPropertiesâ or âBufferNegotiationâ 
because I cannot think of the exact names now.

   

  Oh, and an important point isâyou must use this interface before the graph 
is connected because the function operates during the connection. It does not 
work after the graph is connected.

   

  I hope that helpsâlet me know if I can be of more assistance. 

   

  Qcap.dll uses WaveAPI, I think. And the other is KxProxy.


------------------------------------------------------------------------------

  From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of ???
  Sent: Saturday, January 29, 2005 7:39 AM
  To: wdmaudiodev@xxxxxxxxxxxxx
  Subject: [wdmaudiodev] Re: One Audio Driver Problem

   

  Dear Sam Tertzakian:

   

  >> When you say âserious delayâ do you mean that the audio is out of sync 
with the video?

  Yes, this is my problem.

   

  >> One of the filters use KxProxy which uses very small buffers. That is 
probably the one that works well.

   

  >> The other filter uses the WaveAPI and uses big buffers. 

  >> So what happens is that the video starts playing immediately while it 
takes a short time for audio buffer to fill up.

  You mean that the filter within "Audio Capture Sources" folder which is based 
on WaveAPI filter, right?

   

  >> If you are capturing audio/video to a file, it should not be a problem as 
both streams are time stamped. But if you are previewing audio/video, then it 
can be a problem >> to use the WaveAPI filter since the WaveAPI buffers are so 
large. And, you cannot time stamp the audio/video preview stream because then 
the video renderer will >> cause the video to start and stop. If you are using 
GraphEdit to build the graph, there is no solution (that I know of). But, if 
you write a program using direct show

  >> (basically doing the same thing as GraphEdit), you can use the WaveAPI 
filter and you change the buffer size that it uses in the program. 

  But, why the preview problem can't be happened for these USB Audio Class 
device. 

  I can use the filter well (Just using GraphEdit only).

   

  >> I have done this before and it works greatâbut, right now I cannot 
remember the exact details. If you need to know, let me know and I will post 
the information. From >> what I remember, there is no sample in the DDK that 
shows this. But the functions are documented somewhereâI just cannot remember 
the com interface name right >> nowâ I may have posted an answer similar to 
this in this forum, but I am not sure.

  Dear Sam Tertzakian, Thank you very much. ^______________^

  Can you get me more information about the problem?

   

  Best Regards,

  H.P.

    ----- Original Message ----- 

    From: Sam Tertzakian 

    To: wdmaudiodev@xxxxxxxxxxxxx 

    Sent: Saturday, January 29, 2005 11:16 PM

    Subject: [wdmaudiodev] Re: One Audio Driver Problem

     

    When you say âserious delayâ do you mean that the audio is out of sync 
with the video?

     

    One of the filters use KxProxy which uses very small buffers. That is 
probably the one that works well.

     

    The other filter uses the WaveAPI and uses big buffers. So what happens is 
that the video starts playing immediately while it takes a short time for audio 
buffer to fill up.

     

    If you are capturing audio/video to a file, it should not be a problem as 
both streams are time stamped. But if you are previewing audio/video, then it 
can be a problem to use the WaveAPI filter since the WaveAPI buffers are so 
large. And, you cannot time stamp the audio/video preview stream because then 
the video renderer will cause the video to start and stop.

     

    If you are using GraphEdit to build the graph, there is no solution (that I 
know of). But, if you write a program using direct show (basically doing the 
same thing as GraphEdit), you can use the WaveAPI filter and you change the 
buffer size that it uses in the program. I have done this before and it works 
greatâbut, right now I cannot remember the exact details. If you need to 
know, let me know and I will post the information. From what I remember, there 
is no sample in the DDK that shows this. But the functions are documented 
somewhereâI just cannot remember the com interface name right nowâ

     

    I may have posted an answer similar to this in this forum, but I am not 
sure.


----------------------------------------------------------------------------

    From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of ???
    Sent: Saturday, January 29, 2005 7:01 AM
    To: wdmaudiodev@xxxxxxxxxxxxx
    Subject: [wdmaudiodev] One Audio Driver Problem

     

    Dear All:

     

    I am developing an audio driver which is based on Streaming Minidriver 
framework.

    When I use the filter within "WDM Streaming Capture Devices" category, the 
audio stream (44100MHz) is listened well.

    However, when I use the filter of "Audio Capture Sources" folder, there is 
a serious delay (1 ~ 2 secs) which is happened.

    I don't know what's happened in this delay.

    The filter within "Audio Capture Sources" folder is a virtual filter, right?

    Why can't the MasterClock be offered from DirectShow manager for this 
filter?

    Can you help me to solve this problem?

     

    Best Regards,

    H.P.

     

Other related posts: