Commit graph portaudio/src
Author SHA1 Message Date
John Melas
992e84387f fix compile error 2021-01-20 18:21:30 -08:00
John Melas
98ea697d33 new hal 2021-01-20 18:21:30 -08:00
John Melas
afc6591519 fix logging warnings 2021-01-20 18:21:30 -08:00
Ed Maste
fc2a24d394 OSS: correct test for unsupported formats
Previously GetAvailableFormats returned paSampleFormatNotSupported if
AFMT_S16_NE was not supported, regardless of the supported state of any
other formats.  Instead, return paSampleFormatNotSupported if no
supported formats are found.
2021-01-20 18:16:21 -08:00
Ed Maste
f13ab77c46 OSS: include both /dev/dsp and /dev/dsp0
On FreeBSD /dev/dsp is the default device but may not be /dev/dsp0.
PortAudio in the FreeBSD ports collection initially had a patch to
replace the default device with /dev/dsp (for example, with three
devices and /dev/dsp1 as the default we'd have /dev/dsp0, /dev/dsp,
/dev/dsp2).  This caused some trouble (the first device is no longer
default) and was later replaced with this change, leaving /dev/dsp
as the first entry, and just adding each /dev/dsp%d that exists.

FreeBSD bugs 208968 and 236118.
2021-01-20 18:15:56 -08:00
Blue Cat Audio
3532e56784 Fix: WASAPI should not fail with error if no device found 2021-01-07 12:52:09 +01:00
Dmitry Kostjuchenko
d6fc190012
Merge pull request #376 from jmelas/wasapi_mismatch
wasapi: Fix signed/unsigned mismatch warning.
2020-12-29 17:30:48 +02:00
John Melas
159b415af0 fix signed/unsigned mismatch warning 2020-12-29 17:22:57 +02:00
Bjørn Damstedt Rasmussen
2d8c7eb0f7 Report thread running so Pa_StartStream can return prior to PaStreamCallback
StartStream() calls WaitForSingleObject(stream->hThreadStart, 60*1000)
but it will not be able to return until X number of PaStreamCallback
have been performed by ProcessOutputBuffer().

The above behaviour will cause a deadlock if the user supplied
PaStreamCallback tries to access a shared lock currently held by the
function calling Pa_StartStream().

Also it's a bit weird that you start receiving PaStreamCallbacks
before Pa_StartStream() is able to complete.
2020-12-29 09:27:38 +01:00
MichalPetryka
f4a9023400 Align slashes 2020-12-28 08:22:23 -08:00
MichalPetryka
6f90db9612 Update pa_win_wmme.c 2020-12-28 08:22:23 -08:00
petris
17b895bb8f Fix ANSI in MME and DSound 2020-12-28 08:22:23 -08:00
Ross Bencina
7ffe61ea26 Fix uninitialized variable warnings. Improved solution for PR #377 2020-12-28 23:19:59 +11:00
Ross Bencina
6a676d3ecb wdmks: Reset packet->Header.OptionsFlags = 0 for each packet. Fixes issue with Focusrite Scarlett 2i4 (1st Gen). Fixes #310 2020-12-27 23:04:42 +11:00
Jean-Michaël Celerier
a7bda88e6b Fix a GCC warning due to unsigned substraction
Given

    unsigned int reqRate, setRate, deviation;

then 

    setRate - reqRate

is also an unsigned int - the code works "by chance" as `abs` casts that to an int which overflows and is technically undefined behaviour, for instance for setRate = 44100 and reqRate = 48000.

