From 3f0677ccd3a485615724c77661f941acdeb57c4a Mon Sep 17 00:00:00 2001 From: aymeric Date: Sat, 1 Nov 2008 10:57:06 +0000 Subject: [PATCH] I don't think this change anything, but just try. git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@134 3f6dc0c8-ddfe-455d-9043-3cd528dc4637 --- linphone/mediastreamer2/src/winsnd2.c | 30 +++++++++++++++++++-------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/linphone/mediastreamer2/src/winsnd2.c b/linphone/mediastreamer2/src/winsnd2.c index 553d17ba3..327962169 100755 --- a/linphone/mediastreamer2/src/winsnd2.c +++ b/linphone/mediastreamer2/src/winsnd2.c @@ -382,14 +382,20 @@ static void winsnd_read_preprocess(MSFilter *f){ winsnd_apply_settings(d); /* Init Microphone device */ - dwFlag = CALLBACK_FUNCTION; - if (d->dev_id != WAVE_MAPPER) - dwFlag = WAVE_MAPPED | CALLBACK_FUNCTION; - mr = waveInOpen (&d->indev, d->dev_id, &d->wfx, - (DWORD) read_callback, (DWORD)f, dwFlag); + dwFlag = CALLBACK_FUNCTION | WAVE_FORMAT_DIRECT; + mr = waveInOpen (&d->indev, d->dev_id, &d->wfx, + (DWORD) read_callback, (DWORD)f, dwFlag); if (mr != MMSYSERR_NOERROR) { - ms_error("Failed to prepare windows sound device. (waveInOpen:0x%i)", mr); + ms_error("Failed to prepare windows sound device. (waveInOpen:0x%i)", mr); + if (d->dev_id != WAVE_MAPPER) + dwFlag = WAVE_MAPPED | CALLBACK_FUNCTION; + mr = waveInOpen (&d->indev, d->dev_id, &d->wfx, + (DWORD) read_callback, (DWORD)f, dwFlag); + } + if (mr != MMSYSERR_NOERROR) + { + ms_error("Failed to prepare windows sound device. (waveInOpen:0x%i)", mr); mr = waveInOpen (&d->indev, WAVE_MAPPER, &d->wfx, (DWORD) read_callback, (DWORD)d, CALLBACK_FUNCTION); if (mr != MMSYSERR_NOERROR) @@ -513,12 +519,18 @@ static void winsnd_write_preprocess(MSFilter *f){ winsnd_apply_settings(d); /* Init Microphone device */ - dwFlag = CALLBACK_FUNCTION; - if (d->dev_id != WAVE_MAPPER) - dwFlag = WAVE_MAPPED | CALLBACK_FUNCTION; + dwFlag = CALLBACK_FUNCTION | WAVE_FORMAT_DIRECT; mr = waveOutOpen (&d->outdev, d->dev_id, &d->wfx, (DWORD) write_callback, (DWORD)d, dwFlag); if (mr != MMSYSERR_NOERROR) + { + ms_error("Failed to open windows sound device %i. (waveOutOpen:0x%i)",d->dev_id, mr); + if (d->dev_id != WAVE_MAPPER) + dwFlag = WAVE_MAPPED | CALLBACK_FUNCTION; + mr = waveOutOpen (&d->outdev, d->dev_id, &d->wfx, + (DWORD) write_callback, (DWORD)d, dwFlag); + } + if (mr != MMSYSERR_NOERROR) { ms_error("Failed to open windows sound device %i. (waveOutOpen:0x%i)",d->dev_id, mr); mr = waveOutOpen (&d->outdev, WAVE_MAPPER, &d->wfx,