mirror of
https://github.com/librespot-org/librespot.git
synced 2024-12-18 17:11:53 +00:00
4c77854ffe
Better error handling in Alsa backend * More consistent error messages * Bail on fatal errors in player * Capture and log the original error as a warning when trying to write to PCM before trying to recover
3.8 KiB
3.8 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning since v0.2.0.
Unreleased
Added
- [discovery] The crate
librespot-discovery
for discovery in LAN was created. Its functionality was previously part oflibrespot-connect
. - [playback] Add support for dithering with
--dither
for lower requantization error (breaking) - [playback] Add
--volume-range
option to set dB range and controllog
andcubic
volume control curves - [playback]
alsamixer
: support for querying dB range from Alsa softvol - [playback] Add
--format F64
(supported by Alsa and GStreamer only)
Changed
- [audio, playback] Moved
VorbisDecoder
,VorbisError
,AudioPacket
,PassthroughDecoder
,PassthroughError
,AudioError
,AudioDecoder
and theconvert
module fromlibrespot-audio
tolibrespot-playback
. The underlying cratesvorbis
,librespot-tremor
,lewton
andogg
should be used directly. (breaking) - [audio, playback] Use
Duration
for time constants and functions (breaking) - [connect, playback] Moved volume controls from
librespot-connect
tolibrespot-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 thelog
volume control unless specified otherwise - [playback]
alsamixer
: use--device
name for--mixer-card
unless specified otherwise - [playback]
player
: consider errors insink.start
,sink.stop
andsink.write
fatal andexit(1)
(breaking)
Deprecated
- [connect] The
discovery
module was deprecated in favor of thelibrespot-discovery
crate
Removed
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed
with-vorbis
andwith-tremor
features - [playback]
alsamixer
: removed--mixer-linear-volume
option; use--volume-ctrl linear
instead
Fixed
- [connect] Fix step size on volume up/down events
- [playback] Incorrect
PlayerConfig::default().normalisation_threshold
caused distortion when using dynamic volume normalisation downstream - [playback] Fix
log
andcubic
volume controls to be mute at zero volume - [playback] Fix
S24_3
format on big-endian systems - [playback]
alsamixer
: makecubic
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
: better error handling