Thus cast them to int when computing the absolute value to ensure no UB.
2020-12-26 15:41:53 -08:00
Ross Bencina
1a5c410f7f return paInternalError from PaWasapi_UpdateDeviceList() when it is disabled 2020-12-21 16:37:38 +11:00
Ross Bencina
4ce9f0d0a8 fix issue #321 broken MSVC build. Always define PaWasapi_UpdateDeviceList() even when it is a no-op because it is mentioned in the .def file. 2020-12-21 16:37:38 +11:00
Ross Bencina
609b998334 Fix compiler warnings: 'type cast': conversion from 'int' to 'HWAVEIN' of greater size. See ticket #370 2020-12-21 16:35:52 +11:00
Phil Burk
cff8571659
Merge pull request #344 from daschuer/ChameleonPatch
Don't crash if alsa_snd_pcm_poll_descriptors fails
2020-12-18 09:57:32 -08:00
Phil Burk
0da139d46d
Merge pull request #373 from jmelas/dword_thread
Change PaWinUtilComInitializationResult::initializingThreadId to DWORD to match the native type of WIN32 thread id
2020-12-18 09:50:36 -08:00
John Melas
7503d9f239 fix non latin1 character in pa_debugprint.c 2020-12-18 22:58:22 +11:00
John Melas
1c54d71e2a use DWORD for thread id 2020-12-18 11:50:44 +02:00
Daniel Schürmann
9ddb047ab1 Improve code style 2020-12-14 08:22:54 +01:00
Daniel Schürmann
8f63b51808 Don't crash for alsa_snd_pcm_poll_descriptors fail in another case 2020-12-14 08:03:04 +01:00
luzpaz
0588b306c4
Revert typo
Co-authored-by: Phil Burk <philburk@mobileer.com>
2020-12-12 21:35:50 -05:00
luz paz
e1c3e59ee8 Fix user-facing and non-user-facing typos
Found via `codespell v2.1.dev0`
2020-12-11 20:24:05 -05:00
dmitrykos
f3924081ab wasapi: Fixed underruns in the Exclusive mode on UWP platform (or when timeBeginPeriod does not allow to set 1 ms granularity) by assuming that system timer granularity on UWP equals to 10 msec, make sure time to sleep provided by GetNextSleepTime is aligned to the granularity of the system timer. 2020-12-11 15:30:08 +02:00
Nemirtingas
e5279859ce
Fix GUID defines in pa_win_wdmks.c when compiling with clang-cl (#327)
Fix GUID defines in pa_win_wdmks.c when compiling with clang-cl

Co-authored-by: Nemirtingas <nanaki89@hotmail.fr>
2020-12-08 17:28:56 +11:00
Dmitry Kostjuchenko
5f35d35ad0
Fixed breaking strict-aliasing rules (if compiled with GCC with -fstrict-aliasing) in PaWin_InitializeWaveFormatExtensible(). (#342) 2020-12-08 17:26:54 +11:00
Daniel Schürmann
b37657be70 Remove superfluid void cast 2020-11-27 08:40:45 +01:00
Ross Bencina
521209c633
pa_mac_core_utilities: add void to empty function argument list (#355)
Insert "void" in the argument list to turn initializeXRunListenerList and destroyXRunListenerList declarations into valid prototypes. Also update the function definitions to match. Thanks to Paul Boersma.
2020-11-26 13:46:05 +11:00
Paul Boersma
4793ce4fbf
Add missing void argument, and include include pa_jack.h in pa_jack.c (#347)
* Update pa_jack.c

include `pa_jack.h` in `pa_jack.c`, which provides prototypes for PaJack_SetClientName() and PaJack_GetClientName()

* Update pa_unix_util.h

PaUnixThreading_Initialize() is not a prototype in C, make it PaUnixThreading_Initialize(void)

* Update pa_unix_util.c

make PaUnixThreading_Initialize definition correspond to prototype
2020-11-26 12:39:01 +11:00
Colin McEwan
7e2a33c875
Fix crashes on disconnected pins in wmdks topologies. (#300)
* Fix crashes on disconnected pins in wmdks topologies.
* Fix potential assert on disconnected physical output pin in PinNew
2020-11-19 13:22:22 +11:00
Daniel Schürmann
ccc88607b6 Don't crash if alsa_snd_pcm_poll_descriptors fails 2020-11-12 00:25:34 +01:00
Phil Burk
88c71a6ec4
Merge pull request #338 from hoolrory/ticket_218_2
Replace usage of deprecated component manager APIs on 10.6+
2020-10-28 17:32:30 -07:00
Dmitry Kostjuchenko
f1cd56e05b
Merge pull request #341 from PortAudio/winrt
wasapi: Fixed compilation with MinGW32 (original mingw32, not mingw-w64).
2020-10-26 22:29:00 +02:00
dmitrykos
b3592b0749 wasapi: Fixed compilation with MinGW (mingw32): gcc version 6.3.0 (MinGW.org GCC-6.3.0-1), include /mingw-include folder explicitly (when compiling with mingw-w64 the /mingw-include folder must not be included). 2020-10-26 21:28:37 +02:00
Dmitry Kostjuchenko
e86babdcb2
Merge pull request #340 from PortAudio/winrt
wasapi: Support multiple devices in the device list on Windows UWP/WiRT platform.
2020-10-26 16:49:44 +02:00
dmitrykos
a5fb8d94aa wasapi: Support multiple devices in the device list on Windows UWP/WinRT platform. All UWP/WinRT functions are now prefixed as PaWasapiWinrt_ to be clearly visible, therefore PaWasapi_SetDefaultInterfaceId() was renamed to PaWasapiWinrt_SetDefaultDeviceId(). Expanded Important notes regarding UWP/WinRT platform and how to make the fully-functional device list with the corresponding pseudo-code example for easier understanding of the functionality. 2020-10-26 16:40:25 +02:00
Hool, Rory
b1a0902852 Replace usage of deprecated component manager APIs on 10.6+
These APIs are deprecated in 10.8+ and are disabled on 11.0(10.16)+ https://developer.apple.com/documentation/coreservices/carbon_core/component_manager?language=objc
> "This application, or a library it uses, is using the deprecated Component Manager for hosting Audio Components. This is not supported when rebuilding against the 10.16 or later SDK. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h."
2020-10-22 13:53:56 -04:00
Dmitry Kostjuchenko
da20219f27
Merge pull request #312 from PortAudio/alsa_ignore_all_plugins
alsa: Option to ignore all ALSA plugin devices.
2020-10-22 10:34:51 +03:00
dmitrykos
6bb858643b alsa: Introduce possibility to ignore all ALSA plugin devices by setting the environment variable PA_ALSA_IGNORE_ALL_PLUGINS to non-0. Fixed logic of guarding assertion in BuildDeviceList() when only one or none PCM device is available (may occur if PA_ALSA_IGNORE_ALL_PLUGINS is set to non-0 or when device has no any audio device available, including plugin devices). 2020-10-15 11:05:05 +03:00
Dmitry Kostjuchenko
6a90e596b6
Merge pull request #325 from PortAudio/winrt
wasapi: Refactored device list creation, if faulty audio device is re…
2020-10-10 00:43:32 +03:00
dmitrykos
522f982158 wasapi: Refactored device list creation, if faulty audio device is reported as active by WASAPI then it will not break device list creation, silenced warnings when compiling for UWP platform. 2020-10-10 00:42:20 +03:00
Dmitry Kostjuchenko
3913a95a9b
Merge pull request #324 from PortAudio/winrt
wasapi: Replace tabs with 4-spaces to comply with PortAudio code styl…
2020-10-09 00:59:40 +03:00
dmitrykos
aa6ff975af wasapi: Replace tabs with 4-spaces to comply with PortAudio code style guidelines (http://github.com/PortAudio/portaudio/wiki/ImplementationStyleGuidelines). 2020-10-09 00:57:23 +03:00
Ross Bencina
19f638da5a wdmks: ensure that pins that failed creation by PinNew() are set to NULL. Note that PaUtil_AllocateMemory currently calls GlobalAlloc without the GMEM_ZEROINIT flag, so there was no guarantee that filter->pins[pinId] was zero. 2020-10-08 12:03:47 +11:00
dmitrykos
dcc2f7fa48 wasapi: Fix paInvalidSampleRate (and any other) error code is replaced with paInvalidDevice if audio client failed to be created due to some reason. 2020-10-03 23:21:11 +03:00
dmitrykos
697fcddce5 wasapi: Improve stability of playback in Polling Shared mode with a low host latency requsted (22 ms):
- Implement workaround for system timer coarse granularity causing underruns by using timeBeginPeriod/timeEndPeriod APIs inside the Event and Poll thread handlers.
- Update next sleep time of the Poll rendering loop dynamically depending on time taken for processing/rendering of audio data into the available host buffer to avoid underruns and fit processing time into periodic polling time slots.
- Add support for time slots logging in Poll mode if PA_WASAPI_LOG_TIME_SLOTS is defined. Fixed audible glitches by preloading the whole host buffer before stream is started.
- Fix audible glitches on stream start by preloading the whole host buffer before stream is started.
2020-10-03 22:55:36 +03:00
Svein Seldal
9ebe293dc5 Implement fix for glitching WASAPI playback #303 2020-09-27 18:28:19 +02:00