Hi all! The second beta release of liquidsoap `1.4.0` is out!
We're pretty happy with how things are going and are expecting a release pretty soon. Since the last beta, a lot of work has been done in particular on the windows build and core language with the introduction of proper tuples of the form `(x,z,y,t,..)`. Please, give this release a try and feel free to report issues, regressions and etc. The best way to test the release is via `opam`: ``` git clone https://github.com/savonet/liquidsoap.git cd liquidsoap && git checkout 1.4.0-beta2 && opam pin add . ``` Please note that some dependencies may not have yet been released or accepted in the main `opam` repository. In such case, the same pinning solution is recommended: ``` git clone https://github.com/savonet/ocaml-<dependency>.git cd ocaml-<dependency> && opam pin add . ``` You will need to do this at least for `mm`. Finally, we've opened a slack channel for more direct communication between users, developers and the community at large. Check it out here: http://slack.liquidsoap.info/ ### Changelog: #### New: - UTF8 parsing! - Added support for tuples: `x = (1,"aa",false)` (#838) - Added support for deconstructing tuples: `let (z,t,_) = x` (#838) - Added `input.{file,harbor}.hls` to read HLS stream (#59, #295, #296). - Added `output.hls` to natively stream in HLS (#758). - Added `(to_){string,float,int,bool}_getter` operators to handle getters in script side. - Made `p` parameter in `smooth_add` a `float` getter (#601) - Added `source.time` to get a source's clock time. - Added `max_duration` to limit a source's duration. - Added `file.temp_dir` to create temporary directories. - Added `file.{unlink,rmdir}` to remove, resp., file and directories. - Added `file.write` to write content to a file. - Added `file.read` to read contents of a file without loading all of it in memory. - Added `youtube-pl:<ID>` protocol to resolve and parse youtube playlists (or any playlist supported by `youtube-dl`) (#761) - Added `protocol.aws.endpoint` setting for the `s3://` protocol, thanks to @RecursiveGreen. (#778) - Added support for sandboxing `run_process` calls. Set safe defaults. (#785) - Added `harbor.{http,https}.static` to serve static path. - Added `log.{critical,severe,important,info,warning,debug}`. Use aliases in code as well (#800, #801, #802) - Added `sleep` function. - Added `mkavailable` function. - Added `fade.skip` function. (#804) - Added `video.external.testsrc` function. - Added `video.frame.*` and `audio.samplerate`. - Added `input.external.ffmpeg` and `output.external.ffmpeg`. - Added `output.youtube.live.ffmpeg`. - Added `output.file.hls.ffmpeg`. - Added `reopen` telnet command in `output.external`. - Enabled external decoders in windows (#742) - Added support for bash completion. #### Changed: - Depends on OCaml >= 4.08.0 - Changed return type of `http.*` and `run_process` to use tuples (#838) - Better error reporting with coloring and uniform format. (#790) - Improved reporting of file, line and character during parsing errors. - Remove dynamic plugin build option. - Made `on_end` delay a float getter. - Reimplemented `fade.{in,initial,out,final}` as scripted operators. (#664) - Removed `cross`/`crossfade` operators, superseeded by `smart_cross`/`smart_crossfade` - Rename `smart_cross`/`smart_crossfade` operators as `cross`/`crossfade` - Rename `file.duration` as `request.duration` - Removed duplicate `is_directory` - Rename `{basename,dirname}` as `path.{is_directory,basename,dirname}` - Empty playlists return by scripted resolvers is now considered a failure to resolve. - Rewrite `smooth_add` to use new `mkcross` functions. - Reimplemented `open_process_full` to get a hand on `pid` and finer-grained closing workflow (#703) - Added `transition_length` to `switch`-based operators to limit transition lengths and allow garbage collection of transition sources. - SDL renders text in UTF-8. (#712) - Made `x` and `y` parameters in `video.add_text` `float` getters. (#730) - Reimplemented `extract-replaygain` using `ffmpeg`, added an optional replay gain option to the `ffmpeg2wav` protocol. Thanks to @Yamakaky for contributing on this. (#749) - The `ratio` parameter of `compress` and `limit` is a float getter. (#745) - Removed `rewrite_metadata` which had been deprecated for a while now. - Allow string getter for `harbor` HTTP responses. - Renamed `get_clock_status` to `clock.status` and `log_clocks` to `clock.log`. - Renamed `rms_window` parameter of `compress` to `window`. (#796) - Added `chop` operator. - Keep master tracks' boundaries in `mux_*` functions. (#795) - Added `new_track` optional argument to callback in `insert_metadata`. - Use getters for weights of `rotate`. (#808) - Added `conservative`, `length` and `default_duration` params to `playlist.{reloadable,once,merge}` (#818) - Renamed `input.external` into `input.external.rawaudio`, added `input.external.wav`. - Renamed `gstreamer.hls` to `output.file.hls.gstreamer`. #### Fixed: - Lack of documentation for `cross`/`crossfade` (#743) - Fixed before metadata being lost during crossfade not in conservative mode. - Correct types and default values for `random.int` (#767). - Allow changing pipeline in gstreamer functions. (#762) - Script deadlock after a long time, most likely related to old crossfade transitions (#755) - AVI export fixed. (#789) - `%external` does not stop processes anymore on each metadata. (#789) - Fixed exit getting stuck when using `input.jack` (#769) - Stop lo server on shutdown. (#820) - Fixed external process stop not detected on second and further calls (#833) - Add `seek` in operators where implementation is clear (#853) - Do not enter buffering mode between tracks in `buffer` (#836)
_______________________________________________ Savonet-users mailing list Savonet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/savonet-users