mirror of
https://github.com/oSumAtrIX/free-librespot.git
synced 2025-12-17 00:44:22 +00:00
8.4 KiB
8.4 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.
0.4.2 - 2022-07-29
Changed
- [playback]
pipe: Better error handling - [playback]
subprocess: Better error handling
Added
- [core]
apresolve: Blacklist ap-gew4 and ap-gue1 access points that cause channel errors - [playback]
pipe: Implement stop
Fixed
- [main] fix
--opt=valueline argument logging - [playback]
alsamixer: make--volume-ctrl fixedwork as expected when combined with--mixer alsa
Removed
0.4.1 - 2022-05-23
Changed
- [chore] The MSRV is now 1.56
Fixed
- [playback] Fixed dependency issues when installing from crate
0.4.0 - 2022-05-21
Changed
- [chore] The MSRV is now 1.53
- [contrib] Hardened security of the
systemdservice units - [core]
Session:connect()now returns the long-term credentials - [core]
Session:connect()now accepts a flag if the credentails should be stored via the cache - [main] Different option descriptions and error messages based on what backends are enabled at build time
- [playback] More robust dynamic limiter for very wide dynamic range (breaking)
- [playback]
alsa: improve--device ?output for the Alsa backend - [playback]
gstreamer: create own context, set correct states and use sync handler - [playback]
pipe: create file if it doesn't already exist - [playback]
Sink:write()now receives ownership of the packet (breaking)
Added
- [main] Enforce reasonable ranges for option values (breaking)
- [main] Add the ability to parse environment variables
- [main] Log now emits warning when trying to use options that would otherwise have no effect
- [main] Verbose logging now logs all parsed environment variables and command line arguments (credentials are redacted)
- [main] Add a
-q,--quietoption that changes the logging level to WARN - [main] Add
disable-credential-cacheflag (breaking) - [main] Add a short name for every flag and option
- [playback]
pulseaudio: set the PulseAudio name to match librespot's device name viaPULSE_PROP_application.nameenvironment variable (user set env var value takes precedence) (breaking) - [playback]
pulseaudio: set icon toaudio-x-genericso we get an icon instead of a placeholder viaPULSE_PROP_application.icon_nameenvironment variable (user set env var value takes precedence) (breaking) - [playback]
pulseaudio: set values to:PULSE_PROP_application.version,PULSE_PROP_application.process.binary,PULSE_PROP_stream.description,PULSE_PROP_media.softwareandPULSE_PROP_media.roleenvironment variables (user set env var values take precedence) (breaking)
Fixed
- [connect] Don't panic when activating shuffle without previous interaction
- [core] Removed unsafe code (breaking)
- [main] Fix crash when built with Avahi support but Avahi is locally unavailable
- [main] Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given
- [main] Don't panic when parsing options, instead list valid values and exit
- [main]
--alsa-mixer-deviceand--alsa-mixer-indexnow fallback to the card and index specified in--device. - [playback] Adhere to ReplayGain spec when calculating gain normalisation factor
- [playback]
alsa: make--volume-rangeoverrides apply to Alsa softvol controls
Removed
- [playback]
alsamixer: previously deprecated optionsmixer-card,mixer-nameandmixer-indexhave been removed
0.3.1 - 2021-10-24
Changed
- Include build profile in the displayed version information
- [playback] Improve dithering CPU usage by about 33%
Fixed
- [connect] Partly fix behavior after last track of an album/playlist
0.3.0 - 2021-10-13
Added
- [discovery] The crate
librespot-discoveryfor discovery in LAN was created. Its functionality was previously part oflibrespot-connect. - [playback] Add support for dithering with
--ditherfor lower requantization error (breaking) - [playback] Add
--volume-rangeoption to set dB range and controllogandcubicvolume 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 autothat switches between album and track automatically
Changed
- [audio, playback] Moved
VorbisDecoder,VorbisError,AudioPacket,PassthroughDecoder,PassthroughError,DecoderError,AudioDecoderand theconvertmodule fromlibrespot-audiotolibrespot-playback. The underlying cratesvorbis,librespot-tremor,lewtonandoggshould be used directly. (breaking) - [audio, playback] Use
Durationfor time constants and functions (breaking) - [connect, playback] Moved volume controls from
librespot-connecttolibrespot-playbackcrate - [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--devicename for--mixer-cardunless specified otherwise - [playback]
player: consider errors insink.start,sink.stopandsink.writefatal andexit(1)(breaking) - [playback]
player: makeconvertanddecoderpublic 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
discoverymodule was deprecated in favor of thelibrespot-discoverycrate - [playback]
alsamixer: renamedmixer-cardtoalsa-mixer-device - [playback]
alsamixer: renamedmixer-nametoalsa-mixer-control - [playback]
alsamixer: renamedmixer-indextoalsa-mixer-index
Removed
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed
with-vorbisandwith-tremorfeatures - [playback]
alsamixer: removed--mixer-linear-volumeoption, 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_thresholdcaused distortion when using dynamic volume normalisation downstream - [playback] Fix
logandcubicvolume controls to be mute at zero volume - [playback] Fix
S24_3format on big-endian systems - [playback]
alsamixer: makecubicconsistent 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)