Hi, Thanks for your reply. i don't want kmixer to mix, since it's my responsibility to supply different data to different process. However, we can identify streams using CMiniportWaveCyclicStreamMSVAD::CopyFrom and passing this as a pointer( this value is the same NewStream & CopyFrom) , and thus we can supply different data to different stream. But the only problem is that copyFrom Bytecount is more than the Framesize . why ?? Is there a bug or glitch in kmixer . can Someone from MS light up the Situation i am facing. Thanks for your help in advance. Regards, Vipin On Fri, Feb 13, 2009 at 10:59 AM, swapnil kamble <swap.kamble@xxxxxxxxx>wrote: > 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 || >