Skip to content

pa_stable_v190600_20161030

Wiki converter edited this page Sep 24, 2020 · 5 revisions

pa_stable_v190600_20161030 (October 30, 2016) Changelog

See below for the full list of changes.

API/ABI Changes in This Release

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 to int version returned by Pa_GetVersion()
  • added PaVersionInfo struct with version major, minor, subminor, versionControlRevision, versionText
  • added Pa_GetVersionInfo() gets PaVersionInfo struct
  • Pa_GetVersionText() is deprecated; use Pa_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.

Changes to WDM/KS Host-API-specific Struct in pa_win_wdmks.h

  • Added flags and channelMask fields to PaWinWDMKSInfo. 4aa340a57e

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.

Changes to WASAPI Host-API-specific Struct pa_win_wasapi.h

  • Added streamCategory and streamOption to PaWasapiStreamInfo 4e194eaecf

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.

Full List of Changes

Here's the full list of commits since the last stable snapshot:

master:HEAD vs pa_stable_v19_20140130_r1919

All Platforms

  • Add new version number API (see above)
  • Updated version number to 19.6.0 (due to extension added to WASAPI host-API specific)
  • 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. c0c0cb1414
  • Fixed bug that would result in open streams not being closed when Pa_Terminate() is called (Thanks to Karl Wolfram). Ticket #260
  • C++ binding: make operator == and != const. Thanks to Riot for patch. Ticket #230
  • Moved repository to Git

Documentation

  • Various documentation improvements, including:
    • Update docs for building on Linux
    • Clarified safety of operations in callback
    • Document API Version Availability (e.g. Available as of 19.5.0) MR 3881793

Build Systems

  • CMake support for Unix platforms (thanks to Nick Appleton) MR 3751483
  • Fix PA_LIBRARY_DEPENDENCIES problem with CMake/WMME. mailing list

Linux

  • pa_linux_alsa: fix hang in callback caused by abort. Ticket #251

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 3829453
  • pa_mac_core: Fix assert when reading or writing with non-power of 2 channels. Now Scarlett 6i6 works. Ticket #229
  • pa_mac_core: stop stream instead of asserting (crashing) under certain conditions, e.g. when device is unplugged. Ticket #158
  • pa_mac_core: fixed copy-pasto: last host error was being associated with paInDevelopment host api not paCoreAudio
  • pa_mac_core: Fix for truncated device names e.g. 'Built-in Microph' from Olivier Tristan. 55adee0a90

Windows

  • win: Removed Microsoft copyright include files from src/hostapi/wasapi/mingw-include (may affect MinGW builds) MR 3848293
  • 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.

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 3643753 MR 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

WDM/KS

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.

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.
Clone this wiki locally