This is the first bugfix release of the 2.4.x release cycle!
Most of the heavy lifting in terms of internal rewrite and new features has now been done we are now fully committed to bringing more stability and long-term enhancements to the framework.
This release should be safe to upgrade to for all users on the 2.4.0 release. In general, we strongly suggest migrating your code to our latest release: our resources are limited and the latest stable release if where we put all our efforts to fix bugs.
As usual, we do recommend testing the release on a staging/testing environment before pushing it to your production runtime.
A few new things with this release, mostly to facilitate user's life:
- Initial metadata support for the
%ffmpegencoder to help support container-level setup such as DVB Service and Provider names (see: #4665) start/stopserver/telnet commands for outputs- A new
settings.syslog.levelto help set the syslog level.
Other important enhancements concern clocks and dynamic source collection, which is still a hotspot for us. If you're using a lot of dynamic sources and outputs, make sure to keep in touch with us, we want to keep making this as stable and usable as possible but we do not always think about all the possible use-case!
Lastly, the issues where large covert art binary data kept showing up in logs when logging metadata should finally be fixed! These strings are now tagged as binary internally and filtered out during logging/printing!
Here's the full changelog:
Liquidsoap 2.4.1 (2025-01-10)
New:
- Added support for explicit metadata to pass to the output
when creating a%ffmpegencoder (#4667) - Added start/stop telnet commands for outputs.
- Added
settings.syslog.levelto set syslog level (#4686) - Added
activeparameter tostereotoolandoutput.stereotool(#4749) - Added
file.mime.extensionto get the file extension's associated
with a MIME/content-type as registered insettings.http.mime.extnames
Changed:
- Do not normalize sources in
mixby default. - Added
json.valueto make it possible to mix different value
types when returning json values (#4712) - Allow referring to pulseaudio devices by name (#4732)
output.shoutcast: makedjargument a getter.- Exclude metadata listed in
settings.encoder.metadata.cover
from automatic metadata recoding. (#4690)
Fixed:
- Fix
input.harborinitial metadata when switching with
fades (#4736) - Fix audio artifact in crossfade transitions (#4739)
- Make sure that sources re-used in
source.dynamicare never
inadvertently cleaned up (#4713) - Fix sources not being properly collected (#4670)
- Raise a proper error on parse error raised during
%include
parsing. - Don't print metadata coverart string (#4730)
- Make sure
fetchalways fetches a new request inrequest.dynamic(#4745) - Fixed start/stop logic in
output.harbor(#4666) - Fixed
fade.in/fade.outlogic w.r.t. override metadata (#4759) - Fixed
video.cover