[wdmaudiodev] Re: Does MSVAD support only 1 Microphone/Output Stream

  • From: swapnil kamble <swap.kamble@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 13 Feb 2009 10:59:56 +0530

Hi Vipin,

However, if  MAX_OUTPUT_STREAMS = 1 , i don't get the
> CMiniportWaveCyclic::NewStream   call   because kmixer knows that  i support
> only a single stream, so it will supply cached data ( which is same to both
> the Sound recorder instances)


If you keep it to 1 then KMixer will mix all stream before reaching to
driver. and Without calling NewStream again send the data to driver as if it
is coming from one stream only. But remember I am talking this only in case
DirectSound Renderer devices.


> Also, i couldn't understand   "Your "Directsound:MSVAD Wave" will support
> the multiple streams with the help of kmixer. "  , if i understand it right,
> then kmixer will supply cached data instead of making a new stream. Please
> clarify.
>
For your testing purpose open graphedit tool. You will find DirectSound
device in Audio Renderer Category. Try with that.

>
> yes, it's crystal clear in  1-to-1 case. Since i am feeding data from  a
> usermode application.

Do you play it in real-time ? Or you store it in a file ?




>
>
> On Thu, Feb 12, 2009 at 6:35 PM, swapnil kamble <swap.kamble@xxxxxxxxx>wrote:
>
>> Hi,
>>     There is no need to modify MAX_OUTPUT_STREAMS. Keep it to one. Your
>> "Directsound:MSVAD Wave" will support the multiple streams with the help of
>> kmixer. So ultimately one stream only but surely will serve your purpose. I
>> want to know the quality of audio that you are getting. Is it crystal clear
>> for one to one case ?
>>
>>
>>
>> On Thu, Feb 12, 2009 at 6:12 PM, Vipin Kumar <vipin@xxxxxxxxxxxxxx>wrote:
>>
>>> Hi,
>>>     i am using MSVAD simple as my base for  supporting  20 virtual
>>> microphone streams ( however, only 1 device is there, different streams are
>>> given different data based on session ID).
>>>
>>> However, the moment i change  MAX_OUTPUT_STREAMS   in SIMPLE.H   from
>>> it's default value 1 to  say 2 or 3,  everything starts getting garbled,
>>>
>>>
>>> the request  CMiniportWaveCyclicStreamMSVAD::CopyFrom  which triggers at
>>> 10 ms means 22050 Hz, 16 bit mono  , equals 441 bytes per 10 ms ( when
>>> MAX_OUTPUT_STREAMS = 1)
>>>
>>>
>>> becomes     660 bytes and sometimes 662 bytes, ( when MAX_OUTPUT_STREAMS
>>> is greater than 1)
>>>
>>>
>>> my only question is,
>>>     (i)     What am i doing wrong.( i have confirmed my results 5 times
>>> in a row, by interchanging the MAX_OUTPUT_STREAMS to 4 and vice versa ) &
>>> everytime i got the same results.
>>>    (ii)     How to do it ( support multiple capture streams);
>>>
>>>
>>> here's 1  windbg log  with  MAX_OUTPUT_STREAMS  set  to 4
>>>
>>> MSVAD: New Format: 22050
>>> CMiniportWaveCyclic::NewStream Stream
>>> Timer Interval  10  Frame Size  441
>>> MSVAD: KSSTATE_PAUSE
>>> MSVAD: KSSTATE_RUN
>>> 660
>>> 662
>>> 660
>>> 662
>>> 660
>>> 662
>>> 660
>>> 662
>>> 660
>>> 662
>>> 660
>>>
>>> Let me know your ideas/ solution
>>>
>>> Thanks.
>>>
>>> Regards.
>>> Vipin
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> ...Swapnil
>>
>> || Hare Krishna Hare Krishna Krishna Krishna Hare Hare ||
>> || Hare Rama    Hare Rama   Rama   Rama    Hare Hare ||
>>
>
>


-- 
...Swapnil

|| Hare Krishna Hare Krishna Krishna Krishna Hare Hare ||
|| Hare Rama    Hare Rama   Rama   Rama    Hare Hare ||

Other related posts: