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