philburk [Mon, 25 Jun 2012 01:12:29 +0000 (01:12 +0000)]
Fix ring buffer handling in pa_mac_core.c that caused many spurious paInputOverflow flags.
Fixed size bug when input underflow detected. Code was confused between bytes and elements.
Zero out the beginning of a recording when detecting pops to prevent start of audio from looking like a pop in qa loopback test.
philburk [Fri, 22 Jun 2012 21:02:36 +0000 (21:02 +0000)]
Fixed warnings that broke build.
Fixed bug added to paqa_latency.c that caused a failed test to appear to succeed. Error result was not passed up to main.
gineera [Tue, 5 Jun 2012 16:36:54 +0000 (16:36 +0000)]
qa-latency: use defaultSampleRate; fix crash on single loops; change latency check limits; continue after a failed test; some alterations to printed messages.
gineera [Fri, 18 May 2012 16:04:30 +0000 (16:04 +0000)]
Alsa: re-write SetApproximateSampleRate() to allow small deviations from a nominal requested rate, so inexactly clocked cards do not fail (use 1% tolerance).
wasapi: zero wasapi host api rep immediately after init. prevents (unlikely) issue with trying to free uninited allocations if com init fails during Pa_Initialize() (Ross Bencina)
zero asio host api rep immediately after init. prevents (unlikely) issue with trying to free uninited allocations if com init fails during Pa_Initialize()
explicit casts for double->int. comment cleanups. fixed an bug where uninited pointer could be freed during teardown if memory allocation failed during directsound host api init (extremely unlikely).
robiwan [Sat, 25 Feb 2012 07:43:10 +0000 (07:43 +0000)]
WDM-KS:
- Fixed so default sample rate prioritizes frequencies earlier in search order
- Changed WIN32 to _WIN32 (as it is always defined, both in x86 & x64 builds)
robiwan [Thu, 23 Feb 2012 15:29:24 +0000 (15:29 +0000)]
ASIO:
- Certain drivers write over the available memory of PaAsioDriverInfo, now a padding area makes sure
the stack doesn't get corrupted.
WDM-KS:
- Corrected capture event handling
robiwan [Wed, 22 Feb 2012 12:20:26 +0000 (12:20 +0000)]
General:
- Change of CMake options to utilize built in header configuration support (PA_USE_*)
- Added CMakeLists.txt for examples
- Added paex_ocean_shore.c as an example how to use PA ring buffer for lock-free communication with the audio callback
WDM-KS:
- Added better default sample rate support
- Made sure that all pins now have a name, even if only "Input" or "Output"
- IsUSBDevice fixed acc. to Alex Lessard's suggestion
- IsNameUSBAudioDevice fixed similarly
dmitrykos [Thu, 16 Feb 2012 16:59:03 +0000 (16:59 +0000)]
alsa:
- support for sub-devices;
- fixed 24-bit format support for some devices which on little-endian machine operate only in big-endian format, example of such device is Audio4DJ which supports only SND_PCM_FORMAT_S24_3BE (for this patch implemented support only for 24-bit audio samples although other formats may be added in case of necessity and if such devices exist);
! special thanks to Owen Williams from Mixxx project who tested these changes/fixes on real Audio4DJ device.
dmitrykos [Thu, 16 Feb 2012 15:02:08 +0000 (15:02 +0000)]
wasapi:
- fixed possible buffer overrun inside WASAPI for Output poll-driven mode according ticket #196 (thanks to Ross Bencina for spotting this and proposing the solution)
dmitrykos [Thu, 16 Feb 2012 14:49:28 +0000 (14:49 +0000)]
wasapi:
- fixed device name incorrect in case it contains non-Latin characters (thanks to Robert Bielik for proposed solution), now it is converted to UTF-8 encoded string
- fixed damaged audio (pops & clicks) for Input exclusive event-driven mode if specified latency was below 23 ms
rossb [Wed, 11 Jan 2012 13:22:50 +0000 (13:22 +0000)]
fixed bug in coreaudio host api: suggested latency of zero with fixed user buffer size resulted in min supported buffer size instead of requested user buffer size
rossb [Tue, 27 Dec 2011 08:58:59 +0000 (08:58 +0000)]
fixed regression in r1718 (PA/coreaudio) where PA callback timestamps would be offset by massive latency (frames interpreted as seconds) if the initial query for actual device sample rate failed. This checkin reinstates the use of nominal sample rate as default for latency calculations when actual sample rate query fails.
alan_horstmann [Thu, 8 Dec 2011 19:43:29 +0000 (19:43 +0000)]
Correct some entries in the devices 'predefinedNames' list - 'dmix' device is always only for playback. This removes an Alsa-lib dmix error message during Portaudio initialization.
eblennerhassett [Tue, 18 Oct 2011 20:34:48 +0000 (20:34 +0000)]
Replace deprecated HPI functions and datatypes with current (HPIv4.08) for #197
Remove support for HPI < 3.5
Replace unused subsys pointer parameter with NULL.
Experiment with moving example code into its own folder.
Note that this revision needs to have autoreconf run.
I tried to do that on Mac but it failed. So I will try on Linux.
Implement the Float32 to UInt8 converters.
The loopback test now passes cleanly for the first time on my PreSonus FireStudio.
Added tests for clip and dither flag combinations to loopback.
rossb [Thu, 25 Aug 2011 17:44:01 +0000 (17:44 +0000)]
added stream callback documentation describing real-time constraints including not calling non-real-time code, and that it should be safe to consume 70% or more of available CPU time in the callback. resolves #96
rossb [Thu, 25 Aug 2011 15:59:32 +0000 (15:59 +0000)]
Fixed directsound PaDeviceInfo default latency and PaStreamInfo latency fields. Fixed host buffer size calculations based on suggestedLatency parameters. Switched to using 48kHz as default sample rate when other info isn't available. Fixed edge case in TimeSlice() where a full duplex stream could read data even though either input or output reported zero bytes available. Renamed some variables for clarity. Fixes ticket #160 (PaStreamInfo latency). Addresses #122 (although we're still using old default latency values from V18 codebase). Addresses #99 (correct interpretation of suggestedLatency down to zero).
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.