Commit graph portaudio/src/hostapi
Author SHA1 Message Date
rossb
f519653f7e CoreAudio: if user specifies framesPerBuffer make sure host buffer is an integer multiple of user buffer 2011-10-20 09:40:12 +00:00
eblennerhassett
3130f5c1af Update header authors, copyrights, HPI url. Remove Ludwig Schwardt bugreport email. 2011-10-18 20:48:49 +00:00
eblennerhassett
82be702f17 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.
2011-10-18 20:34:48 +00:00
philburk
9cdd56f5b4 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.
2011-09-01 22:08:32 +00:00
rossb
4939e41248 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). 2011-08-25 15:59:32 +00:00
rossb
16f40db4c8 wmme limit host buffer size to 32k. try to make host buffer size a factor of over-limit user buffer size. closes #189 2011-08-25 07:15:31 +00:00
philburk
fa8a45c845 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.
2011-08-18 08:44:03 +00:00
rossb
8f6b491bae revised WMME default latency on XP, Vista, Win7 to 90ms. Resolves ticket #80. Could go lower if we had more results from ticket #185 2011-08-18 05:58:56 +00:00
rossb
903263d777 Fixed pa_win_wmme.c latency calculations to result in non-decreasing actual latency for increasing suggested latency. 2011-08-11 12:16:47 +00:00
philburk
948250370c Calculate timestamp offsets from device properties.
Combine multiple user buffers in a host buffer to honor longer latency.
2011-07-29 18:22:04 +00:00
rossb
e07e139e0d 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 2011-07-28 12:03:09 +00:00
rossb
3ed32c7a04 paqa_latency: tweak parameter printing 2011-07-28 05:45:57 +00:00
philburk
6fa03e953c Fix broken build due to unused variables. Grrr. 2011-07-21 18:47:18 +00:00
philburk
edac3c99eb Fix improper calculation of big buffer sizes. See bug #187
This fixes a click heard with big buffers.
2011-07-21 18:44:58 +00:00
philburk
3aad8c0a9f Fixed broken Mac build by removing unused label. 2011-07-21 17:34:19 +00:00
philburk
e3387a98a7 Improve calculation of default latencies on Mac CoreAudio.
Allow very low buffer sizes if suggestedLatency is low.
Set actual latencies in StreamInfo.
2011-07-21 08:29:26 +00:00
rossb
982dd233f5 fixed regression in r1612 that broke coreaudio non-interleaved callback i/o 2011-06-30 12:48:08 +00:00
aknudsen
ef2d8b6cd8 PA ALSA: define SND_PCM_TSTAMP_ENABLE as SND_PCM_TSTAMP_MMAP if the former is undefined 2011-05-26 20:19:19 +00:00
rossb
5716669053 extra comments 2011-05-11 21:05:18 +00:00
rossb
56422c6c56 fixed use of timeBeginPeriod/timeEndPeriod in pa_win_ds.c 2011-05-11 20:52:24 +00:00
rossb
28397f5c4a 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. 2011-05-11 10:00:52 +00:00
rossb
d03dd9e357 added userFramesPerBuffer parameter to SelectHostBufferSize in preparation for improving asio buffer size handling 2011-05-10 15:58:15 +00:00
rossb
52ab9d6600 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 2011-05-09 20:05:34 +00:00
rossb
cbd24dc45c renamed PaUtil_GetBufferProcessorInputLatency to PaUtil_GetBufferProcessorInputLatencyFrames and PaUtil_GetBufferProcessorOutputLatency to PaUtil_GetBufferProcessorOutputLatencyFrames. see ticket #161 2011-05-02 17:07:11 +00:00
rossb
1938ce6628 renamed PaAsio_GetAvailableLatencyValues to PaAsio_GetAvailableBufferSizes and included a backward compatibility #define. see ticket #111. 2011-05-02 15:49:20 +00:00
rossb
b1035dcd8f removed #ifndef check for PA_USE_DS from pa_win_ds.c 2011-05-01 16:14:29 +00:00
rossb
57264ba799 fixed copy/past error in PA_USE_DS check code in pa_win_ds.c 2011-05-01 12:05:52 +00:00
dmitrykos
ff61de145b wasapi:
- fixed warning of incompatible type usage when ring-buffer is used for blocking interface
 - fixed compilation using MSYS with MinGW compiler (regenerate makefile with configure)
