rossb [Thu, 18 Aug 2011 11:19:36 +0000 (11:19 +0000)]
moved memory barriers as per this thread: http://music.columbia.edu/pipermail/portaudio/2011-August/012803.html . use volatile because MSVC Read/WriteBarrier() intrinsics are just compiler barriers, but MSVC will insert memory barriers if you use volatile. see: http://msdn.microsoft.com/en-us/library/ms686355(VS.85).aspx
philburk [Thu, 18 Aug 2011 08:44:03 +0000 (08:44 +0000)]
Fix removal of device property change listeners.
This may fix some occasional memory corruption isses we were seeing in the loopback test.
I think the listeners may have gotten called after the stream was freed.
rossb [Thu, 11 Aug 2011 12:18:02 +0000 (12:18 +0000)]
Updated patest_suggested_vs_streaminfo_latency test. Python script now creates plots for a number of different buffer sizes. Supports testing at different sample rates.
pa_win_wmme.c fixed bug in stream info inputLatency see ticket #178. improved interpretation of suggestedLatency based on recent discussions. see tickets #98 #99 #181
this should resolve issues on OS X with systems where only sdk 10.6 is available and includes a likely fix for future simillar issues with 10.7. See ticket 179.
rossb [Wed, 11 May 2011 10:00:52 +0000 (10:00 +0000)]
Replaced MM timer with a high priority thread for audio compute, based on a patch by Dmitry Kostjuchenko. Reason: there is one global MM timer thread per process and doing audio compute in it was interfering with timer accuracy and also with running multiple DSound streams. The old MM timer based implementation is still available if you define PA_WIN_DS_USE_WMME_TIMER -- this may be removed in future.
rossb [Mon, 9 May 2011 20:05:34 +0000 (20:05 +0000)]
refactored COM initialization for dsound, asio and wasapi to new source file pa_win_coinitialize.c. fixes com uninitialisation bugs in error cases. resolves ticket #128
rossb [Mon, 2 May 2011 17:07:11 +0000 (17:07 +0000)]
renamed PaUtil_GetBufferProcessorInputLatency to PaUtil_GetBufferProcessorInputLatencyFrames and PaUtil_GetBufferProcessorOutputLatency to PaUtil_GetBufferProcessorOutputLatencyFrames. see ticket #161
dmitrykos [Tue, 8 Mar 2011 17:20:07 +0000 (17:20 +0000)]
wasapi:
- fixed warning of incompatible type usage when ring-buffer is used for blocking interface
- fixed compilation using MSYS with MinGW compiler (regenerate makefile with configure)
philburk [Sun, 6 Mar 2011 00:35:24 +0000 (00:35 +0000)]
Add include string.h to loopback test.
Use full duplex if input and output device the same.
Check for format conversion buffer overflow in case of huge framesPerBuffer.
philburk [Mon, 28 Feb 2011 23:56:48 +0000 (23:56 +0000)]
Added patest_write_sine_nonint to Makefile.
Check for paNonInterleaved on Mac and return paSampleFormatNotSupported.
Fix pa_minlat.c. Linux was complaining about not checking fgets return value.
dmitrykos [Mon, 21 Feb 2011 22:41:06 +0000 (22:41 +0000)]
wasapi: fixed the bug when on stream stop/start/stop/start sequence callback could be called with number of samples smaller than requested by user in Pa_OpenStream
dmitrykos [Mon, 21 Feb 2011 08:02:21 +0000 (08:02 +0000)]
fixed build by reverting 1604 revision where 'pa_ringbuffer.o' dependency was added to Makefile.in, modified configure.in for WASAPI build and added explicit 'pa_ringbuffer.o' dependency there instead
rossb [Sat, 12 Feb 2011 09:20:26 +0000 (09:20 +0000)]
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds.
rossb [Sat, 12 Feb 2011 09:19:37 +0000 (09:19 +0000)]
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds.
rossb [Sat, 12 Feb 2011 09:18:28 +0000 (09:18 +0000)]
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds.
dmitrykos [Fri, 11 Feb 2011 00:15:51 +0000 (00:15 +0000)]
alsa:
- implemented dynamic ALSA loading, you shall define PA_ALSA_DYNAMIC when compiling PortAudio library, by default PortAudio will use compile time linkage;
- added PA_ALSA_PATHNAME define to redefine ALSA library path and filename to some other name and location, has effect only together with PA_ALSA_DYNAMIC;
- added extension function (PaAlsa_SetLibraryPathName) which allows to set ALSA library path and filename during application run-time overwriting default set by PA_ALSA_PATHNAME during compilation;
- added API compatibility with Android OS (although ALSA may not be available on your device and usually requires 'root' access rights to open an audio device), some missing ALSA functions are replaced with stubs (needs more input from interested parties), to compile on Android you need to add ALSA headers (get it from Android GIT source-code tree) to compiler's searchable path.
dmitrykos [Wed, 9 Feb 2011 08:53:50 +0000 (08:53 +0000)]
alsa:
- fixed callback thread to exit normally if error condition was satisfied during stream processing (OnExit wasn't called), it was possible cause of crash if error happened inside the thread
- modified processing thread to timeout during poll() within around 2 seconds instead of 64 milliseconds, this will help to fix problems on systems with low processing power and possible CPU overloading, like portable ARM devices
- timeout of poll() will not cause stream to stop but will cause Alsa stream restart, poll timeout will now set 'xrun' event to 1