Skip to content

Liquidsoap 2.1.4

Compare
Choose a tag to compare
@github-actions github-actions released this 02 Mar 14:48
· 1896 commits to main since this release

This is the fourth follow-up release for the liquidsoap 2.1.x release cycle!

giphy

This release brings more bugfix and stability to liquidsoap 2.1.x users with a couple of new features as well.

New features are:

  • More logging around streaming exceptions to help diagnostics of hard failures while streaming
  • Support for umask to bring the full unix/posix file/directory permissions control the way everyone's used to
  • Added buffer_length method to buffers to help report and monitor buffer user (overrun/underrun, slow drain etc.)

The bugfixes include patch to prevent several situations that made the application crash under certain specific circumstances. Overall, we believe that this release should be a pretty stable iteration and highly recommend migrating to it. Make sure to always use a staging environment before updating your production systems!

We expect this release to be the last of the 2.1.x release cycle. The current development branch is about to be forked as rolling-release-v2.2.x and we should begin the stabilization process to bring that branch to a releasable state. There might still be bugfix releases on the 2.1.x branch but only for critical issues.

Thanks for all y'all continuing use of liquidsoap!

Full Changelog:

2.1.4 (2022-03-02)

New:

  • Added buffer_length method to buffer operator.
  • Always display error backtrace when a fatal exception
    is raised in the streaming loop.
  • Added umask() to get the current umask and umask.set(...)
    to set the current umask (#2840)

Changed:

  • Add break when restarting the external process in input.external.{rawaudio,rawvideo}
    (#2860, #2872)
  • Removed disconnect method on input.harbor. This method was doing the same as
    the stop method. Added shutdown method to properly shutdown the
    source even when not connected to an output.
  • Made process a string getter in input.external.{rawaudio,rawvideo} (#2877)

Fixed:

  • Fixed parameter type for stats_interval in SRT I/O.
  • Fixed type generalization on variable and pattern bindings
    (#2782)
  • Fixed memory leak in http requests (#2935)
  • Make sure that exception raised in request.dynamic never crash
    the process (#2897)
  • Fixed filename getter being called multiple time in
    output.file (#2842)
  • Space trim in interactive variables set on telnet (#2785)
  • Fixed internal streaming logic in max_duration and crossfade.
  • Make sure that there's at most one metadata at any given
    frame position (#2786)
  • Fixed metadata.json.parse always returns an empty list (#2816).
  • Fixed icy_id being ignored in output.shoutcast (#2819)
  • Fixed shutdown livelock with some ffmpeg inline encoder,
    decoder and filter operators.
  • Fixed input polling stop (#2769)
  • Fixed parsed error report in %include directives (#2775)
  • Fixed crash in external processes when received a Unix.EINTR
    event (#2861)
  • Fixed crash in string.interpolate (#2883)
  • Cleaned up srt support.