*** rtp_callback.c Wed Mar 13 09:09:48 2002 --- rtp_callback.c.cvs Mon Mar 11 15:33:30 2002 *************** *** 259,268 **** { pdb_entry_t *e; ! if (pdb_item_get(sp->pdb, ssrc, &e) == FALSE) { ! debug_msg("process_sdes: unknown source (0x%08x).\n", ssrc); ! return; ! } if (sp->mbus_engine == NULL) { /* Nowhere to send updates to, so ignore them. */ --- 259,265 ---- { pdb_entry_t *e; ! assert(pdb_item_get(sp->pdb, ssrc, &e) == TRUE); if (sp->mbus_engine == NULL) { /* Nowhere to send updates to, so ignore them. */ *** auddev_win32.c Wed Mar 13 10:04:57 2002 --- auddev_win32.c.cvs Mon Mar 11 15:33:15 2002 *************** *** 31,37 **** #define rat_to_device(x) (((x) * MAX_DEVICE_GAIN / MAX_AMP) << 16 | ((x) * MAX_DEVICE_GAIN / MAX_AMP)) #define device_to_rat(x) ((x & 0xffff) * MAX_AMP / MAX_DEVICE_GAIN) ! #define W32SDK_MAX_DEVICES 20 static int have_probed[W32SDK_MAX_DEVICES]; static int w32sdk_probe_formats(audio_desc_t ad); --- 31,37 ---- #define rat_to_device(x) (((x) * MAX_DEVICE_GAIN / MAX_AMP) << 16 | ((x) * MAX_DEVICE_GAIN / MAX_AMP)) #define device_to_rat(x) ((x & 0xffff) * MAX_AMP / MAX_DEVICE_GAIN) ! #define W32SDK_MAX_DEVICES 5 static int have_probed[W32SDK_MAX_DEVICES]; static int w32sdk_probe_formats(audio_desc_t ad); *************** *** 836,842 **** static u_char *lpWriteData; /* Pointer to raw audio data buffer */ static int ! w32sdk_audio_open_out_probe(UINT uId, WAVEFORMATEX *pwfx, int probe) { MMRESULT mmr; int i; --- 836,842 ---- static u_char *lpWriteData; /* Pointer to raw audio data buffer */ static int ! w32sdk_audio_open_out(UINT uId, WAVEFORMATEX *pwfx) { MMRESULT mmr; int i; *************** *** 852,871 **** return (FALSE); } ! if (lpWriteData != NULL) { ! xfree(lpWriteData); ! } ! lpWriteData = (u_char*)xmalloc(nblks * blksz); ! memset(lpWriteData, 0, nblks * blksz); ! ! if (whWriteHdrs != NULL) { ! xfree(whWriteHdrs); ! } ! whWriteHdrs = (WAVEHDR*)xmalloc(sizeof(WAVEHDR)*nblks); ! memset(whWriteHdrs, 0, sizeof(WAVEHDR)*nblks); ! ! if (!probe) { ! for (i = 0; i < nblks; i++) { whWriteHdrs[i].dwFlags = 0; whWriteHdrs[i].dwBufferLength = blksz; whWriteHdrs[i].lpData = lpWriteData + i * blksz; --- 852,870 ---- return (FALSE); } ! if (lpWriteData != NULL) { ! xfree(lpWriteData); ! } ! lpWriteData = (u_char*)xmalloc(nblks * blksz); ! memset(lpWriteData, 0, nblks * blksz); ! ! if (whWriteHdrs != NULL) { ! xfree(whWriteHdrs); ! } ! whWriteHdrs = (WAVEHDR*)xmalloc(sizeof(WAVEHDR)*nblks); ! memset(whWriteHdrs, 0, sizeof(WAVEHDR)*nblks); ! ! for (i = 0; i < nblks; i++) { whWriteHdrs[i].dwFlags = 0; whWriteHdrs[i].dwBufferLength = blksz; whWriteHdrs[i].lpData = lpWriteData + i * blksz; *************** *** 873,888 **** mmr = waveOutPrepareHeader(shWaveOut, &whWriteHdrs[i], sizeof(WAVEHDR)); whWriteHdrs[i].dwFlags |= WHDR_DONE; /* Mark buffer as done - used to find free buffers */ assert(mmr == MMSYSERR_NOERROR); ! } ! } return (TRUE); } ! static int ! w32sdk_audio_open_out(UINT uId, WAVEFORMATEX *pwfx) ! { ! return w32sdk_audio_open_out_probe(uId, pwfx, 0); ! } static void w32sdk_audio_close_out() { --- 872,882 ---- mmr = waveOutPrepareHeader(shWaveOut, &whWriteHdrs[i], sizeof(WAVEHDR)); whWriteHdrs[i].dwFlags |= WHDR_DONE; /* Mark buffer as done - used to find free buffers */ assert(mmr == MMSYSERR_NOERROR); ! } return (TRUE); } ! static void w32sdk_audio_close_out() { *************** *** 898,908 **** if (whWriteHdrs[i].dwFlags & WHDR_PREPARED) { waveOutUnprepareHeader(shWaveOut, &whWriteHdrs[i], sizeof(WAVEHDR)); } ! } ! waveOutClose(shWaveOut); ! xfree(whWriteHdrs); whWriteHdrs = NULL; xfree(lpWriteData); lpWriteData = NULL; xmemchk(); --- 892,902 ---- if (whWriteHdrs[i].dwFlags & WHDR_PREPARED) { waveOutUnprepareHeader(shWaveOut, &whWriteHdrs[i], sizeof(WAVEHDR)); } ! } ! waveOutClose(shWaveOut); ! xfree(whWriteHdrs); whWriteHdrs = NULL; xfree(lpWriteData); lpWriteData = NULL; xmemchk(); *************** *** 1027,1033 **** } static int ! w32sdk_audio_open_in_probe(UINT uId, WAVEFORMATEX *pwfx, int probe) { MMRESULT mmr; int i; --- 1021,1027 ---- } static int ! w32sdk_audio_open_in(UINT uId, WAVEFORMATEX *pwfx) { MMRESULT mmr; int i; *************** *** 1040,1059 **** xfree(lpReadData); } lpReadData = (u_char*)xmalloc(nblks * blksz); ! memset(lpReadData, 0, nblks * blksz); ! if (whReadHdrs != NULL) { xfree(whReadHdrs); } whReadHdrs = (WAVEHDR*)xmalloc(sizeof(WAVEHDR)*nblks); ! memset(whReadHdrs, 0, sizeof(WAVEHDR)*nblks); ! mmr = waveInOpen(&shWaveIn, uId, pwfx, (DWORD)waveInProc, 0, ! (probe ? CALLBACK_NULL : CALLBACK_FUNCTION)); if (mmr != MMSYSERR_NOERROR) { waveInGetErrorText(mmr, errorText, sizeof(errorText)); --- 1034,1051 ---- xfree(lpReadData); } lpReadData = (u_char*)xmalloc(nblks * blksz); ! if (whReadHdrs != NULL) { xfree(whReadHdrs); } whReadHdrs = (WAVEHDR*)xmalloc(sizeof(WAVEHDR)*nblks); ! mmr = waveInOpen(&shWaveIn, uId, pwfx, (DWORD)waveInProc, 0, ! CALLBACK_FUNCTION); if (mmr != MMSYSERR_NOERROR) { waveInGetErrorText(mmr, errorText, sizeof(errorText)); *************** *** 1061,1069 **** return (FALSE); } ! if (!probe) { ! /* Initialize wave headers */ ! for (i = 0; i < nblks; i++) { whReadHdrs[i].lpData = lpReadData + i * blksz; whReadHdrs[i].dwBufferLength = blksz; whReadHdrs[i].dwFlags = 0; --- 1053,1060 ---- return (FALSE); } ! /* Initialize wave headers */ ! for (i = 0; i < nblks; i++) { whReadHdrs[i].lpData = lpReadData + i * blksz; whReadHdrs[i].dwBufferLength = blksz; whReadHdrs[i].dwFlags = 0; *************** *** 1071,1097 **** assert(mmr == MMSYSERR_NOERROR); mmr = waveInAddBuffer(shWaveIn, &whReadHdrs[i], sizeof(WAVEHDR)); assert(mmr == MMSYSERR_NOERROR); ! } ! whReadList = NULL; ! dwBytesUsedAtReadHead = 0; ! ! error = waveInStart(shWaveIn); ! if (error) { waveInGetErrorText(error, errorText, sizeof(errorText)); debug_msg("Win32Audio: waveInStart: (%d) %s\n", error, errorText); exit(1); - } - hAudioReady = CreateEvent(NULL, TRUE, FALSE, "RAT Audio Ready"); } ! return (TRUE); } - static int - w32sdk_audio_open_in(UINT uId, WAVEFORMATEX *pwfx) - { - return w32sdk_audio_open_in_probe(uId, pwfx, 0); - } static void w32sdk_audio_close_in() --- 1062,1082 ---- assert(mmr == MMSYSERR_NOERROR); mmr = waveInAddBuffer(shWaveIn, &whReadHdrs[i], sizeof(WAVEHDR)); assert(mmr == MMSYSERR_NOERROR); ! } ! ! whReadList = NULL; ! dwBytesUsedAtReadHead = 0; ! error = waveInStart(shWaveIn); ! if (error) { waveInGetErrorText(error, errorText, sizeof(errorText)); debug_msg("Win32Audio: waveInStart: (%d) %s\n", error, errorText); exit(1); } ! hAudioReady = CreateEvent(NULL, TRUE, FALSE, "RAT Audio Ready"); ! return (TRUE); } static void w32sdk_audio_close_in() *************** *** 1229,1235 **** static int audio_dev_open = 0; static int ! w32sdk_audio_open_mixer_probe(audio_desc_t ad, audio_format *fmt, audio_format *ofmt, int probe) { static int virgin; WAVEFORMATEX owfx, wfx; --- 1214,1220 ---- static int audio_dev_open = 0; static int ! w32sdk_audio_open_mixer(audio_desc_t ad, audio_format *fmt, audio_format *ofmt) { static int virgin; WAVEFORMATEX owfx, wfx; *************** *** 1276,1289 **** blksz = fmt->bytes_per_block; nblks = wfx.nAvgBytesPerSec / blksz; ! if (w32sdk_audio_open_in_probe(uWavIn, &wfx, probe) == FALSE){ debug_msg("Open input failed\n"); return FALSE; } assert(memcmp(&owfx, &wfx, sizeof(WAVEFORMATEX)) == 0); ! if (w32sdk_audio_open_out_probe(uWavOut, &wfx, probe) == FALSE) { debug_msg("Open output failed\n"); w32sdk_audio_close_in(); return FALSE; --- 1261,1274 ---- blksz = fmt->bytes_per_block; nblks = wfx.nAvgBytesPerSec / blksz; ! if (w32sdk_audio_open_in(uWavIn, &wfx) == FALSE){ debug_msg("Open input failed\n"); return FALSE; } assert(memcmp(&owfx, &wfx, sizeof(WAVEFORMATEX)) == 0); ! if (w32sdk_audio_open_out(uWavOut, &wfx) == FALSE) { debug_msg("Open output failed\n"); w32sdk_audio_close_in(); return FALSE; *************** *** 1306,1316 **** audio_dev_open = TRUE; return TRUE; } - static int - w32sdk_audio_open_mixer(audio_desc_t ad, audio_format *fmt, audio_format *ofmt) - { - return w32sdk_audio_open_mixer_probe(ad, fmt, ofmt, 0); - } int w32sdk_audio_open(audio_desc_t ad, audio_format *ifmt, audio_format *ofmt) --- 1291,1296 ---- *************** *** 1619,1625 **** af.sample_rate = 8000; for(i = 0; i < mixerGetNumDevs(); i++) { ! if (w32sdk_audio_open_mixer_probe(i, &af, &af, 1)) { w32sdk_audio_close_mixer(i); mixerIdMap[nMixersWithFullDuplex] = i; nMixersWithFullDuplex++; --- 1599,1605 ---- af.sample_rate = 8000; for(i = 0; i < mixerGetNumDevs(); i++) { ! if (w32sdk_audio_open_mixer(i, &af, &af)) { w32sdk_audio_close_mixer(i); mixerIdMap[nMixersWithFullDuplex] = i; nMixersWithFullDuplex++; *** memory.c Wed Mar 13 10:26:23 2002 --- memory.c.cvs Mon Mar 11 15:31:20 2002 *************** *** 498,506 **** debug_msg("realloc failed\n"); return NULL; } - /* update ch/p */ - ch = (chk_header*)m->addr; - p = (void*)(ch+1); /* Update table */ free(m->filen); m->filen = (char *) strdup(filen); --- 498,503 ----