2011-03-08 17:20:07 +00:00
rossb
1783cf4fba use LoadLibraryA instead of LoadLibrary to support unicode build 2011-03-04 01:45:06 +00:00
philburk
1ca032a561 Ass semicolon to fix "label at end of compound statement" error
caused by pthread_cleanup_pop(1) macro.
2011-03-01 00:49:52 +00:00
philburk
7aad01a1d3 Added patest_write_sine_nonint to Makefile.
Check for paNonInterleaved on Mac and return paSampleFormatNotSupported.
Fix pa_minlat.c. Linux was complaining about not checking fgets return value.
2011-02-28 23:56:48 +00:00
dmitrykos
3fb0ef9e30 wasapi: fixed the bug when on stream stop/start/stop/start sequence callback could be called with number of samples smaller than requested by user in Pa_OpenStream 2011-02-21 22:41:06 +00:00
rob_bielik
59f8c8975c Ticket #132 2011-02-17 15:56:04 +00:00
rossb
54aaddf9e3 moved src/common/pa_skeleton.c to src/hostapi/skeleton/pa_hostapi_skeleton.c. updated all build files accordingly. 2011-02-12 10:22:00 +00:00
rossb
af36f2762b added braces to clarify precedence in latency calculation expression 2011-02-12 09:26:30 +00:00
rossb
e794f3bd02 renamed some latency variables to make it clear they are in frames not seconds 2011-02-12 09:21:52 +00:00
rossb
ba156ee92f fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds. 2011-02-12 09:19:37 +00:00
rossb
ad9c8ad083 fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds. 2011-02-12 09:18:28 +00:00
dmitrykos
9c4c92fef6 alsa:
- implemented dynamic ALSA loading, you shall define PA_ALSA_DYNAMIC when compiling PortAudio library, by default PortAudio will use compile time linkage;
- added PA_ALSA_PATHNAME define to redefine ALSA library path and filename to some other name and location, has effect only together with PA_ALSA_DYNAMIC;
- added extension function (PaAlsa_SetLibraryPathName) which allows to set ALSA library path and filename during application run-time overwriting default set by PA_ALSA_PATHNAME during compilation;
- added API compatibility with Android OS (although ALSA may not be available on your device and usually requires 'root' access rights to open an audio device), some missing ALSA functions are replaced with stubs (needs more input from interested parties), to compile on Android you need to add ALSA headers (get it from Android GIT source-code tree) to compiler's searchable path.
2011-02-11 00:15:51 +00:00
dmitrykos
4318a7556b alsa:
- fixed callback thread to exit normally if error condition was satisfied during stream processing (OnExit wasn't called), it was possible cause of crash if error happened inside the thread
- modified processing thread to timeout during poll() within around 2 seconds instead of 64 milliseconds, this will help to fix problems on systems with low processing power and possible CPU overloading, like portable ARM devices
- timeout of poll() will not cause stream to stop but will cause Alsa stream restart, poll timeout will now set 'xrun' event to 1
2011-02-09 08:53:50 +00:00
dmitrykos
f588f3cd5d wasapi: - releasing Input/Output buffer if error occurred inside the processing routine 2011-02-03 15:37:12 +00:00
dmitrykos
2b0faea85c wasapi:
- fixed blocking interface, Input and Output
 - improved Exclusive Input device latency tunning
 - applied path provided by Jean-François Charron (D-BOX Technologies Inc.) which improves handling of COM objects in multi-threaded environment and initialization stage which could under certain conditions return paNoError event when initialization failed
2011-02-03 15:15:44 +00:00
rossb
b4931e7298 removed/cleaned up doxygen @todo items. moved to TRAC 2011-02-02 18:58:17 +00:00
rossb
931a003f52 cleanup: changed if() to switch() 2011-02-02 18:22:43 +00:00
rossb
e286d2c10a removed doxygen TODO items from pa_asio implementation. migrated them to new trac tasks: #103, #104, #105, #106, #107, #108, #109, #110, #111 2011-02-01 12:52:14 +00:00
dmitrykos
272adbefc7 wasapi: allow mono input/output streams be created when Blocking interface is used. Thanks to Chris (c319chris@aol.com) for providing the patch. 2011-01-03 18:33:32 +00:00
dmitrykos
8b6f0610b6 wasapi: fixed audio device not released to other applications if WASAPI Exclusive stream is stopped but not yet closed. Bug does not affect Shared mode streams. Fixed possible object's leakage in situation when WASAPI thread encountered an error and stopped and user decided to start stream again without prior closing it. 2010-12-26 16:36:52 +00:00
dmitrykos
41645b30d5 wasapi: fixed audio gain is decreased by 2 when audio stream is opened for capturing and 1 (Mono) channel selected, this bug occurs only if non-Stereo input source used (mono mic). 2010-12-26 16:17:56 +00:00
dmitrykos
ba1def6126 coreaudio: fixed incorrect value type used with OSAtomicOr32 API (xrunFlags were casted from long to unsigned int) which results in value truncation on systems where 'long' is 64 bits 2010-12-25 13:26:17 +00:00
dmitrykos
f1e8193ae1 wasapi:
- using WAVE_FORMAT_PCM for mono/stereo 8/16-bit stream configuration to avoid possible driver refusal upon audio client creation
 - modified default speaker mask for 5.1 and 7.1 configuration to _SURROUND (correct) versions, added default speaker configuration for 2.1, 4.1, 6.1 cases
2010-11-07 08:23:51 +00:00