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

  • From: Vipin Kumar <vipin@xxxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 13 Feb 2009 10:32:19 +0530

Hi,
    Thanks for your reply.

I  would like someone from MS( or anyone else)  to clarify  the stuff.

 However, i need to modify MAX_OUTPUT_STREAMS . Lets say a user is using 2
Sound recorder instances, my driver ( based on MSVAD Simple) has the ability
to supply both of of them with completely different data ( though they have
selected  my sound device) at the same time.

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)


However, if MAX_OUTPUT_STREAMS  > 1, then i get
CMiniportWaveCyclic::NewStream   calls and then i can return 2 different
streams to different applications.

Everything works except  if i change MAX_OUTPUT_STREAMS  > 1 , then the
kmixer asks me for 660 or 662 bytes of data, but  i amonly supposed to give
441 bytes of data( based on 22050 Hz, 16 bit mono).



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.

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

Waiting for your reply

Thanks

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 ||
>

Other related posts: