Hey y'all!

I wanted to give a short update about liquidsoap !

In the past two weeks, we've merged two important PRs into master
* A refactoring our decoding logic to be able to implicitly convert audio
channels (no more audio_to_stereo and other issues when connecting DJs in
mono or playlists refusing mono files)
* A cleanup of the runtime language to remove types at runtime. This PR has
resulted in a 2 to 3x increase of the run-time performances and, we hope,
should allow to open-up the runtime to per-frame callbacks.

Up next, we have a couple of exciting major changes pending:
* Support for records. With this, things like output.file become what they
should have always been, i.e. file becomes an element of the record output.
This also means that we will be able to attach specific methods to sources
so, for instance, you can call s.skip() when s is a source. This should
simplify the language and bring it to the next level.

* Support for encoded and raw content. This feature has been wanted pretty
much forever. With the recent work on ffmpeg support, we realized that this
should actually be possible using ffmpeg API. We plan on supporting two
forms of content from ffmpeg:

1. Raw content, that is content that is decoded but is kept inside an
internal ffmpeg frame. This kind of content could be passed untouched
end-to-end in liquidsoap, in particular through ffmpeg filters, without
being copied or ever hitting the OCaml stack. This should allow to minimize
content copies and take full advantage of ffmpeg's optimization

2. Encoded content, that is content that is still encoded and can be passed
from input to output much like what is done when using -c copy in ffmpeg.
This kind of content cannot be processed at all but it should still be
possible to switch tracks, although we're not 100% sure about that yet. At
the very least, this should allow for things like sharing a single encoding
for several outputs, avoiding re-encoding content multiple times

As we go through these changes, we wanted to also warn y'all that master
will inevitably go through some period of relative instability as we work
through them and land  them. We will have to focus a little less on bugs in
this branch but, once these changes have been added, we'll get back to
cleaning and fixing and will work toward a first release with all these.

Needless to say, it looks like the version will have to be slightly above
1.5 to properly reflect these deep changes.. :slightly_smiling_face:
Meanwhile, we'll be working on fixing bugs on the current stable 1.4.2
branch and will release more bugfix versions if needed.
Looking forward to all of this!

-- Romain, with support from Sam!
_______________________________________________
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to