Hi Amit, that's probably true, as PortAudio may try to compensate for delayed frames by calling the callback in successive, thus causing the jitter. We don't have this feature in dsound.c. Have you tried PA with WMME backend? I got better jitter with PA WMME. cheers, -benny Amit Sharma wrote: > Benny, > We have noticed a huge difference in voice quality (almost factor of > 10 for jitter) between using portaudio and win32 direct sound > implementation in pjmedia. Using port audio implementation gives us > choppy sound. I ran the sndtest.exe with both implementations and the > results are as below. No significant difference is observed for > portaudio after turning the PJMEDIA_PREFER_DIRECT_SOUND flag also. > > Is there a way to tune the portaudio implementation so that we can > have better voice quality ? I understand that the dsound.c backend is > unstable so we would ideally want to stay away from using the win32 > direct sound implementation > > > -------------------------PortAudio > implementation----------------------------------- > > 11:45:37.994 os_core_win32. pjlib 0.7.0-trunk for win32 initialized > 11:45:38.073 pasound.c PA message: Pa_GetDeviceInfo: Num input > channels re > ported as 65535! Changed to 2. > > 11:45:38.073 pasound.c PA message: Pa_GetDeviceInfo: Num output > channels r > eported as 65535! Changed to 2. > > 11:45:38.229 pasound.c PortAudio sound library initialized, status=0 > 11:45:38.229 pasound.c PortAudio host api count=3 > 11:45:38.229 pasound.c Sound device count=8 > 11:45:38.229 pjlib WinNT IOCP I/O Queue created (008F62F4) > 11:45:38.229 sndtest.c Found 8 devices: > 11:45:38.244 sndtest.c 0: Microsoft Sound Mapper - Input > (capture=2, play > back=0) > 11:45:38.244 sndtest.c 1: SoundMAX HD Audio (capture=2, playback=0) > 11:45:38.244 sndtest.c 2: Microsoft Sound Mapper - Output > (capture=0, pla > yback=2) > 11:45:38.244 sndtest.c 3: SoundMAX HD Audio (capture=0, playback=2) > 11:45:38.244 sndtest.c 4: Primary Sound Capture Driver > (capture=2, playba > ck=0) > 11:45:38.244 sndtest.c 5: SoundMAX HD Audio (capture=2, playback=0) > 11:45:38.244 sndtest.c 6: Primary Sound Driver (capture=0, > playback=2) > 11:45:38.244 sndtest.c 7: SoundMAX HD Audio (capture=0, playback=2) > 11:45:38.401 sndtest.c Testing playback device Primary Sound Driver > 11:45:38.401 sndtest.c Testing capture device Primary Sound > Capture Driver > 11:45:38.604 sndtest.c Please wait while test is in progress (~11 > secs).. > 11:45:49.651 sndtest.c Dumping results: > 11:45:49.666 sndtest.c Parameters: clock rate=8000Hz, 80 > samples/frame > 11:45:49.666 sndtest.c Playback stream report: > 11:45:49.666 sndtest.c Duration: 9s.990 > 11:45:49.666 sndtest.c Frame interval: min=0.003ms, max=37.503ms > 11:45:49.666 sndtest.c Jitter: min=9.982ms, avg=23.711ms, > max=37.498ms > 11:45:49.666 sndtest.c Capture stream report: > 11:45:49.666 sndtest.c Duration: 9s.990 > 11:45:49.666 sndtest.c Frame interval: min=0.003ms, max=36.672ms > 11:45:49.666 sndtest.c Jitter: min=9.970ms, avg=23.711ms, > max=36.667ms > 11:45: 49.666 sndtest.c Checking for clock drifts: > 11:45:49.666 sndtest.c No clock drifts is detected > 11:45:49.666 sndtest.c Test completed with some warnings > -------------------------PortAudio > implementation----------------------------------- > > > -----------------------------Win32 Direct > Sound--------------------------------------- > 11:51:54.401 os_core_win32. pjlib 0.7.0-trunk for win32 initialized > 11:51:54.619 dsound.c DirectSound initialized, found 3 devices: > 11:51:54.619 dsound.c dev_id 0: Primary Sound Capture Driver > (in=2, out > =2) > 11:51:54.619 dsound.c dev_id 1: SoundMAX HD Audio (in=0, out=2) > 11:51:54.619 dsound.c dev_id 2: SoundMAX HD Audio (in=2, out=0) > 11:51:54.619 pjlib WinNT IOCP I/O Queue created (00975EBC) > 11:51:54.619 sndtest.c Found 3 devices: > 11:51:54.619 sndtest.c 0: Primary Sound Capture Driver > (capture=2, playba > ck=2) > 11:51: 54.619 sndtest.c 1: SoundMAX HD Audio (capture=0, playback=2) > 11:51:54.619 sndtest.c 2: SoundMAX HD Audio (capture=2, playback=0) > 11:51:55.057 sndtest.c Please wait while test is in progress (~11 > secs).. > > 11:52:06.166 sndtest.c Dumping results: > 11:52:06.166 sndtest.c Parameters: clock rate=8000Hz, 80 > samples/frame > 11:52:06.166 sndtest.c Playback stream report: > 11:52:06.166 sndtest.c Duration: 10s.000 > 11:52:06.166 sndtest.c Frame interval: min=0.008ms, max=19.914ms > 11:52:06.166 sndtest.c Jitter: min=0.963ms, avg=3.453ms, > max=19.880ms > 11:52:06.166 sndtest.c Capture stream report: > 11:52:06.166 sndtest.c Duration: 10s.000 > 11:52:06.166 sndtest.c Frame interval: min=0.026ms, max=19.179ms > 11:52:06.166 sndtest.c Jitter: min=0.516ms, avg=2.362ms, > max=19.129ms > 11:52: 06.166 sndtest.c Checking for clock drifts: > 11:52:06.182 sndtest.c No clock drifts is detected > 11:52:06.182 sndtest.c Test completed with some warnings > > -----------------------------Win32 Direct > Sound--------------------------------------- > > Regards, > -Amit > > > ------------------------------------------------------------------------ > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org -- Benny Prijono http://www.pjsip.org