We are stoked to announce the 2.3.0
release of liquidsoap, a general-purpose scripting language written in OCaml with specialized operators to build media streams.
The release is available on github: Release Liquidsoap 2.3.0 · savonet/liquidsoap · GitHub
During this release cycle, we have rewritten huge chunks of the application’s internals, including a new media streaming abstraction and clock system.
As an OCaml application, liquidsoap’s scope and complexity has greatly expanded in the last few years.
One of the most challenging areas for us at this point is memory usage (and, incidentally, CPU usage).
Although OCaml’s garbage collection is a very powerful tool, in the context of very short lived streaming cycles (typically 0.02s
) with potentially quite large memory allocations (typically video images), controlling the timing of memory allocations and release is becoming more and more critical.
We are also aware of the work done by Jane St on adding a local
call stack. This could be an avenue to explore as well but:
- Some of our content has to be stored in the long-term heap
- We want to work with an official OCaml compiler for obvious long-term maintenance concerns.
Nonetheless, we are thrilled to be part of a community whose array of tools (building, packaging, debugging, etc) and libraries has expanded so well along with a vibrant compiler development team.
In the future, we wish to explore more of the new OCaml concurrency features. This might require that we revisit the way we handle short-term memory first.