Commit graph portaudio/src
Author SHA1 Message Date
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
Ross Bencina
f828ad5fdc Merge branch 'alsa_uninitialized_dir_fixes' into 'master'
Fix additional cases of uninitialized dir variable in pa_linux_alsa.c

+1: Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7613051
2020-08-06 00:25:37 +00:00
Ross Bencina
b107f0853a Merge branch 'ticket_263_alsa_uninitialized_var_2' into 'master'
Fix uninitialized dir variable in pa_linux_alsa.c (Version 2)

+1: Ross Bencina, Phil Burk

Merged-on: https://assembla.com/code/portaudio/git/merge_requests/7612921
2020-08-06 00:23:46 +00:00
dmitrykos
799a6834a5 wasapi: Fixed OSVERSIONINFO initialization (patch provided by Carlo Bramini). 2020-03-26 20:05:53 +02:00
Ross Bencina
f269bf93e6 follow up fix related to 933b05c331 (ticket #263 uninitialized dir variable): fix the three other places where dir parameter wasn't set prior to entry to a snd_pcm_*_get_* function. There is some ambiguity about (a) whether this is intentional (i.e. use the rounding dir returned by previous *_get_* call, the PA source code does not indicate), and (b) whether it is meaningful (i.e. whether *_get_* functions actually use the value upon input -- the ALSA docs are not clear. regarding (a): I don't think it's intentional, i think it was just oversight. In any case thr risk is low: the underlying values of period_size, periods_max, periods_min, are all integer and should not be rounded, get_rate_min/get_rate_max are used only for debug reporting (I've set them to 0,0 for a minimal change from the current code, but -1,1 makes more sense). 2019-05-14 07:36:24 +10:00
Ross Bencina
933b05c331 fix uninitialized dir variable in pa_linux_alsa.c GropeDevice() by removing it. pass NULL as parameter to ALSA functions instead. see ticket #263. 2019-05-14 07:00:47 +10:00