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.
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