v0.3.0
版本发布时间: 2021-10-14 02:48:53
librespot-org/librespot最新发布版本:v0.4.2(2022-07-30 04:36:22)
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) - [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 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 the 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) - [playback]
player
: makeconvert
anddecoder
public so you can implement your ownSink
- [playback]
player
: update default normalisation threshold to -2 dBFS - [playback]
player
: default normalisation type is nowauto
Deprecated
- [connect] The
discovery
module was deprecated in favor of thelibrespot-discovery
crate - [playback]
alsamixer
: renamedmixer-card
toalsa-mixer-device
- [playback]
alsamixer
: renamedmixer-name
toalsa-mixer-control
- [playback]
alsamixer
: renamedmixer-index
toalsa-mixer-index
Removed
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed
with-vorbis
andwith-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
- [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
,pipe
,pulseaudio
: better error handling - [metadata] Skip tracks whose Spotify ID's can't be found (e.g. local files, which aren't supported)