Subject: CVS commit: pkgsrc/audio/librespot
From: pin
Date: 2021-10-14 10:01:37
Message id: 20211014080138.098CFFA97@cvs.NetBSD.org

Log Message:
audio/librespot: update to 0.3.0

Added:
- [discovery] The crate `librespot-discovery` for discovery in LAN was created.
Its functionality was previously part of `librespot-connect`.
- [playback] Add support for dithering with `--dither` for lower requantization
error (breaking)
- [playback] Add `--volume-range` option to set dB range and control `log` and
`cubic` volume control curves
- [playback] `alsamixer`: support for querying dB range from Alsa softvol
- [playback] Add `--format F64` (supported by Alsa and GStreamer only)
- [playback] Add `--normalisation-gain-type auto` that switches between album
and track automatically

Changed:
- [audio, playback] Moved `VorbisDecoder`, `VorbisError`, `AudioPacket`,
`PassthroughDecoder`, `PassthroughError`, `DecoderError`, `AudioDecoder` and the
`convert` module from `librespot-audio` to `librespot-playback`. The underlying
crates `vorbis`, `librespot-tremor`, `lewton` and `ogg` should be used directly.
(breaking)
- [audio, playback] Use `Duration` for time constants and functions (breaking)
- [connect, playback] Moved volume controls from `librespot-connect` to
`librespot-playback` crate
- [connect] Synchronize player volume with mixer volume on playback
- [playback] Store and pass samples in 64-bit floating point
- [playback] Make cubic volume control available to all mixers with
`--volume-ctrl cubic`
- [playback] Normalize volumes to `[0.0..1.0]` instead of `[0..65535]` for
greater precision and performance (breaking)
- [playback] `alsamixer`: complete rewrite (breaking)
- [playback] `alsamixer`: query card dB range for the volume control unless
specified otherwise
- [playback] `alsamixer`: use `--device` name for `--mixer-card` unless
specified otherwise
- [playback] `player`: consider errors in `sink.start`, `sink.stop` and
`sink.write` fatal and `exit(1)` (breaking)
- [playback] `player`: make `convert` and `decoder` public so you can implement
your own `Sink`
- [playback] `player`: update default normalisation threshold to -2 dBFS
- [playback] `player`: default normalisation type is now `auto`

Deprecated:
- [connect] The `discovery` module was deprecated in favor of the
`librespot-discovery` crate
- [playback] `alsamixer`: renamed `mixer-card` to `alsa-mixer-device`
- [playback] `alsamixer`: renamed `mixer-name` to `alsa-mixer-control`
- [playback] `alsamixer`: renamed `mixer-index` to `alsa-mixer-index`

Removed:
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed `with-vorbis` and `with-tremor` features
- [playback] `alsamixer`: removed `--mixer-linear-volume` option, now that
`--volume-ctrl {linear|log}` work as expected on Alsa

Fixed:
- [connect] Fix step size on volume up/down events
- [connect] Fix looping back to the first track after the last track of an album
or playlist
- [playback] Incorrect `PlayerConfig::default().normalisation_threshold` caused
distortion when using dynamic volume normalisation downstream
- [playback] Fix `log` and `cubic` volume controls to be mute at zero volume
- [playback] Fix `S24_3` format on big-endian systems
- [playback] `alsamixer`: make `cubic` consistent between cards that report
minimum volume as mute, and cards that report some dB value
- [playback] `alsamixer`: make `--volume-ctrl {linear|log}` work as expected
- [playback] `alsa`, `gstreamer`, `pulseaudio`: always output in native
endianness
- [playback] `alsa`: revert buffer size to ~500 ms
- [playback] `alsa`, `pipe`, `pulseaudio`: better error handling
- [metadata] Skip tracks whose Spotify ID's can't be found (e.g. local files,
which aren't supported)

Files:
RevisionActionfile
1.14modifypkgsrc/audio/librespot/Makefile
1.5modifypkgsrc/audio/librespot/cargo-depends.mk
1.6modifypkgsrc/audio/librespot/distinfo