-
Notifications
You must be signed in to change notification settings - Fork 317
pa_stable_v19_20110326
This page answers the question "what has changed in version pa_stable_v19_20110326.tgz compared to pa_stable_v19_20071207"
There's a full log from SVN below. Some highlights have been cherry picked into the following lists. If you think something important has been missed, please let us know and we'll update the list.
You can get a list of the tickets that were closed during this period, here: http://www.portaudio.com/trac/query?status=closed&changetime=12%2F6%2F07..03%2F26%2F11&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority
- Fixed a lot of bugs on all platforms
- Fixed a lot of build system issues on all platforms (autotools, msvc, scons)
- Added more support for V19 API features on many platforms
- Added WASAPI implementation
- Ring buffer code was generalised into pa_ringbuffer.c with correct memory barriers. this is now used by many host api implementations
- Implemented blocking i/o for ASIO
- Made ALSA default host API on Linux
- Fixed stream info inputLatency and outputLatency calculations in a number of host APIs (r1598, r1599, r1600)
- WMME added support for ac3+wma spdif passthrough
- DirectSound added support for driver-level full duplex via DX8 DirectSoundFullDuplexCreate
These items are just cherry picked from the SVN log below as looking interesting. They aren't an exhaustive list. If you want more details you can search for the description text from these bullet points to find the log entry further down the page, then click on the revision number to get the diff for that change.
- fixed inputBufferAdcTime calculation for AdaptingInputOnlyProcess
- implemented 'Int24_To_Int16_Dither' converter to allow 24-bit audio be played on 16 bit hardware
- 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
- skeleton host api implementation moved to hostapi/skeleton
- always use vsnprintf with MSC
- change CreateThread to _beginthreadex (related to ticket #84)
- added support for ac3+wma spdif passthrough
- 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.
- derive ds output channel count from speaker configuration when pnpInterface is unavailable (eg wavemapper). Thanks to Dmitry Kostjuchenko for the patch.
- 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.
- 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.
- implemented paPrimeOutputBuffersUsingStreamCallback for DirectSound
- 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.
- added explicit management of the asioDrivers instance creation and destruction. this fixes a leak where the asioDrivers instance was never destroyed.
- Blocking i/o implementation by Sven Fischer. adds pa_asio dependency on pa_ringbuffer.c. Added i386 memory barriers for MSVC and BORLAND
- Supports multiple threads using ASIO by adding CoInitialize?(0) and CoUninitialize?() calls.
- added cast to IsDebuggerPresentPtr?, fixes compilation of asio on some systems
- fixed ASIO thiscall resolver for GCC 4.+: CALL_THISCALL_1_DOUBLE was failing due to strong optimization of GCC compiler
- patch from Eliot Blennerhassett to use new stream read write functions that first appeared in HPI version 3.05.05. resolves ticket #51
- Apply Kevin Kofler's non-mmap patch
- Add PA ALSA extension to allow setting number of retries when busy
- Fix latency calculation in PA 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
- 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
- releasing memory of non-MMAPed buffer on stream closure by Pa_CloseStream
- if polling loop is timed out (paTimedOut) PaAlsaStream_WaitForFrames will not report any frames available
- 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
- 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
- improved host buffer size calculation: taking into account obligatory double buffering utilising formula
- 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 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.
- implemented dynamic ALSA loading, you shall define PA_ALSA_DYNAMIC when compiling PortAudio library, by default PortAudio will use compile time linkage;
- Tweaked error handling in PaOssStream_Stop
- OSS: Don't stat before trying to open device
- Patch from Stelios Bounanos: set host error info more consistently in OSS
- Fix call to PaUtil_SetLastHostErrorInfo in OSS
- Partial patch for NetBSD support -- Add configure-time test for libossaudio library.
- 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
- 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
- fixed code inside asserts as suggested by Jorge Acerda Macia.
- fix for xrun detection suggested by Jorge Acereda Macia for Core Audio
- some assertion cleanup
- applied patch to fix ticket #64 -- added list of listeners for xruns in CoreAudio
- added necessary include file to pa_mac_core_utilities.c
- tweaked handling of xruns in core audio slightly. should be cleaner this way
- added --enable-mac-debug flag to control -g and -DNDEBUG flags in mac build only.
- separated memory barrier code from ringbuffer for greater modularity
- fixed potential isues with accessing freed memory in Core Audio code when dealing with xruns
- simplified/cleaned configure code dealing with mac universal binaries.
- Patch to make universal binary optional.
- removed memory barriers from section of code that is instead protected by mutex
- patch to use mach absolute time on mac OS X since apple advises against gettimeofday in IOProcs.
- fixes for hardware samplerate changes
- fixed MacOSX "Snow Leopard" 10.6+ deadlock on sample-rate change
- Replaced broken PaStreamCallbackTimeInfo calculations with calculation based on CoreAudio ioProc timestamps.
- clarified documentation
- added API overview: http://portaudio.com/docs/v19-doxydocs/api_overview.html
- cleaned out most doxygen @todo comments and moved to trac
Full changelog from svn (using svn log -r1307:1647
command):
r1647 | philburk | 2011-03-26 04:34:07 +1100 (Sat, 26 Mar 2011)
Add README for configure.
r1646 | philburk | 2011-03-26 03:59:27 +1100 (Sat, 26 Mar 2011)
Remove include for pa_unix_oss.h to fix "make install" on Linux.
r1645 | philburk | 2011-03-17 09:33:34 +1100 (Thu, 17 Mar 2011)
Ran autoreconf to update config.guess and other configure files.
r1644 | philburk | 2011-03-13 11:49:28 +1100 (Sun, 13 Mar 2011)
Added patest_mono and patest_two_rates to Makefile.in Verified both and updated README.txt
r1643 | philburk | 2011-03-13 11:18:45 +1100 (Sun, 13 Mar 2011)
Ran autoconf to update configure file to fix INCLUDES bug.
r1642 | dmitrykos | 2011-03-09 04:20:07 +1100 (Wed, 09 Mar 2011)
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)
r1641 | philburk | 2011-03-08 11:37:50 +1100 (Tue, 08 Mar 2011)
Improve latency measurement in loopback so it handles DC steps better.
r1640 | philburk | 2011-03-07 11:52:47 +1100 (Mon, 07 Mar 2011)
Convert patest_two_rates.c to V19. Make paloopback over/underflow report easier to understand.
r1639 | philburk | 2011-03-06 11:35:24 +1100 (Sun, 06 Mar 2011)
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.
r1638 | rossb | 2011-03-04 18:53:36 +1100 (Fri, 04 Mar 2011)
r1637 | rossb | 2011-03-04 18:19:04 +1100 (Fri, 04 Mar 2011)
r1636 | rossb | 2011-03-04 16:17:47 +1100 (Fri, 04 Mar 2011)
changes to get qa building on Windows with msvc. had to move variable declarations to the top of functions (ie ANSI C89)
r1635 | rossb | 2011-03-04 15:18:44 +1100 (Fri, 04 Mar 2011)
r1634 | rossb | 2011-03-04 15:12:08 +1100 (Fri, 04 Mar 2011)
r1633 | rossb | 2011-03-04 14:01:44 +1100 (Fri, 04 Mar 2011)
paqa: removed non standard and unused #include <strings.h>. updated definitions of pi to double precision
r1632 | rossb | 2011-03-04 13:28:55 +1100 (Fri, 04 Mar 2011)
r1631 | rossb | 2011-03-04 12:45:06 +1100 (Fri, 04 Mar 2011)
r1630 | philburk | 2011-03-03 12:18:39 +1100 (Thu, 03 Mar 2011)
Add test for paInt8 to loopback test. Add separate input and output latency setting options. Add timeout when waiting for stream to finish.
r1629 | philburk | 2011-03-03 09:12:23 +1100 (Thu, 03 Mar 2011)
Fix random code insertion caused by buggy editor on Linux. Report actual buffer sizes.
r1628 | philburk | 2011-03-03 08:03:45 +1100 (Thu, 03 Mar 2011)
Add latency control in loopback to fix Linux latency problems.
r1627 | philburk | 2011-03-03 04:49:46 +1100 (Thu, 03 Mar 2011)
Raise pop threshold for loopback test.
r1626 | philburk | 2011-03-03 04:03:23 +1100 (Thu, 03 Mar 2011)
Applied patches for Debian Linux for ticket 166.
r1625 | philburk | 2011-03-02 13:42:57 +1100 (Wed, 02 Mar 2011)
Set default latency in an attempt to reduce full duplex glitching.
r1624 | philburk | 2011-03-02 12:53:02 +1100 (Wed, 02 Mar 2011)
Add test for sample format conversion.
r1623 | philburk | 2011-03-02 10:02:52 +1100 (Wed, 02 Mar 2011)
Check for clipping even when loopback devices specified.
r1622 | philburk | 2011-03-02 09:48:50 +1100 (Wed, 02 Mar 2011)
Add check for clipping and noise in loopback test.
r1621 | philburk | 2011-03-01 20:36:31 +1100 (Tue, 01 Mar 2011)
Remove unused variable in loopback.
r1620 | philburk | 2011-03-01 20:22:48 +1100 (Tue, 01 Mar 2011)
Add loopback target to Makefile. Fixes to loopback test for ALSA.
r1619 | philburk | 2011-03-01 19:34:46 +1100 (Tue, 01 Mar 2011)
tweak changeme.txt to test SVN on Ubuntu
r1618 | philburk | 2011-03-01 13:32:04 +1100 (Tue, 01 Mar 2011)
ANother attempt at fixing configure make.
r1617 | philburk | 2011-03-01 13:25:32 +1100 (Tue, 01 Mar 2011)
Try to fix oddly broken Makefile.in
r1616 | philburk | 2011-03-01 13:12:46 +1100 (Tue, 01 Mar 2011)
ANother C99 fix for loopback.
r1615 | philburk | 2011-03-01 13:02:46 +1100 (Tue, 01 Mar 2011)
Fix C99 error with modern for loops.
r1614 | philburk | 2011-03-01 12:54:20 +1100 (Tue, 01 Mar 2011)
Added paloopback test to the automated build.
r1613 | philburk | 2011-03-01 11:49:52 +1100 (Tue, 01 Mar 2011)
Ass semicolon to fix "label at end of compound statement" error caused by pthread_cleanup_pop(1) macro.
r1612 | philburk | 2011-03-01 10:56:48 +1100 (Tue, 01 Mar 2011)
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.
r1611 | philburk | 2011-03-01 09:27:39 +1100 (Tue, 01 Mar 2011)
Add a test for non-interleaved blocking writes. This is to address ticket 83.
r1610 | philburk | 2011-02-27 12:31:56 +1100 (Sun, 27 Feb 2011)
Speed up loopback test by testing each sample rate then each buffer size, not full matrix.
r1609 | philburk | 2011-02-27 11:06:07 +1100 (Sun, 27 Feb 2011)
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.
r1608 | dmitrykos | 2011-02-22 09:41:06 +1100 (Tue, 22 Feb 2011)
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
r1607 | dmitrykos | 2011-02-21 19:02:21 +1100 (Mon, 21 Feb 2011)
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
r1606 | rob_bielik | 2011-02-18 02:56:04 +1100 (Fri, 18 Feb 2011)
r1605 | rossb | 2011-02-13 00:33:18 +1100 (Sun, 13 Feb 2011)
r1604 | dmitrykos | 2011-02-12 23:45:27 +1100 (Sat, 12 Feb 2011)
r1603 | rossb | 2011-02-12 21:22:00 +1100 (Sat, 12 Feb 2011)
moved src/common/pa_skeleton.c to src/hostapi/skeleton/pa_hostapi_skeleton.c. updated all build files accordingly.
r1602 | rossb | 2011-02-12 20:26:30 +1100 (Sat, 12 Feb 2011)
r1601 | rossb | 2011-02-12 20:21:52 +1100 (Sat, 12 Feb 2011)
r1600 | rossb | 2011-02-12 20:20:26 +1100 (Sat, 12 Feb 2011)
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in , code assumed it was in seconds.
r1599 | rossb | 2011-02-12 20:19:37 +1100 (Sat, 12 Feb 2011)
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in , code assumed it was in seconds.
r1598 | rossb | 2011-02-12 20:18:28 +1100 (Sat, 12 Feb 2011)
fixed stream info inputLatency and outputLatency calculations. PaUtil_GetBufferProcessorOutputLatency returns latency in , code assumed it was in seconds.
r1597 | dmitrykos | 2011-02-11 11:15:51 +1100 (Fri, 11 Feb 2011)
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.
r1596 | dmitrykos | 2011-02-09 19:53:50 +1100 (Wed, 09 Feb 2011)
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
r1594 | rossb | 2011-02-06 01:33:29 +1100 (Sun, 06 Feb 2011)
r1592 | rossb | 2011-02-04 21:41:58 +1100 (Fri, 04 Feb 2011)
added #include portaudio.h to pa_mac_core.h so it is consistent with all other host-api specific headers. closes ticket #7
r1589 | dmitrykos | 2011-02-04 02:37:12 +1100 (Fri, 04 Feb 2011)
r1588 | dmitrykos | 2011-02-04 02:15:44 +1100 (Fri, 04 Feb 2011)
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
r1585 | rossb | 2011-02-03 06:31:27 +1100 (Thu, 03 Feb 2011)
r1584 | rossb | 2011-02-03 05:58:17 +1100 (Thu, 03 Feb 2011)
r1583 | rossb | 2011-02-03 05:22:43 +1100 (Thu, 03 Feb 2011)
r1582 | rossb | 2011-02-03 04:29:26 +1100 (Thu, 03 Feb 2011)
r1579 | rossb | 2011-02-02 00:11:22 +1100 (Wed, 02 Feb 2011)
r1578 | rossb | 2011-02-02 00:09:10 +1100 (Wed, 02 Feb 2011)
r1577 | rossb | 2011-02-02 00:03:45 +1100 (Wed, 02 Feb 2011)
r1576 | rossb | 2011-02-01 23:58:26 +1100 (Tue, 01 Feb 2011)
r1575 | rossb | 2011-02-01 23:52:14 +1100 (Tue, 01 Feb 2011)
removed doxygen TODO items from pa_asio implementation. migrated them to new trac tasks: #103, #104, #105, #106, #107, #108, #109, #110, #111
r1574 | rossb | 2011-02-01 22:18:16 +1100 (Tue, 01 Feb 2011)
r1573 | rossb | 2011-02-01 22:17:36 +1100 (Tue, 01 Feb 2011)
r1565 | dmitrykos | 2011-01-04 05:33:32 +1100 (Tue, 04 Jan 2011)
wasapi: allow mono input/output streams be created when Blocking interface is used. Thanks to Chris ([email protected]) for providing the patch.
r1563 | philburk | 2010-12-29 10:03:56 +1100 (Wed, 29 Dec 2010)
r1562 | dmitrykos | 2010-12-27 03:36:52 +1100 (Mon, 27 Dec 2010)
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.
r1561 | dmitrykos | 2010-12-27 03:17:56 +1100 (Mon, 27 Dec 2010)
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).
r1560 | dmitrykos | 2010-12-27 02:58:30 +1100 (Mon, 27 Dec 2010)
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)
r1559 | rossb | 2010-12-26 17:43:58 +1100 (Sun, 26 Dec 2010)
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.
r1558 | dmitrykos | 2010-12-26 00:26:17 +1100 (Sun, 26 Dec 2010)
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
r1557 | rossb | 2010-12-11 14:11:35 +1100 (Sat, 11 Dec 2010)
r1556 | philburk | 2010-11-13 06:14:25 +1100 (Sat, 13 Nov 2010)
First checkin of new loopback unit test for PortAudio.
r1555 | richard_ash | 2010-11-13 04:16:21 +1100 (Sat, 13 Nov 2010)
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.
r1554 | rossb | 2010-11-08 10:57:36 +1100 (Mon, 08 Nov 2010)
r1553 | dmitrykos | 2010-11-07 19:23:51 +1100 (Sun, 07 Nov 2010)
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
r1552 | dmitrykos | 2010-11-06 12:16:34 +1100 (Sat, 06 Nov 2010)
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
r1551 | richard_ash | 2010-10-30 07:41:50 +1100 (Sat, 30 Oct 2010)
Ignore the generated .pc file so it doesn't show up in SVN status output
r1550 | richard_ash | 2010-10-30 07:09:54 +1100 (Sat, 30 Oct 2010)
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)
r1549 | rossb | 2010-10-24 21:21:35 +1100 (Sun, 24 Oct 2010)
r1548 | rossb | 2010-10-22 13:30:38 +1100 (Fri, 22 Oct 2010)
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.
r1547 | rossb | 2010-10-22 13:23:33 +1100 (Fri, 22 Oct 2010)
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)
r1546 | dmitrykos | 2010-10-21 04:32:04 +1100 (Thu, 21 Oct 2010)
wasapi: fixed capturing (Input stream) if Polling mode is used, ProcessInputBuffer was broken erroneously returning AUDCLNT_S_BUFFER_EMPTY and thus breaking Input thread.
r1545 | dmitrykos | 2010-10-21 04:00:54 +1100 (Thu, 21 Oct 2010)
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.
r1544 | bjornroche | 2010-10-17 05:48:29 +1100 (Sun, 17 Oct 2010)
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.
r1543 | dmitrykos | 2010-10-16 07:39:23 +1100 (Sat, 16 Oct 2010)
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.
r1542 | rossb | 2010-10-14 14:34:34 +1100 (Thu, 14 Oct 2010)
r1541 | dmitrykos | 2010-09-22 16:33:47 +1000 (Wed, 22 Sep 2010)
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.
r1540 | dmitrykos | 2010-09-21 02:23:30 +1000 (Tue, 21 Sep 2010)
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
r1539 | rossb | 2010-08-30 18:26:58 +1000 (Mon, 30 Aug 2010)
r1538 | dmitrykos | 2010-08-25 03:44:00 +1000 (Wed, 25 Aug 2010)
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'
r1537 | rossb | 2010-08-20 21:47:02 +1000 (Fri, 20 Aug 2010)
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
r1536 | rossb | 2010-08-14 16:22:26 +1000 (Sat, 14 Aug 2010)
r1535 | dmitrykos | 2010-08-07 06:25:07 +1000 (Sat, 07 Aug 2010)
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
r1534 | dmitrykos | 2010-08-04 07:02:52 +1000 (Wed, 04 Aug 2010)
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
r1533 | dmitrykos | 2010-08-02 20:37:18 +1000 (Mon, 02 Aug 2010)
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
r1532 | dmitrykos | 2010-07-30 20:44:18 +1000 (Fri, 30 Jul 2010)
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
r1531 | dmitrykos | 2010-07-30 04:54:45 +1000 (Fri, 30 Jul 2010)
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
r1530 | dmitrykos | 2010-07-29 16:29:41 +1000 (Thu, 29 Jul 2010)
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
r1529 | dmitrykos | 2010-07-23 20:04:03 +1000 (Fri, 23 Jul 2010)
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.
r1528 | dmitrykos | 2010-07-21 07:01:07 +1000 (Wed, 21 Jul 2010)
r1527 | dmitrykos | 2010-07-21 05:01:17 +1000 (Wed, 21 Jul 2010)
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)
r1526 | dmitrykos | 2010-07-16 09:27:21 +1000 (Fri, 16 Jul 2010)
wasapi:
- fixed usage of uninitialized variable (Input)
r1525 | rossb | 2010-07-14 16:45:25 +1000 (Wed, 14 Jul 2010)
r1524 | dmitrykos | 2010-07-13 04:41:05 +1000 (Tue, 13 Jul 2010)
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)
r1523 | dmitrykos | 2010-07-11 03:41:25 +1000 (Sun, 11 Jul 2010)
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).
r1522 | dmitrykos | 2010-07-10 09:57:51 +1000 (Sat, 10 Jul 2010)
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)
r1521 | dmitrykos | 2010-07-10 03:53:52 +1000 (Sat, 10 Jul 2010)
reverted changes from revisions 1516-1517 due to incorrectly made changes to processor's core which result in corrupted audio in some specific situations
r1519 | dmitrykos | 2010-07-09 07:03:08 +1000 (Fri, 09 Jul 2010)
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
r1518 | dmitrykos | 2010-07-06 17:28:48 +1000 (Tue, 06 Jul 2010)
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)
r1517 | dmitrykos | 2010-06-30 06:58:15 +1000 (Wed, 30 Jun 2010)
fixed processor optimization from previous release for non-interleaved host buffers case (for example ASIO)
r1516 | dmitrykos | 2010-06-29 07:35:04 +1000 (Tue, 29 Jun 2010)
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
r1515 | dmitrykos | 2010-06-29 07:29:16 +1000 (Tue, 29 Jun 2010)
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)
r1514 | dmitrykos | 2010-06-29 07:19:15 +1000 (Tue, 29 Jun 2010)
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
r1513 | dmitrykos | 2010-06-23 05:53:00 +1000 (Wed, 23 Jun 2010)
r1512 | dmitrykos | 2010-06-10 19:45:54 +1000 (Thu, 10 Jun 2010)
wasapi: fixed full-duplex failure (when host sample types differ) due to incorrect check made on I/O host buffer sizes
r1511 | dmitrykos | 2010-06-10 19:09:19 +1000 (Thu, 10 Jun 2010)
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.
r1510 | dmitrykos | 2010-06-10 18:05:29 +1000 (Thu, 10 Jun 2010)
unix: fixed compile failure due to warning about unused variable when compilation takes place with -Werror switch
r1509 | dmitrykos | 2010-06-07 03:36:33 +1000 (Mon, 07 Jun 2010)
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
r1508 | dmitrykos | 2010-06-04 06:09:33 +1000 (Fri, 04 Jun 2010)
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
r1507 | dmitrykos | 2010-06-02 03:26:37 +1000 (Wed, 02 Jun 2010)
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)
r1506 | dmitrykos | 2010-06-01 22:45:09 +1000 (Tue, 01 Jun 2010)
alsa: - if polling loop is timed out (paTimedOut) PaAlsaStream_WaitForFrames will not report any frames available
r1505 | dmitrykos | 2010-05-31 19:46:49 +1000 (Mon, 31 May 2010)
wasapi:
- implemented support of non-Interlieved buffers (paNonInterleaved) for WASAPI blocking interface for input and output
- blocking methods will now use PA sample converters
r1504 | dmitrykos | 2010-05-31 16:00:16 +1000 (Mon, 31 May 2010)
r1503 | dmitrykos | 2010-05-31 08:14:00 +1000 (Mon, 31 May 2010)
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
r1502 | dmitrykos | 2010-05-30 17:28:41 +1000 (Sun, 30 May 2010)
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
r1501 | dmitrykos | 2010-05-21 03:28:23 +1000 (Fri, 21 May 2010)
r1500 | dmitrykos | 2010-05-19 03:23:56 +1000 (Wed, 19 May 2010)
wasapi:
- re-enabled Event-driven mode for Windows 7 x64 platform if application runs as WOW64 process
r1499 | dmitrykos | 2010-05-19 01:02:41 +1000 (Wed, 19 May 2010)
wasapi:
- fixed Event-driven mode, broken in 1496 rev.
r1498 | dmitrykos | 2010-05-18 07:15:13 +1000 (Tue, 18 May 2010)
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
r1497 | dmitrykos | 2010-05-18 04:37:00 +1000 (Tue, 18 May 2010)
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)
r1496 | dmitrykos | 2010-05-13 04:08:45 +1000 (Thu, 13 May 2010)
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
r1495 | dmitrykos | 2010-04-17 17:43:00 +1000 (Sat, 17 Apr 2010)
r1494 | dmitrykos | 2010-04-17 05:08:00 +1000 (Sat, 17 Apr 2010)
implemented 'Int24_To_Int16_Dither' converter to allow 24-bit audio be played (before was silence for WMME and DirectSound)
r1493 | dmitrykos | 2010-04-16 18:31:19 +1000 (Fri, 16 Apr 2010)
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
r1492 | dmitrykos | 2010-04-16 03:44:13 +1000 (Fri, 16 Apr 2010)
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)
r1491 | dmitrykos | 2010-04-16 03:15:14 +1000 (Fri, 16 Apr 2010)
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
r1490 | dmitrykos | 2010-04-13 07:15:50 +1000 (Tue, 13 Apr 2010)
wasapi:
- improved device buffer alignment calculation allowing to set as precise device latency as possible
r1489 | dmitrykos | 2010-04-13 06:55:34 +1000 (Tue, 13 Apr 2010)
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
r1488 | dmitrykos | 2010-04-12 02:13:46 +1000 (Mon, 12 Apr 2010)
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
r1487 | dmitrykos | 2010-04-12 02:04:21 +1000 (Mon, 12 Apr 2010)
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
r1486 | dmitrykos | 2010-04-08 07:07:55 +1000 (Thu, 08 Apr 2010)
excluded x86-64 platform from ASIO 'thiscall' resolver as x64 ABI does not have 'thiscall' calling convention anymore
r1485 | dmitrykos | 2010-03-26 10:27:27 +1100 (Fri, 26 Mar 2010)
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
r1484 | dmitrykos | 2010-03-25 06:08:38 +1100 (Thu, 25 Mar 2010)
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.
r1483 | dmitrykos | 2010-03-18 22:26:47 +1100 (Thu, 18 Mar 2010)
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."
r1482 | dmitrykos | 2010-03-17 21:37:29 +1100 (Wed, 17 Mar 2010)
wasapi: small corrections to improve CoInitialize/CoUninitialize sequence (taken from DS implementation)
r1481 | dmitrykos | 2010-03-16 23:23:13 +1100 (Tue, 16 Mar 2010)
r1480 | dmitrykos | 2010-03-15 04:25:48 +1100 (Mon, 15 Mar 2010)
r1479 | dmitrykos | 2010-03-14 06:13:06 +1100 (Sun, 14 Mar 2010)
r1478 | dmitrykos | 2010-03-14 05:53:40 +1100 (Sun, 14 Mar 2010)
wasapi: fixed extension functions: PaWasapi_GetDeviceDefaultFormat / PaWasapi_GetDeviceRole - device index was misinterpreted and as a result returning value was mismatched
r1477 | dmitrykos | 2010-03-11 08:47:01 +1100 (Thu, 11 Mar 2010)
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
r1476 | dmitrykos | 2010-03-11 02:03:22 +1100 (Thu, 11 Mar 2010)
r1475 | dmitrykos | 2010-03-10 02:33:20 +1100 (Wed, 10 Mar 2010)
r1474 | dmitrykos | 2010-03-10 02:27:21 +1100 (Wed, 10 Mar 2010)
r1473 | dmitrykos | 2010-03-10 02:26:45 +1100 (Wed, 10 Mar 2010)
r1472 | dmitrykos | 2010-03-10 02:26:05 +1100 (Wed, 10 Mar 2010)
r1471 | dmitrykos | 2010-03-10 02:25:18 +1100 (Wed, 10 Mar 2010)
r1470 | dmitrykos | 2010-03-10 02:24:25 +1100 (Wed, 10 Mar 2010)
r1469 | dmitrykos | 2010-03-09 23:29:36 +1100 (Tue, 09 Mar 2010)
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
r1468 | dmitrykos | 2010-03-08 21:33:58 +1100 (Mon, 08 Mar 2010)
wasapi:
- improved debug log output: function name which returned error will be displayed as well
- fixed non-critical compiler warnings
r1467 | dmitrykos | 2010-03-04 22:02:06 +1100 (Thu, 04 Mar 2010)
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
r1466 | dmitrykos | 2010-03-04 09:57:16 +1100 (Thu, 04 Mar 2010)
+++ 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
r1465 | dmitrykos | 2010-03-03 06:08:13 +1100 (Wed, 03 Mar 2010)
+++ 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)
r1464 | dmitrykos | 2010-03-03 04:42:36 +1100 (Wed, 03 Mar 2010)
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)
r1463 | dmitrykos | 2010-03-02 23:17:03 +1100 (Tue, 02 Mar 2010)
r1462 | dmitrykos | 2010-02-26 19:57:44 +1100 (Fri, 26 Feb 2010)
+++ wasapi: Event-driven/Full-Duplex/Exclusive mode will be calling user-provided callbacks simultaneously when both input/output buffers are ready for IO
r1461 | rossb | 2010-02-23 03:29:48 +1100 (Tue, 23 Feb 2010)
r1460 | rossb | 2010-02-23 03:07:56 +1100 (Tue, 23 Feb 2010)
r1459 | dmitrykos | 2010-02-20 23:03:57 +1100 (Sat, 20 Feb 2010)
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
r1458 | dmitrykos | 2010-02-20 22:55:20 +1100 (Sat, 20 Feb 2010)
wasapi: fixed capturing callback not called if paWinWasapiPolling flag specified, or WOW64 workaround is used, same bug was causing div/0 crash
r1457 | dmitrykos | 2010-02-19 22:16:01 +1100 (Fri, 19 Feb 2010)
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.
r1456 | dmitrykos | 2010-02-17 21:11:40 +1100 (Wed, 17 Feb 2010)
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.
r1455 | dmitrykos | 2010-02-16 22:52:19 +1100 (Tue, 16 Feb 2010)
r1454 | dmitrykos | 2010-02-16 22:18:52 +1100 (Tue, 16 Feb 2010)
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.
r1453 | dmitrykos | 2010-02-16 20:46:08 +1100 (Tue, 16 Feb 2010)
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.
r1452 | dmitrykos | 2010-02-11 05:10:18 +1100 (Thu, 11 Feb 2010)
r1451 | philburk | 2010-02-11 05:05:40 +1100 (Thu, 11 Feb 2010)
r1450 | rossb | 2010-02-03 11:28:29 +1100 (Wed, 03 Feb 2010)
fix for undefined DirectSoundFullDuplex8 when PAWIN_USE_DIRECTSOUNDFULLDUPLEXCREATE wasn't defined. thanks Dmitry
r1449 | rossb | 2010-02-02 20:01:13 +1100 (Tue, 02 Feb 2010)
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.
r1448 | rossb | 2010-01-25 00:17:31 +1100 (Mon, 25 Jan 2010)
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)
r1447 | rossb | 2010-01-24 23:35:36 +1100 (Sun, 24 Jan 2010)
r1446 | rossb | 2010-01-24 23:27:31 +1100 (Sun, 24 Jan 2010)
r1445 | rossb | 2010-01-24 23:09:34 +1100 (Sun, 24 Jan 2010)
DirectSound don't crash when starting a blocking io (non-callback) stream. blocking io still not implemented though.
r1444 | rossb | 2010-01-24 22:48:06 +1100 (Sun, 24 Jan 2010)
added test case to patest_stop_playout.c which catches issues with host buffers looping/not being cleared if the callback returns paComplete
r1443 | rossb | 2010-01-24 22:42:56 +1100 (Sun, 24 Jan 2010)
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.
r1442 | rossb | 2010-01-24 20:34:48 +1100 (Sun, 24 Jan 2010)
r1441 | rossb | 2010-01-24 20:21:50 +1100 (Sun, 24 Jan 2010)
r1440 | rossb | 2010-01-24 20:20:23 +1100 (Sun, 24 Jan 2010)
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.
r1439 | rossb | 2010-01-24 19:42:02 +1100 (Sun, 24 Jan 2010)
r1438 | rossb | 2009-12-23 16:35:08 +1100 (Wed, 23 Dec 2009)
r1437 | rossb | 2009-12-10 19:10:08 +1100 (Thu, 10 Dec 2009)
r1436 | rossb | 2009-12-10 19:09:21 +1100 (Thu, 10 Dec 2009)
r1435 | bjornroche | 2009-12-10 12:37:02 +1100 (Thu, 10 Dec 2009)
r1434 | rossb | 2009-12-09 12:55:50 +1100 (Wed, 09 Dec 2009)
derive ds output channel count from speaker configuration when pnpInterface is unavailable (eg wavemapper). Thanks to Dmitry Kostjuchenko for the patch.
r1433 | rossb | 2009-12-09 12:42:59 +1100 (Wed, 09 Dec 2009)
r1432 | rossb | 2009-12-09 12:31:44 +1100 (Wed, 09 Dec 2009)
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.
r1431 | rossb | 2009-12-08 20:40:09 +1100 (Tue, 08 Dec 2009)
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
r1430 | rossb | 2009-12-08 20:26:33 +1100 (Tue, 08 Dec 2009)
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.
r1429 | rossb | 2009-12-08 20:17:34 +1100 (Tue, 08 Dec 2009)
r1428 | bjornroche | 2009-12-03 04:48:05 +1100 (Thu, 03 Dec 2009)
added and removed dummy property listener as this may be required by OS X 10.6. Also, returned no error on property timeout.
r1427 | bjornroche | 2009-12-02 02:58:37 +1100 (Wed, 02 Dec 2009)
r1426 | bjornroche | 2009-12-02 02:38:55 +1100 (Wed, 02 Dec 2009)
r1425 | bjornroche | 2009-12-02 02:38:08 +1100 (Wed, 02 Dec 2009)
r1424 | bjornroche | 2009-12-01 08:08:54 +1100 (Tue, 01 Dec 2009)
added new test for hardware samplerate changes. This is mostly targetted to the mac, but could be adapted to other platforms as well.
r1423 | bjornroche | 2009-12-01 08:07:43 +1100 (Tue, 01 Dec 2009)
r1422 | bjornroche | 2009-11-19 08:07:31 +1100 (Thu, 19 Nov 2009)
r1421 | bjornroche | 2009-11-19 03:09:05 +1100 (Thu, 19 Nov 2009)
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.
r1420 | bjornroche | 2009-10-23 04:51:07 +1100 (Fri, 23 Oct 2009)
r1419 | bjornroche | 2009-10-23 04:28:35 +1100 (Fri, 23 Oct 2009)
patch to use mach absolute time on mac OS X since apple advises against gettimeofday in IOProcs. Patch due to Ross Bencina.
r1418 | philburk | 2009-10-13 08:00:53 +1100 (Tue, 13 Oct 2009)
Fixed dither for 64-bit targets.
r1417 | rossb | 2009-09-09 22:48:17 +1000 (Wed, 09 Sep 2009)
r1416 | rossb | 2009-06-17 02:12:41 +1000 (Wed, 17 Jun 2009)
r1415 | aknudsen | 2009-06-04 04:57:56 +1000 (Thu, 04 Jun 2009)
Fix latency calculation in PA ALSA
r1414 | aknudsen | 2009-05-25 03:02:10 +1000 (Mon, 25 May 2009)
Add PA ALSA extension to allow setting number of retries when busy
r1413 | aknudsen | 2009-05-25 03:00:36 +1000 (Mon, 25 May 2009)
Clarify hostapi ordering somewhat
r1412 | aknudsen | 2009-05-25 02:54:22 +1000 (Mon, 25 May 2009)
Apply Kevin Kofler's non-mmap patch
r1411 | rossb | 2009-05-15 00:37:37 +1000 (Fri, 15 May 2009)
r1410 | rossb | 2009-04-07 20:08:48 +1000 (Tue, 07 Apr 2009)
added pragma to autolink libwinmm with msvc to get timeGetTime symbol when only using ASIO. thanks Yann
r1409 | davidv | 2009-04-05 06:04:53 +1000 (Sun, 05 Apr 2009)
r1408 | rossb | 2009-03-14 03:41:39 +1100 (Sat, 14 Mar 2009)
r1407 | rossb | 2009-03-14 03:31:28 +1100 (Sat, 14 Mar 2009)
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
r1406 | rossb | 2009-03-08 19:15:50 +1100 (Sun, 08 Mar 2009)
added notes to pa_test_ac3.c that the test stream file must include the correct spdif preamble on every ac3 frame
r1405 | rossb | 2009-03-08 19:10:55 +1100 (Sun, 08 Mar 2009)
r1404 | rossb | 2009-03-08 18:15:03 +1100 (Sun, 08 Mar 2009)
r1403 | rossb | 2009-01-29 18:33:04 +1100 (Thu, 29 Jan 2009)
r1402 | rossb | 2009-01-29 17:28:30 +1100 (Thu, 29 Jan 2009)
wmme host api: take account of paWinMmeWaveFormatDolbyAc3Spdif and paWinMmeWaveFormatWmaSpdif flags in Pa_IsFormatSupported
r1401 | rossb | 2009-01-21 23:07:32 +1100 (Wed, 21 Jan 2009)
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
r1400 | rossb | 2009-01-21 21:20:42 +1100 (Wed, 21 Jan 2009)
r1399 | rossb | 2009-01-05 20:08:44 +1100 (Mon, 05 Jan 2009)
factored asio sample rate setting code into separate functions. added PaAsio_SetStreamSampleRate() function.
r1398 | rossb | 2009-01-05 19:59:14 +1100 (Mon, 05 Jan 2009)
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
r1397 | rossb | 2009-01-04 19:28:42 +1100 (Sun, 04 Jan 2009)
r1396 | philburk | 2008-11-04 06:31:30 +1100 (Tue, 04 Nov 2008)
r1395 | bjornroche | 2008-10-25 01:10:04 +1100 (Sat, 25 Oct 2008)
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.
r1394 | gordon_gidluck | 2008-10-06 02:15:34 +1100 (Mon, 06 Oct 2008)
r1393 | gordon_gidluck | 2008-10-06 02:15:15 +1100 (Mon, 06 Oct 2008)
r1392 | gordon_gidluck | 2008-10-06 02:14:25 +1100 (Mon, 06 Oct 2008)
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.
r1391 | gordon_gidluck | 2008-09-15 01:24:58 +1000 (Mon, 15 Sep 2008)
ticket#84. Ran into a problem with conversion from CreateFile to _beginthreadex. Changing it back for now.
r1390 | gordon_gidluck | 2008-09-15 00:29:34 +1000 (Mon, 15 Sep 2008)
r1389 | gordon_gidluck | 2008-09-15 00:27:40 +1000 (Mon, 15 Sep 2008)
r1388 | gordon_gidluck | 2008-09-15 00:18:17 +1000 (Mon, 15 Sep 2008)
r1387 | philburk | 2008-06-29 04:28:07 +1000 (Sun, 29 Jun 2008)
r1386 | philburk | 2008-06-29 04:27:34 +1000 (Sun, 29 Jun 2008)
r1385 | aknudsen | 2008-06-06 07:13:54 +1000 (Fri, 06 Jun 2008)
OSS: clear trigger direction bits at correct time
r1384 | rossb | 2008-05-15 14:35:30 +1000 (Thu, 15 May 2008) | 1 line
r1383 | bjornroche | 2008-05-14 05:10:54 +1000 (Wed, 14 May 2008)
r1382 | philburk | 2008-05-14 02:31:34 +1000 (Wed, 14 May 2008)
tweak svn test
r1381 | aknudsen | 2008-03-31 08:02:09 +1100 (Mon, 31 Mar 2008)
r1380 | aknudsen | 2008-03-26 07:21:35 +1100 (Wed, 26 Mar 2008)
r1379 | bjornroche | 2008-03-21 01:24:39 +1100 (Fri, 21 Mar 2008)
r1377 | bjornroche | 2008-03-21 01:18:47 +1100 (Fri, 21 Mar 2008)
r1374 | aknudsen | 2008-03-19 01:55:04 +1100 (Wed, 19 Mar 2008)
r1373 | rossb | 2008-03-12 16:24:55 +1100 (Wed, 12 Mar 2008)
r1372 | bjornroche | 2008-03-12 02:20:38 +1100 (Wed, 12 Mar 2008)
r1371 | bjornroche | 2008-03-12 01:27:26 +1100 (Wed, 12 Mar 2008)
r1370 | jpgrayson | 2008-03-07 04:14:06 +1100 (Fri, 07 Mar 2008)
Commit new configure that is up-to-date with latest changes to configure.in (asio build fixes).
r1369 | jpgrayson | 2008-03-07 04:10:28 +1100 (Fri, 07 Mar 2008)
Fix line endings. Touch up other whitespace.
r1368 | rossb | 2008-03-01 11:38:27 +1100 (Sat, 01 Mar 2008)
patch from magnus jonsson to print error instead of crash in tests when there is no default input (or output) device. changes to paqa_errs are related to ticket #61
r1367 | rossb | 2008-03-01 10:45:23 +1100 (Sat, 01 Mar 2008)
r1366 | rossb | 2008-03-01 10:39:43 +1100 (Sat, 01 Mar 2008)
r1365 | rossb | 2008-03-01 10:29:29 +1100 (Sat, 01 Mar 2008)
r1364 | rossb | 2008-03-01 10:23:16 +1100 (Sat, 01 Mar 2008)
r1363 | rossb | 2008-02-29 19:59:47 +1100 (Fri, 29 Feb 2008)
Blocking i/o implementation by Sven Fischer. adds pa_asio dependency on pa_ringbuffer.c. Added i386 memory barriers for MSVC and BORLAND
r1362 | aknudsen | 2008-02-29 08:43:57 +1100 (Fri, 29 Feb 2008)
r1361 | aknudsen | 2008-02-29 08:35:22 +1100 (Fri, 29 Feb 2008)
Fixed bug in SCons setup
r1360 | jpgrayson | 2008-02-24 06:10:38 +1100 (Sun, 24 Feb 2008)
Fix (or at least make less grossly broken) asio build for Mac and Windows.
r1359 | rossb | 2008-02-23 20:46:25 +1100 (Sat, 23 Feb 2008)
r1358 | jpgrayson | 2008-02-23 07:48:22 +1100 (Sat, 23 Feb 2008)
- Small fixes to build system. -- Fix some typos in configure.in affecting Mac ASIO build and C++ binding builds. -- Remove unused LT_RELEASE variable from configure.in and Makefile.in. -- Split really long PA_LDFLAGS assignment. -- Substitute make built-in $(RM) for "rm -f". -- Use variable for lib-stamp command; this reduces output noise at make-time. -- Use simple variable expansion when assigning OBJS.
r1357 | rossb | 2008-02-22 18:58:10 +1100 (Fri, 22 Feb 2008)
r1356 | rossb | 2008-02-22 16:35:29 +1100 (Fri, 22 Feb 2008)
patch from Eliot Blennerhassett to use new stream read write functions that first appeared in HPI version 3.05.05. resolves ticket #51
r1355 | jpgrayson | 2008-02-22 07:51:22 +1100 (Fri, 22 Feb 2008)
- Apply patch to adds NetBSD support to scons build. -- Thanks to Jorge Maciá.
r1354 | jpgrayson | 2008-02-22 07:42:43 +1100 (Fri, 22 Feb 2008)
Modify scons build system to now work on MacOSX (darwin). Thanks Jorge Maciá.
r1353 | jpgrayson | 2008-02-22 07:34:00 +1100 (Fri, 22 Feb 2008)
- Applied initial part of darwin build fix patch from Jorge Maciá. -- Move mac-specific hostapi stuff from pa_mac_hostapis.c into more generic pa_unix_hostapis.c. -- Remove deprecated pa_mac_hostapis.c. -- Update configure script to use pa_unix_hostapis.c for darwin builds.
r1352 | jpgrayson | 2008-02-22 03:42:04 +1100 (Fri, 22 Feb 2008)
Support Sun's cc compiler on solaris. Thanks Pete Ross.
r1351 | jpgrayson | 2008-02-22 03:40:18 +1100 (Fri, 22 Feb 2008)
More robust make recursion. Thanks Pete Ross.
r1350 | jpgrayson | 2008-02-22 03:08:28 +1100 (Fri, 22 Feb 2008)
- Partial patch for NetBSD support -- Add configure-time test for libossaudio library.
r1349 | jpgrayson | 2008-02-22 03:07:31 +1100 (Fri, 22 Feb 2008)
- Partial patch for NetBSD support. -- Change DEVICE_NAME_BASE when building for NetBSD. -- Only use SNDCTL_DSP_GETODELAY ioctl() if it is available.
r1348 | rossb | 2008-02-21 16:31:26 +1100 (Thu, 21 Feb 2008)
r1347 | rossb | 2008-02-21 15:54:36 +1100 (Thu, 21 Feb 2008)
r1346 | rossb | 2008-02-20 21:09:20 +1100 (Wed, 20 Feb 2008)
r1345 | rossb | 2008-02-20 15:21:56 +1100 (Wed, 20 Feb 2008)
r1344 | rossb | 2008-02-18 19:36:54 +1100 (Mon, 18 Feb 2008)
r1343 | rossb | 2008-02-18 19:27:03 +1100 (Mon, 18 Feb 2008)
added explicit management of the asioDrivers instance creation and destruction. this fixes a leak where the asioDrivers instance was never destroyed.
r1342 | rossb | 2008-02-15 23:46:45 +1100 (Fri, 15 Feb 2008)
r1341 | rossb | 2008-02-15 22:43:43 +1100 (Fri, 15 Feb 2008)
r1340 | rossb | 2008-02-15 19:31:42 +1100 (Fri, 15 Feb 2008)
r1339 | rossb | 2008-02-15 18:50:33 +1100 (Fri, 15 Feb 2008)
resolved ticket #4 deleted V19-devel-readme.txt and moved relevant information from it into doxygen comments. improved doxygen documentation. wrapped config flags in pa_trace.h with #ifndef to allow them to be overridden using compiler flags.
r1338 | rossb | 2008-02-15 18:50:00 +1100 (Fri, 15 Feb 2008)
r1337 | rossb | 2008-02-15 18:32:09 +1100 (Fri, 15 Feb 2008)
resolved ticket #4 deleted V19-devel-readme.txt and moved relevant information from it into doxygen comments. improved doxygen documentation. wrapped config flags in pa_trace.h with #ifndef to allow them to be overridden using compiler flags.
r1336 | rossb | 2008-02-14 03:11:30 +1100 (Thu, 14 Feb 2008)
r1335 | rossb | 2008-02-14 03:00:30 +1100 (Thu, 14 Feb 2008)
r1334 | bjornroche | 2008-02-09 03:31:43 +1100 (Sat, 09 Feb 2008)
added check for ppc and powerpc and comment that check for PPC is probably not needed in membar code. Also linebreak. Thanks Peter Grayson.
r1333 | rossb | 2008-02-05 18:23:01 +1100 (Tue, 05 Feb 2008)
r1332 | aknudsen | 2008-02-05 09:21:35 +1100 (Tue, 05 Feb 2008)
r1331 | bjornroche | 2008-02-03 06:22:41 +1100 (Sun, 03 Feb 2008
r1330 | bjornroche | 2008-02-03 06:11:55 +1100 (Sun, 03 Feb 2008)
Patch to make universal binary optional. (This is not quite patch 5/5 from Peter Grayson referanced here: http://techweb.rfa.org/pipermail/portaudio/2008-January/008180.html, but rather this modicication: http://techweb.rfa.org/pipermail/portaudio/2008-February/008188.html)
r1329 | bjornroche | 2008-02-03 03:08:41 +1100 (Sun, 03 Feb 2008)
simplified/cleaned configure code dealing with mac universal binaries. (patch 4/5 from Peter Grayson: http://techweb.rfa.org/pipermail/portaudio/2008-January/008180.html)
r1328 | bjornroche | 2008-02-03 03:04:52 +1100 (Sun, 03 Feb 2008)
Fixed issue that caused CFLAGS from environment to be ignored in default case. also removed unnecessary assignemnt of CXXFLAGS. (patch 3/5 from Peter Grayson: http://techweb.rfa.org/pipermail/portaudio/2008-January/008180.html)
r1327 | bjornroche | 2008-02-03 02:58:42 +1100 (Sun, 03 Feb 2008)
Fixed typo that would have caused trouble in Mac OS X 10.4 builds. (patch 2/5 from Peter Grayson: http://techweb.rfa.org/pipermail/portaudio/2008-January/008180.html)
r1326 | bjornroche | 2008-02-03 02:54:23 +1100 (Sun, 03 Feb 2008)
Normalized whitespace (including tab removal) and semicolon usage in configure.in. (patch 1/5 from Peter Grayson: http://techweb.rfa.org/pipermail/portaudio/2008-January/008180.html)
r1325 | aknudsen | 2008-02-02 04:53:49 +1100 (Sat, 02 Feb 2008)
Patch by Jorge Maciá: Add error descriptions
r1324 | bjornroche | 2008-01-27 13:03:30 +1100 (Sun, 27 Jan 2008)
added -Werror flag back to all mac builds. This required slight tweak to pa_endianness to avoid unused variable warning.
r1323 | bjornroche | 2008-01-27 12:45:01 +1100 (Sun, 27 Jan 2008)
backout configure change accidentally added in last commit. I may be about to add it back, but it should not have been part of the previous commit.
r1322 | bjornroche | 2008-01-27 12:43:09 +1100 (Sun, 27 Jan 2008)
r1321 | bjornroche | 2008-01-27 12:27:22 +1100 (Sun, 27 Jan 2008)
r1320 | bjornroche | 2008-01-27 12:03:39 +1100 (Sun, 27 Jan 2008)
r1319 | bjornroche | 2008-01-27 07:32:23 +1100 (Sun, 27 Jan 2008)
r1318 | bjornroche | 2008-01-27 06:18:29 +1100 (Sun, 27 Jan 2008)
r1317 | bjornroche | 2008-01-24 08:11:48 +1100 (Thu, 24 Jan 2008)
r1316 | bjornroche | 2008-01-24 07:40:38 +1100 (Thu, 24 Jan 2008)
r1315 | bjornroche | 2008-01-23 10:02:18 +1100 (Wed, 23 Jan 2008)
r1314 | aknudsen | 2008-01-14 09:25:15 +1100 (Mon, 14 Jan 2008)
r1313 | aknudsen | 2008-01-14 09:22:36 +1100 (Mon, 14 Jan 2008)
r1312 | bjornroche | 2008-01-14 03:11:07 +1100 (Mon, 14 Jan 2008)
r1311 | bjornroche | 2008-01-13 05:15:22 +1100 (Sun, 13 Jan 2008)
r1310 | aknudsen | 2008-01-07 01:30:37 +1100 (Mon, 07 Jan 2008)
r1309 | aknudsen | 2008-01-02 09:02:42 +1100 (Wed, 02 Jan 2008)
r1308 | gordon_gidluck | 2007-12-26 13:45:15 +1100 (Wed, 26 Dec 2007)
r1307 | aknudsen | 2007-12-17 02:40:10 +1100 (Mon, 17 Dec 2007)