[EPIC] Upgrade to Liquidsoap 2.2 or later
[EPIC] Smooth play-out latency and buffering fo... (#50 - closed)
Parent:Before updating, carefully review the Liquidsoap changelog for breaking changes or any features and issues which are related to our use. It is also helpful to check the Liquidsoap bug-tracker for known issues.
Breaking changes
2.2
- BREAKING: all timeout settings and parameters are now float values and in seconds (#2809)
- BREAKING: in output.{shoutcast,icecast}:
- Old icy_metadata renamed to send_icy_metadata and changed to a nullable bool. null means guess.
- New icy_metadata now returns a list of metadata to send with ICY updates.
- Added icy_song argument to generate default "song" metadata for ICY updates. Defaults to - when available, otherwise artist or title if available, otherwise null, meaning don't add the metadata.
- Cleanup, removed parameters that were irrelevant to each operator, i.e. icy_id in output.icecast and etc.
- Make mount mandatory and name nullable. Use mount as name when name is null.
- Removed support for %define variables, superseded by support for actual variables in encoders.
- Removed confusing let json.stringify in favor of json.stringify()
- Renamed {get,set}env into environment.{get,set}
- Deprecated string_of in favor of string (#2700).
- Deprecated string_of_float in favor of string.float (#2700).
- Added id argument to replaygain operator (#2537). Compare ID fix for the new
replaygain
operator
Fixed & Improvements
2.2
The randomization function list.shuffle used in playlist was incorrect and could lead to incorrectly randomized playlists (#2507, #2500).
2.1.4
- Added buffer_length method to buffer operator.
- Always display error backtrace when a fatal exception is raised in the streaming loop.
- Fixed memory leak in http requests (#2935)
- Space trim in interactive variables set on telnet (#2785)
- Fixed internal streaming logic in max_duration and crossfade.
- Make sure that there's at most one metadata at any given frame position (#2786)
- Fixed input polling stop (#2769)
- Fixed parsed error report in %include directives (#2775)
2.1.3
- Add support for song metadata (mapped to title) and url (mapped to metadata_url) in input.harbor (#2676)
- Fixed request metadata escaping (#2732)
- Fixed http response body on redirect (#2758)
2.1.2
- Fixed order of playlist.next returned requests.
- Fixed infinite loop when reloading a failed playlist (#2576)
- Prevent initial start for autostart and fallible sources.
Features
2.2 and before
- YAML support, required for Config consolidation: Use YAML instead of INI file (#41 - closed)
- Added log colors! :-)
- Reimplemented harbor http handler API to be more flexible. Added a new node/express-like registration and middleware API (#2599).
- Added device_id and latency options to input.portaudio and output.portaudio to be able to choose the requested device. Use liquidsoap --list-portaudio-devices to see the list of devices (#2733)
- Added disconnect method to input.harbor, making it possible to disconnect a source client programmatically, including when a new client is trying to connect.
To check if it is relevant
2.2 and before
- Added support for less memory hungry audio formats, namely pcm_s16 and pcm_f32 (#3008)
- Added "metadata_url" to the default list of exported metadata (#2946)
- Changed default character encoding in output.harbor, output.icecast output.shoutcast to UTF-8 (#2704)
- Cancel pending append when skipping current track on append source.
- Switched default persistence for cross and fade-related overrides to follow documented behavior. By default, "liq_fade_out", "liq_fade_skip", "liq_fade_in", "liq_cross_duration" and "liq_fade_type" now all reset on new tracks. Use persist_overrides to revert to previous behavior (persist_override for cross/crossfade) (#2488).
- Changed self_sync in input.ffmpeg to be a boolean getter, changed self_sync in input.http to be a nullable boolean getter. Set self_sync to true in input.http when an icecast or shoutcast server can be detected.
- Add buffer_length method to input.external.rawaudio and input.external.wav (#2612).
- Fixed metadata parsing in server.insert_metadata (#2619)
- Fixed extract_replaygain path (#2624, @parnikkapore)
Edited by David Trattnig