-
Notifications
You must be signed in to change notification settings - Fork 318
NextReleasePlan
h1. Planning for the Next Release
This page describes the changes that we are planning to include in the next release.
h2. Proposed Schedule
- Friday, September 16, deadline for new merge requests (including e.g. ALSA fix)
- Friday week, September 23, deadline for approval of merge requests. ** Anything that's still in review on Sept 23 will not be merged for the release. Then we take the RC snapshot. ** Freeze master branch. (Or make a release branch?) ** Run all tests release candidate.
- Friday September 30 - Release
h2. YES - include these
(No more changes planned at this stage)
h2. MAYBE
(No more changes planned at this stage)
h2. NO - include in a future release
Hotplug feature.
url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3719213 This is a very useful new feature. But it has not been tested much. Ross says it could have a big impact if it gets rushed into Linux distros. So let's test it awhile in the nightly snapshot before releasing it as "stable".
Ross says there are some internal changes and refactoring for HotPlug that could go in now without making any API changes.
h2. Already Merged
The release is made directly from master So any changes that are already merged into master will be included.
- Fix for C99 initializers in pa_front.c
- Use Git SHA instead of SVN revision for versionText
- pa_mac_core: fix assert when reading or writing with non-power of 2 channels, now Scarlett 6i6 works
- pa_mac_core: stop stream instead of asserting when device unplugged
- url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3772573
- Fix for url:https://app.assembla.com/spaces/portaudio/tickets/251-callback-hangs-after-upgrading-to-alsa-lib-1-1-2-on-linux/details
- url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3848293
- url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3829453
- url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3751483 - Robert has okayed it, need to get more testers during RC
- url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3873413 - Updated from 19.5 --> 19.6 due to extension added to WASAPI host-API specific
- [[url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3881793|Document API Version Availability (e.g.
Available as of 19.5.0
).]] - url:https://app.assembla.com/spaces/portaudio/git/merge_requests/3876603
h2. API/ABI Changes in This Release
h3. Changes to portaudio.h
There were no changes to existing portaudio.h
API/ABI in this release. The API was extended as follows:
Prior to March 3, 2015, Pa_GetVersion()
always returned 1899 in the V19
version of PortAudio.
On March 3, 2015, enhanced version retrieval APIs were added to portaudio.h
:
-
Pa_GetVersion()
now returns a useful number, e.g. 0x00130501 for 19.5.1 - added
paMakeVersionNumber
macro for comparing toint
version returned byPa_GetVersion()
- added
PaVersionInfo
struct with version major, minor, subminor, versionControlRevision, versionText - added
Pa_GetVersionInfo()
getsPaVersionInfo
struct -
Pa_GetVersionText()
is deprecated; usePa_GetVersionInfo()->versionText
On March 3, 2015, the version number was set to 19.5.0. (5 was chosen to reflect that there were 4 prior V19 stable snapshots.)
This new release has version number 19.6.0.
The Host-API-specific structures for WDM/KS and WASAPI were altered in this release. This is an ABI change. Client code depending on these particular host-API-specific APIs will need to be recompiled and linked against a compatible PortAudio version. See below.
h3. Changes to WDM/KS Host-API-specific Struct in pa_win_wdmks.h
- Added
flags
andchannelMask
fields toPaWinWDMKSInfo
. url:https://app.assembla.com/spaces/portaudio/git/commits/4aa340a57e98e1bfd7f3ab1449226de76ed8f9aa
These changes were made on April 9, 2014. At that time Pa_GetVersion()
returned 1899. The changes are present when the version number is 19.5.0 or greater.
Forward/backward compatibility: The implementation checks the size
field of PaWinWDMKSInfo
. The old version will reject new structs, and the new version will reject old structs. In both cases paIncompatibleHostApiSpecificStreamInfo
is the error returned.
h3. Changes to WASAPI Host-API-specific Struct pa_win_wasapi.h
- Added
streamCategory
andstreamOption
toPaWasapiStreamInfo
url:https://app.assembla.com/spaces/portaudio/git/commits/4e194eaecfab9c5ca01a90602e5ddd3baf1f4e5c
These changes were made on October 19, 2015. At that time Pa_GetVersion()
returned 19.5.0. The changes are present when the version number is 19.6.0 or greater.
Forward/backward compatibility: The implementation checks the size
field of PaWasapiStreamInfo
. The old version will reject new structs, and the new version will reject old structs. In both cases paIncompatibleHostApiSpecificStreamInfo
is the error returned.
h2. Full List of Changes
Here's the full list of commits since the last stable snapshot:
In summary:
- Add new version number API (see above)
- Updated version number to 19.6.0
- Various documentation improvements, including:
- Update docs for building on Linux
- Clarified safety of operations in callback
- CMake support for Unix platforms (thanks to Nick Appleton) MR: https://app.assembla.com/spaces/portaudio/git/merge_requests/3751483 commit 3765e908c24b8163e86c450924655237b010030c
- Moved repository to Git
- 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. commit c0c0cb1414bb75efe90b0a0d4cc2f855afe9d3d3
- C++ binding: make operator == and != const. thanks to Riot for patch. ticket #230
h3. Linux
- pa_linux_alsa: fix hang in callback caused by abort Ticket #251 MR https://assembla.com/code/portaudio/git/merge_requests/3834073 commit 52bd2afb1ddca18ba76bb35c4088c1208edf3f6f
h3. Mac
- Update configure files for Mac OS X El Capitan, 10.11 SDK
- pa_mac_core_blocking: fix hang when running stream stopped (add timeout) Ticket #252 MR https://assembla.com/code/portaudio/git/merge_requests/3829453 commit b69214bcb421798a9e8ff585060b7421063f1211
- pa_mac_core: Fix assert when reading or writing with non-power of 2 channels. Ticket #229 commit e111b3a269ae69c8c083ca4a2a3e3d66828d9ddc Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3299213
- pa_mac_core: stop stream instead of asserting (crashing) under certain conditions commit 89d176178b1e23e32d34b504fd60e1276e3a57fc Merged-on: https://assembla.com/code/portaudio/git/merge_requests/3218623 Ticket #158
- pa_mac_core: fixed copy-pasto: last host error was being associated with paInDevelopment host api not paCoreAudio
- pa_mac_core: Olivier's device name patch for os x commit 55adee0a9062c432e8d40e638f12aae43380092a Author: bejayoharen bejayoharen@0f58301d-fd10-0410-b4af-bbb618454e57 Date: Sat Jun 28 16:28:17 2014 +0000
h3. Windows
- win: Removed Microsoft copyright include files from src/hostapi/wasapi/mingw-include (may affect MinGW builds)
- win: 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 GUID.)
- win mingw: Issue #234 fixed typo in configure and configure.in affecting mingw builds.
h3. WASAPI
- pa_win_wasapi: ported to WinRT (UWP) platform, compatibility fixes to compile PortAudio as Windows Store library (only WASAPI hostapi is compatible with Windows Store APIs) MR https://assembla.com/code/portaudio/git/merge_requests/3643753 MR https://assembla.com/code/portaudio/git/merge_requests/3772573
- pa_win_wasapi: use InterlockedXXX APIs to secure inter-thread r/w access to variables to avoid possible deadlocks or logic corruption
- pa_win_wasapi: workaround to avoid PaWasapi_Initialize() failure when enumerating devices and device fails to report min/default periods
- pa_win_wasapi: support for setting the WASAPI's AudioClientProperties options via PaWasapiStreamInfo
h3. WDM/KS
- pa_win_wdmks: Leland's patch for WDM-KS, should take care of some of the problems referenced here http://music.columbia.edu/pipermail/portaudio/2014-August/0162 commit d7085cb226fb8d2974e281b3ea25d89a401d85c3 Author: robiwan robiwan@0f58301d-fd10-0410-b4af-bbb618454e57 Date: Fri Aug 15 06:35:32 2014 +0000
- pa_win_wdmks: Support for default device (see caveat for input devices though in ScanDeviceInfos).
- pa_win_wdmks: Added possibility to set channel mask.
h3. WMME
- pa_win_wmme: avoid potential (but highly unlikely) overflow in buffer size in call to WideCharToMultiByte if a device name length exceeds INT_MAX.
- pa_win_wmme: correctly convert device names to UTF-8, see ticket #224. Thanks to Tobias Erichsen for the patch.
h3. DirectSound
- pa_win_ds: 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.