Releases: savonet/liquidsoap-release-assets
Liquidsoap 2.1.1
This is the first bugfix release of the v2.1.x
release cycle, fixing some minor and less-minor issues. So far, the release cycle seems to be holding up fairly well!
Worth noting:
ocurl
is now a mandatory dependency. Its functionalities, support forhttp.{get,put,post,..}
providing, among other things, remote requests resolution, were already expected by most users.- Windows build for
v2.1.0
did not have theffmpeg
encoders and decoders enabled.. 🤦♂️ playlist.next
now returns the requests in the right order. This could be breaking some existing scripts!playlist.remaining
has been renamed intoplaylist.remaining_files
. This could be breaking some existing scripts!
Full changelog:
2.1.1 (2022-08-28)
New:
- Added
process.quote.command
to generate complex quoted command strings suitable
for use withprocess.run
and os-independent.
Changed:
- Renamed
playlist.remaining
intoplaylist.remaining_files
(#2524) - Added
id
argument toreplaygain
operator (#2537). - Made
ocurl
dependency required, addeduri
as required dependency (#2551)
Fixed:
- Fixed missing ffmpeg features on windows build.
- Fixed sync issues with
ffmpeg.encode.*
inline encoders (#2584) - Fixed
http.get
issues whenuser-agent
was not set (#2517) - Fixed order of
playlist.next
returned requests. - Fixed infinite loop when reloading a failed playlist (#2576)
- Fixed http requests with urls containing spaces (#2551)
- Fixed
on_connect
type forsrt
inputs and outputs. - Fixed parsing issues with functions/variables definitions
beginning withrec
orreplaces
(#2560) - Fixed infinite parse error loop (#2527)
- Fixed empty initial
mp4
HLS segment. - Prevent initial start for autostart and fallible sources.
Liquidsoap 2.1.0
This is the first release of the 2.1.x
release branch! 🎉
This version comes with some major improvements and breaking changes. As usual, you can get a (mostly) complete list in the migration page
In particular, the following changes are noticeable:
JSON parsing is greatly improved
You should now be able to do:
let json.parse ({
foo,
bla,
gni
} : {
foo: string,
bla: float,
gni: bool
}) = '{ "foo": "aabbcc", "bla": 3.14, "gni": true }'
For any one who has ever tried to parse json in their liquidsoap scripts, this is gonna be a game changer. We have a detailed article here
Partial function application has been removed.
This is not so much an improvement but something we thought was an acceptable trade-off. Support for partial application is creating a lot of complexity in the language's implementation and not a lot of users are actively using it. This change means that instead of doing:
def f(x, y) =
...
end
g = f(0)
You will now have to do:
def f(x, y) =
...
end
def g(y) =
f(0, y)
end
Regular expressions are now first-class entities.
This should be familiar to anyone used to working with Javascript's regular expression. So, now, instead of doing:
string.match(pattern="\\d+", s)
You will now do:
r/\d+/.test(s)
There's a detailed description of this new feature here.
Full Changelog:
2.1.0 (2022-07-15)
New:
- Added support for variables in encoders (#1858)
- Added support for regular expressions (#1881)
- Added generalized support for value extraction patterns (#1970)
- Added support for string getter for
http.{post,put}
operations (#1984) - Added
output.youtube.live.hls
- Rewrote out internal JSON parser/renderer (#2011). Breaking change values
that cannot be represented asJSON
will now raiseerror.json
when
converted toJSON
.infinite
andnan
floats can be exported using the
json5
export format. - Added socket API (#2014).
- Added support for ffmpeg bitstream filters (#2387)
- Added
liquidsoap.version.at_least
. - Added
video.rectangle
,video.persistence
. - Added
video.vumeter
. - Added
video.slideshow
. - Added
video.add_text.camlimages
(#2202). - Added
video.text.*
and re-implementedvideo.add_text.*
from those (#2226). - Added
irc.channel
operator to retrieve the contents of an IRC channel
(#2210). - Added new in-house parsing of metadata for some image and video formats
(#2236). - Added
file.download
- Added new options for
%ffmpeg
copy encoder:ignore_keyframes
andwait_for_keyframe
(#2382)
Changed:
- Removed support for partial application, which should avoid some type errors,
improve performance and simplifies the code related to the reduction (#2204). - Video dimensions (width and height) can now be specified per stream in the
type and are then used instead of the default ones. For instance, you can now
writein order to force the decoding of a file to be performed at the 300×200s = (single("file.mp4") : source(video(width=300,height=200)))
resolution (#2212). - Video images are now canvas, which means that they do not directly contain
the images, but are constituted of multiple images placed at various
positions. This should make much more efficient operations such as making
videos from multiple ones, adding a logo, etc. (#2207) output.youtube.live
renamedoutput.youtube.live.rtmp
, removebitrate
and
quality
arguments and added a single encoder argument to allow stream copy
and more.source.on_metadata
andsource.on_track
now return a source as this was the
case in previous versions, and associated handlers are triggered only when the
returned source is pulled (#2103).- Made
streams_info
parameter ofoutput.file.hls
a record (#2173). - Disable scrolling by default in
video.add_text
. You can re-enable it by
usingvideo.add_text(speed=70, ...)
. - Added "example" sections to operators documentation, we now need to populate
those (#2227). - Default implementation of
video.testsrc
is now builtin, previous
implementation can be found undervideo.testsrc.ffmpeg
. - Images can now generate blank audio if needed, no need to add
mux_audio(audio=blank(),image)
anymore (#2230). - Removed deprecated
timeout
argument inhttp.*
operators. - Deprecated
request.ready
in favor ofrequest.resolved
.
Fixed:
- Fixed typo in
status
command of themix
operator. - Fixed performances issues with
input.ffmpeg
andinput.http
(#2475) - Fixed
list.shuffle
which was used to randomize playlists inplaylist
operator (#2507, #2500).
Liquidsoap 2.0.7
This is the seventh bugfix release of the 2.0.x
release branch of liquidsoap. We promised to only release new versions for this branch for important bug fixes and found two:
- A memory leak with the opus headers. Technically this is a bug in
ocaml-opus
but we also had to release new binary assets. - An inefficient initialization of decoding buffer and samplerate converters
This release addresses those issues as well as a minor one with initial shoutcast/icecast metadata. It is intended as the last versioned released with potential follow-up being pushed as rolling releases on a best-effort basis.
The initial 2.1.0
liquidsoap release was also produced as a companion release to this one. All users are now advise to start exploring the 2.1.x
release branch as we expect most if not all bug fixes to be only applied on this branch.
Happy liquidsoap hacking!
2.0.7 (2022-07-15)
Fixed:
- Fixed memory leaks with opus bindings.
- Make sure decoding buffer and samplerate converter are only created once. (#2475)
- Make sure first metadata is always sent in icecast/shoutcast output (#2506)
Liquidsoap 2.0.6
This is the 6th and last bugfix release for the 2.0.x
branch. Following this release, the 2.0.x
development branch will only be updated on a best-effort basis. New projects are now advised to work with the rolling-release-v2.1.x
branch, will is set to be the next stable release.
This release contains a set of minor fixes. Production scripts using any 2.0.x
version are advised to switch to it but, still, after testing that there is no unforeseen regression.
A lot of effort has been put into debugging memory-releated issues with regard to requests. If your script uses a lot of requests (playlist
, request.dynamic
etc.) you should benefit from upgrading to this version.
Full changelog:
2.0.6 (2022-06-20)
New:
- Added
video/mp4
to list of recognized mime types for request resolutions.
Changed:
- Log errors when using
process.read
(##2420, @martinkirch)
Fixed:
- Memory leak when executing
process.run
(#2424) - Delay harbor server endpoint registration until application has started (#1589)
- Print user-readable encoder parameter error report.
- Fixed m3u metadata parsing when artist has a comma in their name (#2449)
- Cleanup failed request in
playlist
operator. - Make sure requests are always cleaned up, making
request.destroy
calls
optionals.
Liquidsoap 2.0.5
This is the 5th bugfix release of the 2.0.x
branch, fixing mostly minor issues. This is also the last stable release on this branch as 2.1.x
is expected to be the next stable release cycle.
2.0.5 (24-05-2022)
New:
- Extended m3u EXTINF parser to support empty duration and annotations.
Changed:
- Brought back
mix
operator (#2401)
Fixed:
- Allow crossfade duration override of
0.
- Buffer synchronization issues.
- Drop methods from ffmpeg filter input source
types to avoid unecessary conflicts. - Fix evaluation of abstract values with methods.
- Prevent some sources from being consumed when not active,
namely ffmpeg inline encoders,soundtouch
,resample
and all
the muxing operators. - Raise runtime exceptions in
string.replace
failures with
useful message. (#2408) - Prevent
request.dynamic
from raising exceptions when checking
if the source is ready (#2381)
Liquidsoap Rolling Release 2.3.x
This release is a pre-release of the 2.3.x
release branch of liquidsoap. It is provided to allow for early testing of the 2.3.0
release before it is officially publish.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Please consider the code publishing here as in alpha release stage!
Assets listed in this release will never be modified or deleted. Feel free to use them for packaging or distribution purposes.
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details
rolling-release-v2.2.x
This release provides liquidsoap assets before they are published as a new versioned release.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Rolling releases can also be useful for us to quickly detect and report bugs before the final published release!
Assets listed in this release will never be modified or deleted. Feel free to use them for packaging or distribution purposes.
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details
Rolling Release 2.2.1
This release provides liquidsoap assets before they are published as a new versioned release.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Rolling releases can also be useful for us to quickly detect and report bugs before the final published release!
Assets listed in this release will never be modified or deleted. Feel free to use them for packaging or distribution purposes.
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details
rolling-release-v2.1.x
This release provides liquidsoap assets before they are published as a new versioned release.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Rolling releases can also be useful for us to quickly detect and report bugs before the final published release!
Assets listed in this release will never be modified or deleted. Feel free to use them for packaging or distribution purposes.
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details
Liquidsoap 2.0.x rolling release
This release provides liquidsoap assets before they are published as a new versioned release.
You can use it to install the latest stable code before it is published and test/prepare your production environment for it.
Rolling releases can also be useful for us to quickly detect and report bugs before the final published release!
Assets listed in this release will never be modified or deleted. Feel free to use them for packaging or distribution purposes.
For more details about our release process, please checkout https://github.com/savonet/liquidsoap#release-details