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