gineera [Mon, 18 Nov 2013 11:42:27 +0000 (11:42 +0000)]
Pa_process: Fix input channel adaption by not skipping the input conversion when the host and user number-of-channels are not equal. The bug manifested when recording mono from a stereo-only device (eg with Alsa hw: devices on some sound-cards), and was reported by the Mixxx team -see https://bugs.launchpad.net/mixxx/+bug/900364. (In the long-term, some refactoring may be preferable.) Also fixed copy-paste typos in comments.
gineera [Fri, 15 Nov 2013 12:27:07 +0000 (12:27 +0000)]
Jack: Add a port-type filter expression to calls to jack_get_ports() so that only audio ports are listed (removing eg Midi etc) as reported by 'sqweek'.
gineera [Thu, 17 Oct 2013 12:44:09 +0000 (12:44 +0000)]
Alsa: Revise the use of the environment variable 'PA_ALSA_PLUGHW' so it correctly influences the Device-List and the capabilities reported. Also rename a mis-leading variable and add one additional DEBUG line.
gineera [Tue, 27 Aug 2013 17:14:51 +0000 (17:14 +0000)]
Alsa: Add function to prevent duplicate parts in the visible pa device name string, that occur when the pcm-device name starts with the card name (since they are both used). Achieved by trimming the pcm-device string beginning.
gineera [Thu, 22 Aug 2013 19:43:07 +0000 (19:43 +0000)]
Alsa: Rename some variables in pa_linux_alsa where the meaning is mis-leading or wrong in the Alsa context. Also tweak one debug message and a few typos.
gineera [Tue, 13 Aug 2013 20:37:04 +0000 (20:37 +0000)]
Alsa: Fix handling of poll descriptors in PaAlsaStream_WaitForFrames(). Otherwise if capture signals before playback a duplex stream could poll the wrong descriptor, causing a loop (reported by Alexander Kartashov).
rbencina [Tue, 6 Aug 2013 08:26:55 +0000 (08:26 +0000)]
fixed bug that was causing memory corruption in PA/ALSA when host sample format was lager than user format. e.g. using 16 bit output with a sound card that used 24 bit buffers. the incorrect input zeroer was being used. Thanks to Anders Tornvig for identifying the problem
gineera [Sat, 8 Jun 2013 19:30:41 +0000 (19:30 +0000)]
OSS: revise default latency reporting: previous fixed values could not actually be achieved with OSS power-of-2 sizes. Instead try a configuration and correctly report the default latency based on one less than the number of fragments; also fix the stream component 'bufSz' calculation.
gineera [Sat, 8 Jun 2013 19:12:25 +0000 (19:12 +0000)]
Alsa: revise latency use and calculations, since the latency should be equivalent to one Alsa period less than the Alsa ringbuffer (was based on the whole). Also fixes failure if zero latency was specified.
rbencina [Thu, 2 May 2013 01:06:01 +0000 (01:06 +0000)]
factored out InitPaDeviceInfoFromAsioDriver function. skip device rather than failing entire init process if a single ASIO driver returns an error during init. This was happening with MOTU devices if the device wasn't present. See ticket #221
rbencina [Tue, 4 Dec 2012 14:45:31 +0000 (14:45 +0000)]
fix assertion failures with blocking io in ASIO host api. host buffer formats were not inited with non-interleaved flag in parameters to blocking i/o buffer processor
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.