
Version 2.10, 2020-05-18 (minor feature release)

  * Add a method to PluginWrapper, the host-side base for adapters
    like PluginInputDomainAdapter that modify the processing behaviour
    of a plugin, that tells it to "disown" the wrapped plugin. The
    former behaviour, and still the default, is for the wrapper to
    take ownership of the wrapped plugin. The alternative behaviour
    makes it easier to mix these classes with some modern C++ styles
    that use managed pointers

Version 2.9, 2019-11-13 (maintenance release)

  * Fix non-thread-safe behaviour in PluginAdapter. Plugins built
    using the adapter classes in version 2.8 or earlier cannot safely
    be used simultaneously across threads with other instances of
    themselves or of other plugins in the same library (i.e. shared
    object). Hosts have been required to provide synchronisation for
    such cases. Version 2.9 introduces synchronisation in the plugin,
    making this usage safe. Unfortunately this does not make host code
    safe when using older plugin builds, as the problem and its fix
    are in the plugin side of the SDK. Caution is still required, but
    this fix does allow updated plugin builds to avoid problems with
    some existing hosts
  * Change required C++ language standard from C++98 to C++11. This
    is because of the use of std::mutex in the above fix

Version 2.8, 2019-02-07 (maintenance and minor feature release)

  * When running in a 32-bit process within 64-bit Windows (WoW64),
    use the VAMP_PATH_32 environment variable instead of VAMP_PATH
    (hosts running in this context already use "Program Files (x86)"
    instead of Program Files)
  * Fix off-by-one rounding errors in frame-to-ns conversions. Unlike
    the other changes here which are invisible to plugin code, this
    change can lead to different results in the lowest significant
    figures from existing plugins if relinked against the newer code
  * Fix path environment variable character encoding handling on
    Windows
  * Fix theoretical possibility of integer overflow in RealTime
    constructor
  * Fix use of undefined behaviour in PluginRateExtractor

Version 2.7.1, 2017-03-06 (maintenance release)

  * Fix inclusion mechanism for FFTs which could cause a host
    application to crash in certain circumstances due to
    conflicting versions of C-linkage symbols

Version 2.7, 2017-02-24 (maintenance and minor feature release)

  * Add ability to PluginLoader to list plugins only in (or not in)
    certain library files
  * Fix fixed-sample-rate output timestamps in printout from the
    simple host, and add regression test script using test plugin
  * Switch the convenience FFT interface for plugin usage from the
    very slow reference implementation previously provided, to the
    somewhat faster KissFFT
  * Add a top-secret compiler flag to switch internal FFTs to single-
    precision only
  * Fix some small but long-standing memory leaks and minor bugs

Version 2.6, 2015-06-16 (maintenance and minor feature release)

  * Add a simple C-linkage API for plugin library discovery and
    loading -- the missing part when trying to use Vamp plugins from C
    or a language with only C-linkage foreign-function interface
  * Fix bug in PluginBufferingAdapter reset() function, which failed
    to reset timestamp rewrites (symptom: timestamps appeared to
    continue to ascend from end point on next run after a reset)
  * Fix sometime 1-sample rounding error in PluginInputDomainAdapter
  * Update build files for more recent OS versions
  * Add -L option to simple host, as synonym for --list-full
  * Add a combined Visual C++ solution that includes the plugin SDK,
    host SDK, example plugins, and simple host projects

Version 2.5, 2013-05-08 (maintenance release):

  * Fix incorrect handling of FixedSampleRate outputs in the
    PluginBufferingAdapter. Un-timestamped features on these outputs
    were incorrectly being timestamped from the process timestamp,
    where they should have been timed relative to the previous
    feature on the output according to the output's sample rate.
  * Fix return of uninitialised memory through getCurrentProgram
    when plugin specifies no programs
  * Ensure output sample rate is initialised (to 0) for variable-rate
    outputs where the plugin forgets to set a rate

Version 2.4, 2012-07-12 (maintenance and minor feature release):

  * Provide a simple FFT implementation as a convenience for plugins
  * Add symbols to make the library versions discoverable by autoconf
    using C linkage
  * Fix failure to open plugins from Unicode builds on Windows (thanks
    RJ Ryan)
  * Fix thread-safety issue in PluginInputDomainAdapter
  * Add build for OS/X 10.7+/Xcode 4; remove build for OpenSolaris

Version 2.3, 2011-09-28 (minor feature release):

  * Add window type property to PluginInputDomainAdapter
  * Permit vamp-simple-host to use streaming input with indeterminate
    length (thanks Dan Stowell)
  * Print label as well as values from vamp-simple-host (thanks Dan)

Version 2.2.1, 2011-04-05 (maintenance release):

  * Minor build fixes for OS/X

Version 2.2, 2010-08-26 (maintenance release):

  * Fixes to OS/X build procedures so as to build three-way
    universal binaries (PPC, i386, x86_64) by default.  Forced upon
    us by OS/X 10.6 defaulting to 64-bit rather than 32-bit

Version 2.1, 2009-09-22 (maintenance and minor feature release):

  * Add ProcessTimestampMethod to PluginInputDomainAdapter, offering
    the ability to decide how data buffering and timestamping works for
    frequency-domain plugins (whose process timestamps have to be at
    the centre of each processing block rather than the start)
  * Make PluginBufferingAdapter take into account any timestamp shift
    introduced by a PluginInputDomainAdapter that it wraps
  * Fix crash in PluginAdapter when plugin library getDescriptor fails
    on plugin construction
  * Add plugin skeleton files as starting point for new developers

Version 2.0, 2008-12-08 (major release):

  * Feature structure now has an optional duration (plugin API change)
  * Libraries reorganised into separate include and src directories for
    plugin and host SDKs; hosts should no longer include from vamp-sdk/
    but always from vamp-hostsdk/ instead (host source compatibility change)
  * OutputDescriptor now declares whether its features will have duration
  * Vamp RDF ontology now included for providing online (out-of-plugin)
    descriptions of plugins; program to generate skeleton RDF for a plugin
    set is included, and RDF for example plugins provided
  * New PluginSummarisingAdapter providing averages, min/max, count etc
    of returned features on request
  * New example plugins: Fixed Tempo Estimator and Power Spectrum
  * Command-line host now has a complete listing option, to print out
    all data reported by plugins
  * More complete Visual Studio project support

Version 1.3, 2008-07-09 (maintenance release):

  * PluginBufferingAdapter has several important fixes to bugs that
    could cause incorrect timings or output descriptors to be returned
  * Conversion between real-time and frames has been improved to avoid
    rounding error in round-trip calculations
  * Plugin lookup no longer relies on non-portable DT_REG
  * The SDK now compiles with gcc 4.3

Version 1.2, 2008-02-28 (feature release):

  * New PluginBufferingAdapter, which hosts may use to avoid having to
    negotiate the plugin's preferred input step and block sizes

Version 1.1, 2007-08-24 (feature release):

  * New Vamp::HostExt namespace
  * PluginLoader class, which handles enumeration, loading and category
    management for plugins on the local system
  * PluginInputDomainAdapter, which provides the capability for a host
    to support frequency-domain plugins without needing to worry about
    domain conversion
  * PluginChannelAdapter, which transparently deals with plugins that
    expect different numbers of audio channels from the number available
  * Minor beauty-and-truth updates and documentation fixes

Version 1.0, 2007-03-21:

  * First official release

