Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:mnhauke:mingw:win64:sdr
mingw64-portaudio
mingw64-portaudio.changes
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mingw64-portaudio.changes of Package mingw64-portaudio
------------------------------------------------------------------- Sat Sep 11 09:16:41 UTC 2021 - mardnh@gmx.de - Update to version 0.0.0.git1453481052.c7655a1: * Files needed for compiling on El Capitan. * Add support for 10.11 SDK so PortAudio can compile on Mac. * wasapi: correction to the previous commit * wasapi: workaround to avoid PaWasapi_Initialize() failure when enumerating devices and device fails to report min/default periods with IAudioClient::GetDevicePeriod(): ignore error and assign WASAPI common known period values for min/default * wasapi: support for setting the WASAPI's AudioClientProperties options via PaWasapiStreamInfo struct (__IAudioClient2_INTERFACE_DEFINED__ must be defined by Windows SDK (for Windows 8 and up) to have effect from these new options, otherwise it will be noop) * update doxygen main page to reference developer guidelines and implementation style guidelines on the Wiki * checkfiledocs.py: blacklist mingw-include from doc check * checkfiledocs.py: only check source code under src and include * Issue #234 fixed typo in configure and configure.in affecting mingw builds. Rename: pa_win_wdmks_util.o --> pa_win_wdmks_utils.o * removed bindings/java from doxygen generated documentation * Pa_process: Fix output channel adaption by not skipping the conversion when the host and user number-of-channels are not equal. Reported by Leif Asbrink when using an envy24 soundcard on Linux at it's native Int32 format with 1 or 2 channels. Corresponding fix for input already in r1913. * Add Pa_GetVersionInfo() Add scripts to update pa_svnrevision.h * Test adding a second file with SVN keywords. * Used propset to enable SVN keywords on test file. * Experiment with the SVN version keywords. * Add version numbering with major.minor.subminor format. Bump version to 19.5.0 * pa/wmme: avoid potential (but highly unlikely) overflow in buffer size in call to WideCharToMultiByte if a device name length exceeds INT_MAX. should also fix compiler warning about size_t to int assignment. * removed declaration of unused variable * fixed compiler warning: conversion from 'double' to 'float', possible loss of data * disabled deprecated API warning for GetVersionEx in dsound, wmme and wdmks host APIs. * Removed MSVC dependence on ksguid.lib from src/os/win/pa_win_wdmks_utils.c (ksguid.lib is no longer in Platform SDK 8.0). Always use static instances of GUIDs like the GCC builds do. Removed ksguid.lib from MSVC project file. The following symbols are no longer used: PA_WDMKS_NO_KSGUID_LIB, PAWIN_WDMKS_NO_KSGUID_LIB; removed them from CMakeLists.txt and the MSVC project file. * cpp binding: make operator == and != const. thanks to Riot for this patch. ticket #230 * PA/CoreAudio: fixed copy-pasto: last host error was being associated with paInDevelopment host api not paCoreAudio * Added more debugging info in wdmks/pa_win_wdmks.c * Committing Lelands patch for WDM-KS, should take care of some of the problems referenced here http://music.columbia.edu/pipermail/portaudio/2014-August/016246.html * olivier's device name patch for os x * pa_win_ds.c converted tabs to spaces (only a small amount of code was incorrectly using tabs). * DirectSound: correctly output device names as UTF-8 when compiled with UNICODE defined. Note that this patch may not be correct if UNICODE is not defined. Patch from Tobias Erichsen. See ticket #224 for details. * pa_win_wmme.c: converted tabs to spaces (just a few sections) * WMME: correctly convert device names to UTF-8, see ticket #224. Thanks to Tobias Erichsen for the patch. * CMake: Added PA_WDMKS_NO_KSGUID_LIB to WDMKS and solution folders WDMKS: Support for default device (see caveat for input devices though in ScanDeviceInfos) Added possibility to set channel mask * Clarified safety of operations in callback (doc) * updated Windows+ASIO build tutorial: Building Portaudio for Windows with ASIO support using MSVC. The tutorial was out of date and contained a number of errors that broke the build process. * tweaked Windows build tutorial: Building PortAudio for Windows using Microsoft Visual Studio - various improvements to clarity of text. Fixed broken ASIO SDK URL. * Add stub to pa_trace.c to eliminate warning. * [tests] Add EOL to patest_mono.c * [macosx] Add support for SDK 10.8 and 10.9. * 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. * 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'. * 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. * paqa_devs: limit max number of channels tested (to 4); add a fixed decimal format to the timestamp printout. * pa_mac_core.c line 664 fixed incorrect memset size (was using sizeof(ptr) not sizeof(struct type) * 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. * Alsa: Fix memory leak as nonMmapBuffers were not freed (since change to realloc). Clean out corresponding dead code chunk. * 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. * 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). * 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 * fixed doxygen markup for a few line breaks in the tutorial * 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. * 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. * qa-latency: fix printout typos; re-enable checks of default high vs low latency - but allow them to be equal; remove rogue tab. * added code to print error result from Pa_Initialize() in pa_devs.c example * 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 * move static variables into x86 section so they don't generate warnings when trying to build on 64 bit * configure.in fix from Leland '[Portaudio] Small patch to fix Mac build' march 4 * Fix for WaveRT WDM drivers that do not support memory mapped position register, and correct 8 channel speaker geometry mapping. * increase upper limit for absurd sample rates from 200000 to 384000 Hz. via Richard from Audacity * 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 * clarified and corrected comment * check for NULL data->interface passed to KsPropertySetEnumerateCallback. Thanks to Asinbow Wang * added carbon to docs. * fixes for unicode build * fix for unicode build * Add comment about including source code for ring buffer in app. * minor fix for OS X 10.7: include AudioToolbox * https://www.assembla.com/spaces/portaudio/tickets/217 * Add example of calling JPortAudio. * Add the JPortAudio JavaDocs to the PortAudio reference. * Just return true if a Java blocking IO stream underflows or overflows on read or write. Only throw an exception if something truly nasty occurs. * Modified to JPortAudio to support builds on Macintosh. * Use universal library on Mac. The _x86 or _x64 distinction is only needed on Windows. * Fix fprintf format for long int. * Apply patch to configure to fix build on Mac Lion. See ticket #216. * Test SVN on assembla. * Report HostAPI errors in paex_write_sine.c to aid debugging. * Make include paths in JPortAudio project portable. * Initial check-in for an experimental Java binding for PortAudio called JPortAudio. * Fix some typos in docs. Fix some compiler warnings for win32. * Added support for multi api static build on mingw (patch from Stefan Hajnoczi), tested with ASIO,WMME,WASAPI and WDMKS * Cleanup of code * Added typedef to remove error with _beginthreadex * Cleanup of code * Use pa_ringbuffer.h in pablio.h. Mark PABLIO as deprecated in pablio/README.txt * Small fix to paex_record_file.c * Added a simple example that records to/plays from a file (using callback + ring buffer). Windows only at the moment. * Removed _alloca in WdmGetPropertySimple which seems to mess up the stack when using MinGW * Removed warnings when building with MinGW * Changes to make compilation/linking work on Mingw * Added option to CMakeLists.txt to enable PA debug output * Minor refactoring to remove some warnings * Changed so that Mingw build should reference WASAPI supplied Mingw includes + minor refactorings * Added GUID, enumerators and structs to accomodate Vista and later OSs. * 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. * Added counters for status flags in patest_wire.c. It then prints how many under and overflows occured. This was added to help debug issue #171. * 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. * Forgot error check after Pa_OpenStream. Naughty. * Added C++ variant of paex_sine * qa-latency: use defaultSampleRate; fix crash on single loops; change latency check limits; continue after a failed test; some alterations to printed messages. * Fixed bug in DS code * Added build instruction for loopback test. * Alsa: re-write SetApproximateSampleRate() to allow small deviations from a nominal requested rate, so inexactly clocked cards do not fail (use 1% tolerance). * Alsa: remove tabs and fix whitespace in pa_linux_alsa.c in line with the Portaudio coding standards * Alsa: default sample rate should always be chosen with Alsa-lib sample-rate conversion disabled. * Alsa: fix defaultHighLatency - sample rate has to be set following reset of hwParams. * rolling back r1822 and r1815 to pa_linux_alsa.c . will recommit on alsa_hw_endian_subdevice branch * wasapi: provide meaningful error code when opening the stream and error occurred instead of just paInvalidDevice * 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). * fixed typo in comment. added whitespace. * alsa: fix paSwapEndian applied to non-24bit formats due to incorrect logic of tests * Alsa: add a workaround for stuttering/xruns when using default device on Alsa-lib older than 1.0.16 (caused by zero 'revents' when poll() returns). * 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) * 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 * Added support for displaying UTF-8 encoded device names * 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 * 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. * 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) * 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 * Merged WaveRT branch (excluding stuff pertaining to ticket #169) * cleaned up tutorial start page * doc tweak * tweaked tutorial doc to reference local files * added tutorial doxygen pages converted from old trac wiki * 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 * added function to query core audio buffer size range * 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. * 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. * added dsound find best latency params test. resolves #186 * Implemented host-API specific mechanism for setting DirectSound buffer sizes in frames. resolves #129 * updated ASIO-README.txt closes ticket #8 * Ran autoreconf for mods from Ross. * fixed configure.in and makefile.in. attempt #2. fixes incorrect escapes in r1772 * Ran autoreconf for configure updates. * name therapy: suggestedLatency => targetBufferingLatency * name therapy: renamed suggestedLatencyFrames to targetBufferingLatencyFrames * use bufferMaxSize for defaultHighLatency in asio impl * added comments explaining why ticket #199 can't be fixed * fixed host buffer size algorithm to prefer multiples of user frames per buffer. fixes #93 * tweaked dsound callback time info calculations. implemented adc time. resolves #122 * define WIN32_WINNT and WINVER to 501 (winxp) to resolve conflict between mingw winbase.h and asio sdk combase.h * configure.in and makefile.in changes to (hopefully) fix include paths issues on mingw * Ran autoreconf to rebuild configure. * fix configure.in to find a C++ compiler when needed. seems this has been a problem with asio since march 2011. * test SVN repository * Apply patch for Debian from Samuel Thibault. * CoreAudio: if user specifies framesPerBuffer make sure host buffer is an integer multiple of user buffer * Update header authors, copyrights, HPI url. Remove Ludwig Schwardt bugreport email. * 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. * Fix warnings in loopback. Disable test for defaultHigh > defaultLow. * Add self tests to paqa_latency.c * Fix compiler warnings on Mac. * Move paqa_devs and paqa_errs to qa folder. Clean up tests. * added Doxyfile.developer for generating internal docs. added doxygen brief descriptions to mme example files * updated doxygen stuff to generate sane user documentation (work in progress) * moved example programs from test folder to examples folder * Fixed configure so it works for paex_sine. * 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. * test ignore * 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 * 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). * added large primes to patest_suggested_vs_streaminfo_latency.py * fixed some warnings and minor bugs in patest_suggested_vs_streaminfo_latency.c * added #include and deleted 2 unused variables from a test * Fix #164 by using if instead if ifdef PA_USE_* for unix builds. * wmme limit host buffer size to 32k. try to make host buffer size a factor of over-limit user buffer size. closes #189 * memory barrier change take two * added comment about MSVC compiler barrier intrinsics * updated memory barrier comment urgh * 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 * 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. * Use bigger threshold to fix odd latency calculations. Use low default latency for loopback. * revised WMME default latency on XP, Vista, Win7 to 90ms. Resolves ticket #80. Could go lower if we had more results from ticket #185 * set defaultHostApiIndex_ to zero when uninitialized * tweaked comment * changed default host API logic to use first successfully initialized host api with a defined default input or output device. resolves ticket #49 * extended paqa loopback test output to print reported PaStreamInfo input, output and total latency * 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. * Fixed pa_win_wmme.c latency calculations to result in non-decreasing actual latency for increasing suggested latency. * updated patest_suggested_vs_streaminfo_latency to generate pdf files * updated patest_suggested_vs_streaminfo_latency to support running multiple test iterations from the python script * added patest_suggested_vs_streaminfo_latency test and python graphing script * Calculate timestamp offsets from device properties. Combine multiple user buffers in a host buffer to honor longer latency. * 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 * Add check for min maxDeltaDacTime for timestamps. * paqa_latency: tweak parameter printing * paqa_latency: tweak parameter printing * paqa_latency: print device name and api. c89ize * Draft version for debugging latency and timing. * mme latency test: minor cleanups. randomised tone pitch * mme test only list output devices * fixed switch statement in test that would report Win7 when the platform was Vista * Fix broken build due to unused variables. Grrr. * Fix improper calculation of big buffer sizes. See bug #187 This fixes a click heard with big buffers. * Fixed broken Mac build by removing unused label. * updated wmme manual latency test * Improve calculation of default latencies on Mac CoreAudio. Allow very low buffer sizes if suggestedLatency is low. Set actual latencies in StreamInfo. * cleaned up doc comments for PaStreamCallbackTimeInfo and PaStreamCallbackResult * 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. * initial implementation of patest_wmme_find_best_latency_params.c. just a draft. needs work * Remove dev-cpp support. This IDE is no longer used and the build files are not working. http://www.portaudio.com/trac/ticket/162 * Fix for doxygen for pa_mac_core.h. Ticket #70. Patch from chris share modified slightly. * fixed regression in r1612 that broke coreaudio non-interleaved callback i/o * fixed def file to reference PaAsio_GetAvailableBufferSizes instead of PaAsio_GetAvailableLatencyValues. thanks Chris. * made ring buffer params const-correct * PA ALSA: define SND_PCM_TSTAMP_ENABLE as SND_PCM_TSTAMP_MMAP if the former is undefined * Initial CMake support (MSVC only at the moment) * extra comments * fixed use of timeBeginPeriod/timeEndPeriod in pa_win_ds.c * 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. * added userFramesPerBuffer parameter to SelectHostBufferSize in preparation for improving asio buffer size handling * Added pa_win_coinitialize.c to MSVC project and windows configure scripts * 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 * renamed PaUtil_GetBufferProcessorInputLatency to PaUtil_GetBufferProcessorInputLatencyFrames and PaUtil_GetBufferProcessorOutputLatency to PaUtil_GetBufferProcessorOutputLatencyFrames. see ticket #161 * renamed PaAsio_GetAvailableLatencyValues to PaAsio_GetAvailableBufferSizes and included a backward compatibility #define. see ticket #111. * removed #ifndef check for PA_USE_DS from pa_win_ds.c * fixed copy/past error in PA_USE_DS check code in pa_win_ds.c * Add README for configure. * Remove include for pa_unix_oss.h to fix "make install" on Linux. * Ran autoreconf to update config.guess and other configure files. * Added patest_mono and patest_two_rates to Makefile.in Verified both and updated README.txt * Ran autoconf to update configure file to fix INCLUDES bug. * 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) * Improve latency measurement in loopback so it handles DC steps better. * Convert patest_two_rates.c to V19. Make paloopback over/underflow report easier to understand. * Add include string.h to loopback test. Use full duplex if input and output device the same. Check for format conversion buffer overflow in case of huge framesPerBuffer. * added newline to print statement * print arguments at startup * changes to get qa building on Windows with msvc. had to move variable declarations to the top of functions (ie ANSI C89) * moved skeleton to end of win32 initializers list so it isn't considered default * support building skeleton host api on windows * paqa: removed non standard and unused #include <strings.h>. updated definitions of pi to double precision * fixed build breakage of patest_wmme_ac3.c on windows * use LoadLibraryA instead of LoadLibrary to support unicode build * Add test for paInt8 to loopback test. Add separate input and output latency setting options. Add timeout when waiting for stream to finish. * Fix random code insertion caused by buggy editor on Linux. Report actual buffer sizes. * Add latency control in loopback to fix Linux latency problems. * Raise pop threshold for loopback test. * Applied patches for Debian Linux for ticket 166. * Set default latency in an attempt to reduce full duplex glitching. * Add test for sample format conversion. * Check for clipping even when loopback devices specified. * Add check for clipping and noise in loopback test. * Remove unused variable in loopback. * Add loopback target to Makefile. Fixes to loopback test for ALSA. * tweak changeme.txt to test SVN on Ubuntu * ANother attempt at fixing configure make. * Try to fix oddly broken Makefile.in * ANother C99 fix for loopback. * Fix C99 error with modern for loops. * Added paloopback test to the automated build. * Ass semicolon to fix "label at end of compound statement" error caused by pthread_cleanup_pop(1) macro. * 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. * Add a test for non-interleaved blocking writes. This is to address ticket 83. * Speed up loopback test by testing each sample rate then each buffer size, not full matrix. * Cleanup tests. Lots of small tweaks. Delete the debug_ tests because they are V18 and are not needed. We can just hack a V19 test if we need to debug. * 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 * fixed build by reverting 1604 revision where 'pa_ringbuffer.o' dependency was added to Makefile.in, modified configure.in for WASAPI build and added explicit 'pa_ringbuffer.o' dependency there instead * Ticket #132 * doc tweak * fixed compilation when Makefile is used by adding missing pa_ringbuffer.o object file * moved src/common/pa_skeleton.c to src/hostapi/skeleton/pa_hostapi_skeleton.c. updated all build files accordingly. * added braces to clarify precedence in latency calculation expression * renamed some latency variables to make it clear they are in frames not seconds * fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds. * fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds. * fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in <frames>, code assumed it was in seconds. * 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. * 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 * corrected typos as per jf_menards's patch in ticket #58 * added #include portaudio.h to pa_mac_core.h so it is consistent with all other host-api specific headers. closes ticket #7 * wasapi: - releasing Input/Output buffer if error occurred inside the processing routine * 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 * removed reference to todo list from main doxygen page * removed/cleaned up doxygen @todo items. moved to TRAC * cleanup: changed if() to switch() * clarified documentation for PaTime and Pa_GetStreamTime * removed old doxygen @todo comments * removed obsolete doxygen @todo comments * referenced trac ticket #113 in doxy todo item * referenced trac tickets #35 and #112 in pa_converters.c todo items * removed doxygen TODO items from pa_asio implementation. migrated them to new trac tasks: #103, #104, #105, #106, #107, #108, #109, #110, #111 * corrected doc comment * simplify doc tweak * wasapi: allow mono input/output streams be created when Blocking interface is used. Thanks to Chris (c319chris@aol.com) for providing the patch. * test svn access * 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. * 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). * corrected Int24_To_Int16_Dither and implemented Int24_To_Int8_Dither, Float32_To_Int24 to use all 'double' types for optimal code generation (not mixing double with floats) * disable dither conversion when host input format is 32 bit and user format is 24 bit. the converter for this is unimplemented anyway, and the host won't ever be sending us better than 24 bit data, so no need to dither it. * 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 * doc tweaks * First checkin of new loopback unit test for PortAudio. * Commit fix for crash during full-duplex operation with PulseAudio. Reported by Al Dimond, fix proposed by Ross Bencina, acked by Dmitry Kostjuchenko. This fixes a bug with Dmitry's zero-copy optimisations. Fix works in Audacity (where the bug was found), so comitting upstream. * updated documentation main page and added api overview page to documentation * 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 * wasapi: fixed audio stream failing to open on Windows 7 in Exclusive mode if suggestedLatency parameter is 0 and user framesPerBuffer is less than 3 milliseconds * Remove frome the list of directories created by configure a directory that no longer has any contents and is not needed any more. Original patch by Benjamin Drung (Ubuntu) * clarified some doc comments in pa_ringbuffer.h including one typo that said <write> instead or <read> * patch from Rafaël Carré: clear SHARED_FLAGS in configure.in when --disable-shared is used to avoid libtool setting -shared and breaking the build. * patch from Richard Ash: updated Makefile.in to set SHELL variable expected by newer versions of libtool (was breaking in builds on Debian without this) * wasapi: fixed capturing (Input stream) if Polling mode is used, ProcessInputBuffer was broken erroneously returning AUDCLNT_S_BUFFER_EMPTY and thus breaking Input thread. * wasapi: improved audio quality stability in Shared mode if framesPerBuffer (from user-side) value is lower than 10 milliseconds, now even 1 frame provides stable quality. Exclusive mode is also affected by this improvement. * Fixes issue where ringbuffer elements were of size 1, which might have lead to split data. This does not resolve the issue for ringbuffer use in blio. * alsa: fixed Segmentation fault due to dangling pointer left by snd_lib_error_set_handler() call which set callback pointer to ALSA during PaAlsa_Initialize call. Segmentation fault happens only if application dynamically unloaded PortAudio while still using ALSA through other means, then next ALSA error which causes invocation of ALSA error handling callbacks would cause Segmentation fault. Bug reported in: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563192, and re-announced by Phil Burk on 15.10.2010. * improved documentation of paNoInterleaved flag * jack: fixed segmentation fault caused by PA Jack implementation if Pa_Initialize is called after Pa_Terminate due to bad pointer usage by realloc() call which was previously freed() in Pa_Terminate call. Many thanks to RJ Ryan for reporting, debugging and providing the solution for this bug. * alsa: avoid SetApproximateSampleRate() excessive log messages when Pa_IsFormatSupported API method is used to test for supported sample rates and some of them are not supported by device * fixed missing return statements from latency listener procs * wasapi: - fixed compile under MinGW64 compiler (gcc version 4.5.1 20100702) - cleaned portability typedefs, thanks to MinGW64 project added KS headers which also work well for MinGW32 (tested: gcc version 4.5.0) wdmks: - made it possible to use additional WDM/KS info for WMME/DS back-ends by defining PAWIN_USE_WDMKS_DEVICE_INFO for compilation by MinGW32/64 compilers if you include modified headers located in '\src\hostapi\wasapi\mingw-include' * Replaced broken PaStreamCallbackTimeInfo calculations with calculation based on CoreAudio ioProc timestamps. Notes: 1. inputBufferAdcTime is not computed correctly for all cases (eg full duplex with/without ring buffer). 2. This patch needs to be reviewed for the case where device and AUHAL sample rates differ (ie SRC is used) and if input and output sample rates differ. See FIXMES * tweaked buffer settings in wmme low level parameters example * wasapi: - fixed alignment missing for host buffer if overall buffer size was set to less than 3ms that results in device timeout - advanced Event driven mode and extended the range of host buffer size which can operate in this mode up up to 20.66 ms, e.g. your device buffer size will vary in range 3 - 20.66 ms, if goes above then Poll driven mode is switched on automatically * wasapi: - fixed compilation by MinGW, was failing due to double ambiguous jack describing enums used in KS ds: - fixed compile by MinGW, was failing due to missing casts to LPVOID * and usage of UINT instead of DWORD by PaWinDsStream::previousPlayCursor * alsa: - trying to fix specific case of stream failing to open when min/max period is specifying fixed value with +/-1 difference, we try choosing middle then which seems to be aligned to 2 * alsa: - improved host buffer size calculation: taking into account obligatory double buffering utilising formula (userFrames + MAX( userFrames, SR * suggestedLatency)), aligning host buffer with user buffer size, additional testing of host buffer size to avoid failure on snd_pcm_hw_params_set_period_size_near, additional logging for more convenient debugging * alsa: - fixed seg.fault (caused by assertion) when using non-interleaved host i/o, now paNonInterleaved flag is provided to PaUtil_InitializeBufferProcessor to signal processor about host format being non-interleaved * jack: - fixed assertion in PA processor logics by informing processor that host format is non-interleaved (using paNonInterleaved flag) in PaUtil_InitializeBufferProcessor - fixed rare timeout on WaitCondition reported earlier by increasing timeout from 1 second to 10 minutes * wasapi: - added functionality to enumerate jacks and their description - added example which demonstrates jacks enumeration technique Thanks Reid Bishop for providing the idea for this extended functionality and patch with implementation. * wasapi: - fixed frames preloading for buffer mode - paUtilFixedHostBufferSize * wasapi: - fixed occasional bug (affects Windows 7 mostly) which is related to stream start failure due to exceeding buffer size when preloading data for output stream in exclusive mode (thanks Ralph Irving for noticing and reporting this bug) * wasapi: - fixed usage of uninitialized variable (Input) * added pragma to auto-link winmm.lib when compiling with msvc * wasapi: - reimplemented full-duplex processing to address changes to latency calculations (please note Exclusive mode due to some unknown reason will likely not be able to provide good audio quality yet) - fixed Pa_GetStreamInfo for WASAPI device if stream is opened as full-duplex (thanks to Reid Bishop for pointing to the bug) * optimized PA processor for case when host and user buffer match by type and size, now host buffer pointer will be passed to user space directly, additional copying of audio input/output data is thus avoided. asio: apply paNonInterleaved flag on host formats for callback mode (required for processor compatibility). * wasapi: - fixed memory corruption if format is set to non-interlieved and mono <> stereo mini-mixer is used for to convert mono to stereo (conversion is done due to WASAPI limitation) - made WASAPI fully passing patest_wire.c (full-duplex combinations) for shared and exclusive modes - if WASAPI device failed to open due to unsupported format it will not crash top PA layer anymore - improved full-duplex mode for shared/exclusive (although exclusive full-duplex mode still produces audio glitches due to difference in input/output device buffer size due to unknown WASAPI reason, with shared mode all is ok) - exclusive mode will now work with 1 channel audio always, even if it is not supported by WASAPI natively (we use own mono <> stereo mini-mixer) * reverted changes from revisions 1516-1517 due to incorrectly made changes to processor's core which result in corrupted audio in some specific situations * wasapi: - fixed Exclusive/Event mode if latency used exceeds 100ms resulting in bad audio - fixed Exclusive mode if overall stream latency exceeds 1400-2000ms resulting in E_OUTOFMEMORY even under Vista, now PA WASAPI will gradually decrease overall latency until acceptable level - applied device period aligning if period was corrected - improved robustness of audio client creation * wasapi: - reimplemented suggestedLatency and framesPerBuffer parameters in Pa_OpenStream call to opearate by the following formula - 'hostBufferFrames = userFramesPerBuffer + max(userFramesPerBuffer, (suggestedLatency * sampleRate))' as discussed on PA mailing-lists - it is now possible to achieve 5.33ms latency in Polling & Exclusive mode (WOW64 or Native) - Polling method for output will benefit from direct WASAPI buffer pointer exposure to a user space through a callback (no copying) * fixed processor optimization from previous release for non-interleaved host buffers case (for example ASIO) * implemented optimization for NonAdaptingProcess processor: avoid copying of input/output from temp user buffer to host buffer by providing host buffer pointer directly to user, e.g. achieving processing of host buffer in place * wasapi: - made framesPerBuffer and suggestedLatency behavior as per PA specification, e.g. framesPerBuffer set main device period, suggestedLatency is a surplus if not 0 - fixed bug with Input in situation when WASAPI operates in native not-WOW64 process and using event mechanism would provide less frames to a user callback than expected (due to the fact as WASAPI's audio client provides only 1 packet per GetBuffer call which) * alsa: reverted broken specification (by me) according device latency being not dependent on user buffer size, now framesPerBuffer parameter and suggestedLatency set overall stream latency * wasapi: fixed very rare bug causing a dead looping if WASAPI input stream is being aborted * wasapi: fixed full-duplex failure (when host sample types differ) due to incorrect check made on I/O host buffer sizes * wasapi: fixed host-WASAPI related bug when selected 24-bit Input does not produce any audio, while 16 and 32-bits do, now if 24-bits selected by user (paInt24) PA WASAPI asks 32-bits (paFloat32) from WASAPI device and PA converters provide 24-bit data which is converted from 32-bit host buffer. * unix: fixed compile failure due to warning about unused variable when compilation takes place with -Werror switch * oss: fixed compile for systems missing 'pthread_cancel' series of functions, this allows to compile PortAudio under Android platform with OSS as audio host back-end * alsa: - fixed latency setting dependence on user buffer size, now it is completely independent and user is able to set lowest possible/audible latency (approx. 3-4ms) - fixed fixed min. latency for non-MMAPed devices, they do behave similar to MMAPed devices now without a limitation * wasapi: - implemented support for full-duplex mode (it always uses polling(pull) WASAPI behavior, if latency <15msec needed then event interface must be done) - fixed mono-to-stereo converter for input stream - mono-to-stereo converter will also automatically operate in shared mode (if WASAPI driver does not support mono for output, or only stereo for input) * alsa: - if polling loop is timed out (paTimedOut) PaAlsaStream_WaitForFrames will not report any frames available * wasapi: - implemented support of non-Interlieved buffers (paNonInterleaved) for WASAPI blocking interface for input and output - blocking methods will now use PA sample converters * alsa: - releasing memory of non-MMAPed buffer on stream closure by Pa_CloseStream * alsa: - reverted buffer size (2048) hardcoding for non-MMAPed devices to avoid crash on wrong buffer size usage (whole area requires more work) - optimized non-MMAPed device operation to avoid malloc(memset)/free usage on every processing call avoiding significant performance penalty * alsa: - fixed deadlock in PaAlsaStream_WaitForFrames if device is paused, poll() results are now checked for 0 and if 64 times exceeded an error (paTimedOut) is returned - removed hardcoded low-limit of latency for non-MMAPed devices, it is an obligation for user to set an acceptable/desired latency value - tuned XRUN recovery sequence for MMAPed devices * fixed compile for DirectSound implementation under MSYS, missing DSSPEAKER_7POINT1_SURROUND define * wasapi: - re-enabled Event-driven mode for Windows 7 x64 platform if application runs as WOW64 process * wasapi: - fixed Event-driven mode, broken in 1496 rev. * wasapi: - using WOW64 workaround (fall-back to a Poll-driven mode) for any WOW64 process regardless of Windows version due to report of same bug under Windows 7 x64 * wasapi: - fixed object (IAudioRenderClient/IAudioCaptureClient) leak if stream is stopped and restarted without closing - improved IAudioClient event handle management on stream restart (not deleting/creating event handle but rather keeping it until stream is closed) * wasapi: - fixed occasional crash-bug which may be caused by a lightweight application that starts stream, checks if stream is running and if not terminates the stream: WASAPI implementation wasn't taking such behavior into account and stream termination (with structure deallocation) could happen during a thread start causing a crash on bad pointer usage - fixed Pa_IsStreamActive and similar not correctly reporting stopped stream if that was stopped from within a callback function (playback/capture) by returning paComplete * corrected comments to Int24_To_Int16_Dither * implemented 'Int24_To_Int16_Dither' converter to allow 24-bit audio be played (before was silence for WMME and DirectSound) * wasapi: - new method PaWasapi_GetFramesPerHostBuffer which allows to get number of input/output frames per host (WASAPI) buffer, this method helps to find out maximal values for PaWasapiHostProcessorCallback - documentation fixes * wasapi: - added calling thread id checks to match Pa_Initialize/Pa_Uninitialize in the same calling thread, if not the case then console warning will be thrown and CoUninitialize will not be called (preferring leak over uninitializing user-side COM) * wasapi: - fixed Windows 7/Server 2008 R2 and Future detection, this fixes minimal/maximal device periods correction - added CO_E_NOTINITIALIZED to text errors with action to take for user in case it happens * wasapi: - improved device buffer alignment calculation allowing to set as precise device latency as possible * wasapi: - fixed crash in Pa_OpenStream call if WASAPI device did not open or something failed (happened on stream handle cleanup due to double attempt to free same pointer) - improved the way WASAPI device is opening, such error as AUDCLNT_E_BUFFER_SIZE_ERROR which comes due to incorrectly small device period is fixed for Vista (and all other, including future) systems as well, latency will be corrected to device minimum (usually 3ms). - if suggestedLatency is set to 0 in Pa_OpenStream call then WASAPI device will select device default latency (in Exclusive mode it is 10ms, in Shared 20ms) - improved on-screen logging of WASAPI devices available during WASAPI initialization phase * fixed ASIO thiscall resolver for GCC 4.+: CALL_THISCALL_1_DOUBLE was failing due to strong optimization of GCC compiler, added EDX in clobbered register list to warn GCC that resolver uses it explicitly * wasapi: - fixed AUDCLNT_E_INVALID_DEVICE_PERIOD under Windows 7 if latency is set to lower than minimal device period - fixed AUDCLNT_E_INVALID_DEVICE_PERIOD under Windows 7 if latency for Exclusive mode is higher than 500ms, for Shared mode higher than 2000ms * excluded x86-64 platform from ASIO 'thiscall' resolver as x64 ABI does not have 'thiscall' calling convention anymore * wasapi: - fixed int24 Mono to Stereo mixer (affects Mono streams starting in Exclusive mode) pa_converters: - avoid using 64-bit integer math for Int24_To_Float32 and Int24_To_Int32 under x64 Posix platforms (long is 64-bit there), now using explicit PaInt32 type * wasapi: - fixed bug when Exclusive mode was wrongly opening Stereo stream if Mono stream was requested (note: WASAPI device usually does not support Mono in Exclusive mode), resulted in distorted sound - implemented workaround for WASAPI limitation - in Exclusive mode Mono stream is not supported: now PA creates internal audio device in Stereo mode, and after callback call Mono data is mixed into Stereo output, this workaround is not supported for Blocking mode. all this is done transparent for user, automatically. * maccore: fixed MacOSX "Snow Leopard" 10.6+ deadlock on sample-rate change submitted by Olivier Tristan and Stephane Letz with the following details: "When using paMacCoreChangeDeviceParameters option of PaMacCore_SetupStreamInfo, if the sample rate used in PortAudio do not match the one on the hardware, it automatically switches the hardware samplerate. This functionality stopped working on 10.6 and was blocking the application when trying to change the hardware samplerate (infinite wait) It now works fine on 10.6 as it used to on previous OSX version." * wasapi: small corrections to improve CoInitialize/CoUninitialize sequence (taken from DS implementation) * updated 'configure' file, many thanks to Stelios Bounanos for generating it * wasapi: removed excessive argument checks in stream management functions * wasapi: improved parameter checks for blocking API * wasapi: fixed extension functions: PaWasapi_GetDeviceDefaultFormat / PaWasapi_GetDeviceRole - device index was misinterpreted and as a result returning value was mismatched * implemented optional log output to Visual Studio Output window if PA_ENABLE_MSVC_DEBUG_OUTPUT is defined, this simplifies debugging of external process if Visual Studio is attached to process * wasapi: fixed portaudio.vcproj (wrong filename) * wasapi: finished changes of include names for case-sensitive build env. * wasapi: renaming file * wasapi: renaming file * wasapi: renaming file * wasapi: renaming file * wasapi: renaming file * wasapi: - fixed configure.in to compile WASAPI module under MSYS - fixed include name cases for case-sensitive build environments - defined LPCGUID for some MinGW compilers which are missing it - fixed strict-aliasing rules break on line of getting device EndpointFormFactor in case '-Wstrict-aliasing' is specified or corresponding GCC optimization flag is used * wasapi: - improved debug log output: function name which returned error will be displayed as well - fixed non-critical compiler warnings * wasapi: fixed initialization stage of PaWasapi_Initialize() which was returning error if WASAPI wasn't found (for example under Windows XP), this was causing PA's whole initialization to fail completely * +++ wasapi: - converted PA WASAPI module to pure C - implemented compilation support for GCC [MinGW(32-bit)/MinGW64(64-bit)] compiler, special notes regarding MinGW compilation are included in 'readme.txt' file * +++ wasapi: corrected PaWasapi_Initialize() behavior in case of OS back-end failure: WASAPI will not be added to a list of available APIs now (instead of throwing error to InitializeHostApis() that causes PA initialization break), error is thrown only on low-memory condition (default behavior) * wasapi: - removed dependency from strsafe.h - fixed crash in InitializeHostApis() if PaWasapi_Initialize() failed due to internal WASAPI error (error code was returned as paNoError in such case) * fixed dummy compilation of pa_win_wasapi.cpp using MinGW(GCC) compilers by adding missing Avrt type * +++ wasapi: Event-driven/Full-Duplex/Exclusive mode will be calling user-provided callbacks simultaneously when both input/output buffers are ready for IO * changed buffer sizes * added test for wmme low level latency params * wasapi: improved paFramesPerBufferUnspecified handling in case device does not provide default period, paInvalidSampleRate will be returned if sampleRate parameter is 0 for Pa_IsFormatSupported/Pa_OpenStream * wasapi: fixed capturing callback not called if paWinWasapiPolling flag specified, or WOW64 workaround is used, same bug was causing div/0 crash * windows WASAPI fixes/improvements: - fixed dependency of framesPerBuffer parameter in Pa_OpenStream and latency (now only latency setting affects device latency which is correct behavior); - paFramesPerBufferUnspecified is now supported for Pa_OpenStream; - sound distortion fixed for Shared mode if framesPerBuffer is lower than device limit and when latency was set to 0; - fixed timeout for Exclusive mode due to buffer misalignment; - improved precision of DAC/ADC time for running stream; - avoided memory leaks on failure of Pa_OpenStream; - NULL checks on stream pointer for all external methods; - correct host buffer mode for paWinWasapiPolling mode to deliver fixed number of frames to user space; - implemented workaround for Vista x64 WOW64 bug if Event-mode is used for Shared mode (due to incorrect Event signaling audio dropouts were happening): will fall back to safe Polling method automatically. * improved PaWasapi_ThreadPriorityBoost by providing enum PaWasapiThreadPriority with explicit thread priority values for convenience. it is possible to override default thread priority setting for Event/Poll-driven modes by specifying new flag paWinWasapiThreadPriority and setting priority value through PaWasapiStreamInfo::threadPriority member. * fixed crash on NULL pointer usage if hostApiSpecificStreamInfo was NULL in Pa_OpenStream method * provided ability not to depend on ksguid.lib when using WDMKS as it may not be provided for x64 SDK by default, define PA_WDMKS_NO_KSGUID_LIB to use static declarations, x64 MSVC project corrected to define PA_WDMKS_NO_KSGUID_LIB for x64 compilations. added WASAPI symbols to portaudio.def. * finished WASAPI implementation: - Callback/Blocking interface - Playback/Capture - Shared/Exclusive mode to compile you must have installed recent Windows SDK(Vista SDK or higher) and min Visual Studio 2005 SP1. WASAPI is enabled by default, to disable you must define PA_NO_WASAPI prior compilation. * justtesting * justtesting * fix for undefined DirectSoundFullDuplex8 when PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE wasn't defined. thanks Dmitry * Added code to PortAudio/DirectSound to use DX8 DirectSoundFullDuplexCreate API for full duplex streams where available. Define PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE in your project to enable this feature. * implemented paPrimeOutputBuffersUsingStreamCallback for DirectSound (previously this was the default). invoke some buffer reset code to from StartStream (actually ClearOutputBuffer) instead of OpenStream which should give cleaner startup behavior if the stream is started and stopped multiple times. fixed leaks under error in InitOutputBuffer and fixed leak of primary buffer (previously was never released) * reset oscillator phase at start of each test cycle so that the onsets sound the same * removed hardwired device number from previous commit * DirectSound don't crash when starting a blocking io (non-callback) stream. blocking io still not implemented though. * added test case to patest_stop_playout.c which catches issues with host buffers looping/not being cleared if the callback returns paComplete * reworked DirectSound stream completion to correctly flush the buffer processor and zero DS buffers when the callback returns paComplete or paAbort. resolves ticket #86. use test patest_stop_playout.c to verify. * clean up resources better if DirectSound OpenStream fails * fixes to DirectSound implementation to work in unicode builds * use a win32 Event object (aka condition variable) to signal timer process completio to Pa_StopStream in DirectSound implementation. resolves race condition when stopping direct sounds streams. * added msvc link pragma to require ksguid.lib * made buffer in PaUtil_DebugPrint local rather than static to avoid multithreaded issues * ifdefs for correct windows mobile compilation * added cast to IsDebuggerPresentPtr, fixes compilation of asio on some systems * updated configure with a simple run of autoconf. seems to work on mac. * derive ds output channel count from speaker configuration when pnpInterface is unavailable (eg wavemapper). Thanks to Dmitry Kostjuchenko for the patch. * fix for bad x64 DWORD_PTR define * Fixed bug (when PAWIN_USE_WDMKS_DEVICE_INFO is defined) where wmme device channel count would be incorrect for default device resulting in distorted sound if user tries to open device with more channels than device can handle. Thanks to Dmitry Kostjuchenko for the patch. * Update to Makefile.in and Configure.in from Stelios Bounanos: Pretty-print help strings, Support multiple APIs on win32 with mingw, Output a configuration summary at the end, Remove ASIO build configuration from OSX * Patch from Dmitry Kostjuchenko: Fixes x64 issue with mis-casting DWORD_PTRs to DWORDs, support proper conversion of device names in UNICODE builds, use of CreateThread instead of _beginthreadex with cygwin. * added empty memory barrier macros for WINCE thanks to Dmitry Kostjuchenko * added and removed dummy property listener as this may be required by OS X 10.6. Also, returned no error on property timeout. * cleanup of property change checking and error handling * added return char * removed some redundant code * added new test for hardware samplerate changes. This is mostly targetted to the mac, but could be adapted to other platforms as well. * fixes for hardware samplerate changes * added assert back as suggested by Dmitry Kostjuchenko * fix for ringbuffer problem on 64-bit macs. Also, this should make it possible to migrate away from using the long datatype on pa_ringbuffer. * added two includes which should not be necessary but seem to help compiling in snow leopard * patch to use mach absolute time on mac OS X since apple advises against gettimeofday in IOProcs. Patch due to Ross Bencina. * Fixed dither for 64-bit targets. * added instructions for building without ASIO support to the msvc readme * removed reaper asio driver blacklisting * Fix latency calculation in PA ALSA * Add PA ALSA extension to allow setting number of retries when busy * Clarify hostapi ordering somewhat * Apply Kevin Kofler's non-mmap patch * fix for half duplex and build issues from Toni Wilen. * added pragma to autolink libwinmm with msvc to get timeGetTime symbol when only using ASIO. thanks Yann * fixed a bug in WAVEFORMATEX casts, and warnings on sprintf * fixed inputBufferAdcTime calculation for AdaptingInputOnlyProcess. patch from Yann. * fixed bug in asio blocking i/o stream initialization which would cause crash (bad ptr). enabled timeout code in read/writestream. patch from sven fischer * added notes to pa_test_ac3.c that the test stream file must include the correct spdif preamble on every ac3 frame * always disable wmme clip and dither if an spdif passthrough wave format is requested * minor code logic cleanup * added patest_wmme_ac3.cp test for wmme ac3 spdif passthrough * wmme host api: take account of paWinMmeWaveFormatDolbyAc3Spdif and paWinMmeWaveFormatWmaSpdif flags in Pa_IsFormatSupported * initial support for ac3+wma spdif passthrough for pa_win_wmme. see flags in pa_win_wmme.h. flags currently work for OpenStream but are ignored for IsFormatSupported * doccomment for PaAsio_SetStreamSampleRate() * factored asio sample rate setting code into separate functions. added PaAsio_SetStreamSampleRate() function. * cleaned up logic related to theAsioStream singleton pointer (now gets set in OpenStream and cleared in CloseStream. added callback-completion waiting to StopStream (was only in AbortStream before). cleaned up isStopped/isActive logic * cleanup: moved blocking stream asio callback function next to other blocking related code * remove extra parameter from debug statement to prevent pointer error * fixed bug as suggested by Michael allen. This fixes issues with blocking IO on the mac when using different number of channels for input and output. * ticket#84 * ticket#84 * ticket #84. Fix for Cygwin. Added a #define called CREATE_THREAD. Cygwin will call CreateThread, whereas other dev environments will generate code to call _beginthreadex. endthreadex was handled in the same way. * ticket#84. Ran into a problem with conversion from CreateFile to _beginthreadex. Changing it back for now. * change CreateThread to _beginthreadex (related to ticket #84) * changed CreateThread to _beginthreadex and ExitThread to _endthreadex (related to ticket #84) * change CreateThread to _beginthreadex (see ticket #84) * Add __TIME__ to version text. * Supports multiple threads using ASIO by adding CoInitialize(0) and CoUninitialize() calls. * OSS: clear trigger direction bits at correct time * always use __vsnprintf with MSC * removed obsolete darwin compiling instructions * tweak svn test * Order Unix host api initializers depending on whether we're on Linux * Avoid warnings about unused labels * moved trunk into place ------------------------------------------------------------------- Sat Jan 16 09:28:42 UTC 2016 - mardnh@gmx.de - initial mingw64 package
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor