Liquidsoap scripting language reference
The Source / … categories contain all functions that return sources. The Input functions are those which build elementary sources (playing files, synthesizing sound, etc.). The Output functions are those which take a source and register it for being streamed to the outside (file, soundcard, audio server, etc.). The Visualization functions are experimental ones that let you visualize in real-time some aspects of the audio stream. The Sound Processing functions are those which basically work on the source as a continuous audio stream. They would typically be mixers of streams, audio effects or analysis. Finally, Track Processing functions are basically all others, often having a behaviour that depends on or affects the extra information that liquidsoap puts in streams: track limits and metadata.
- Bool
- Configuration
- File
- Getter
- Interaction
- Internet
- Liquidsoap
- List
- Math
- Metadata
- Programming
- Settings
- Source / Audio processing
- Source / Conversion
- Source / FFmpeg filter
- Source / Fade
- Source / Input
- Source / Liquidsoap
- Source / MIDI processing
- Source / Output
- Source / Sound synthesis
- Source / Testing
- Source / Track processing
- Source / Video processing
- Source / Visualization
- String
- System
- Time
- Track / Audio processing
- Track / Conversion
- Track / FFmpeg filter
- Track / Track processing
- Track / Video processing
- Uncategorized
Bool
!=
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
<
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
<=
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
==
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
>
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
>=
Comparison of comparable values.
Type:
('a, 'a) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
and
Return the conjunction of its arguments
Type:
({bool}, {bool}) -> bool
Arguments:
(unlabeled)
(of type{bool}
)(unlabeled)
(of type{bool}
)
not
Returns the negation of its argument.
Type:
(bool) -> bool
Arguments:
(unlabeled)
(of typebool
)
or
Return the disjunction of its arguments
Type:
({bool}, {bool}) -> bool
Arguments:
(unlabeled)
(of type{bool}
)(unlabeled)
(of type{bool}
)
random.bool
Generate a random boolean.
Type:
() -> bool
Configuration
configure.bindir
Liquidsoap’s Internal script directory.
Type:
string
configure.libdir
Liquidsoap’s library directory.
Type:
string
configure.logdir
Liquidsoap’s logging directory.
Type:
string
configure.rundir
Liquidsoap’s PID file directory.
Type:
string
liquidsoap.build_config.architecture
Build-time configuration value for architecture
Type:
string
liquidsoap.build_config.git_sha
Git sha used to compile liquidsoap.
Type:
string?
liquidsoap.build_config.host
Build-time configuration value for host
Type:
string
liquidsoap.build_config.is_release
Is this build a release build?
Type:
bool
liquidsoap.build_config.is_snapshot
Is this build a development snapshot?
Type:
bool
liquidsoap.build_config.native_c_compiler
Build-time configuration value for native_c_compiler
Type:
string
liquidsoap.build_config.native_c_libraries
Build-time configuration value for native_c_libraries
Type:
string
liquidsoap.build_config.ocaml_version
OCaml version used to compile liquidspap.
Type:
string
liquidsoap.build_config.ocamlopt_cflags
Build-time configuration value for ocamlopt_cflags
Type:
string
liquidsoap.build_config.optionals.alsa
Build-time configuration for alsa
Type:
bool
liquidsoap.build_config.optionals.ao
Build-time configuration for ao
Type:
bool
liquidsoap.build_config.optionals.bjack
Build-time configuration for bjack
Type:
bool
liquidsoap.build_config.optionals.camlimages
Build-time configuration for camlimages
Type:
bool
liquidsoap.build_config.optionals.dssi
Build-time configuration for dssi
Type:
bool
liquidsoap.build_config.optionals.faad
Build-time configuration for faad
Type:
bool
liquidsoap.build_config.optionals.fdkaac
Build-time configuration for fdkaac
Type:
bool
liquidsoap.build_config.optionals.ffmpeg
Build-time configuration for ffmpeg
Type:
bool
liquidsoap.build_config.optionals.flac
Build-time configuration for flac
Type:
bool
liquidsoap.build_config.optionals.frei0r
Build-time configuration for frei0r
Type:
bool
liquidsoap.build_config.optionals.gd
Build-time configuration for gd
Type:
bool
liquidsoap.build_config.optionals.graphics
Build-time configuration for graphics
Type:
bool
liquidsoap.build_config.optionals.imagelib
Build-time configuration for imagelib
Type:
bool
liquidsoap.build_config.optionals.inotify
Build-time configuration for inotify
Type:
bool
liquidsoap.build_config.optionals.irc
Build-time configuration for irc
Type:
bool
liquidsoap.build_config.optionals.ladspa
Build-time configuration for ladspa
Type:
bool
liquidsoap.build_config.optionals.lame
Build-time configuration for lame
Type:
bool
liquidsoap.build_config.optionals.lilv
Build-time configuration for lilv
Type:
bool
liquidsoap.build_config.optionals.lo
Build-time configuration for lo
Type:
bool
liquidsoap.build_config.optionals.mad
Build-time configuration for mad
Type:
bool
liquidsoap.build_config.optionals.memtrace
Build-time configuration for memtrace
Type:
bool
liquidsoap.build_config.optionals.ogg
Build-time configuration for ogg
Type:
bool
liquidsoap.build_config.optionals.opus
Build-time configuration for opus
Type:
bool
liquidsoap.build_config.optionals.osc
Build-time configuration for osc
Type:
bool
liquidsoap.build_config.optionals.oss
Build-time configuration for oss
Type:
bool
liquidsoap.build_config.optionals.portaudio
Build-time configuration for portaudio
Type:
bool
liquidsoap.build_config.optionals.posix_time2
Build-time configuration for posix_time2
Type:
bool
liquidsoap.build_config.optionals.prometheus
Build-time configuration for prometheus
Type:
bool
liquidsoap.build_config.optionals.pulseaudio
Build-time configuration for pulseaudio
Type:
bool
liquidsoap.build_config.optionals.samplerate
Build-time configuration for samplerate
Type:
bool
liquidsoap.build_config.optionals.sdl
Build-time configuration for sdl
Type:
bool
liquidsoap.build_config.optionals.shine
Build-time configuration for shine
Type:
bool
liquidsoap.build_config.optionals.soundtouch
Build-time configuration for soundtouch
Type:
bool
liquidsoap.build_config.optionals.speex
Build-time configuration for speex
Type:
bool
liquidsoap.build_config.optionals.srt
Build-time configuration for srt
Type:
bool
liquidsoap.build_config.optionals.ssl
Build-time configuration for ssl
Type:
bool
liquidsoap.build_config.optionals.theora
Build-time configuration for theora
Type:
bool
liquidsoap.build_config.optionals.tls
Build-time configuration for tls
Type:
bool
liquidsoap.build_config.optionals.vorbis
Build-time configuration for vorbis
Type:
bool
liquidsoap.build_config.optionals.winsvc
Build-time configuration for winsvc
Type:
bool
liquidsoap.build_config.optionals.xmlplaylist
Build-time configuration for xmlplaylist
Type:
bool
liquidsoap.build_config.system
Build-time configuration value for system
Type:
string
liquidsoap.build_config.target
Build-time configuration value for target
Type:
string
liquidsoap.cache
Liquidsoap cache directory.
Type:
(mode : string) -> string?
Arguments:
mode
(of typestring
): Cache mode, one of: “user” or “system”
liquidsoap.cache.maintenance
Execute cache maintenance routine.
Type:
(mode : string) -> unit
Arguments:
mode
(of typestring
): Cache mode, one of: “user” or “system”
liquidsoap.version
Liquidsoap version string.
Type:
string
File
file.contents
Read the whole contents of a file.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
file.copy
Copy a file. Arguments and implementation follows the POSIX
cp
command line specifications.
Type:
(?recursive : bool, ?force : bool, ?preserve : bool, string, string) -> unit
Arguments:
recursive
(of typebool
, which defaults tofalse
): Copy file hierarchies.force
(of typebool
, which defaults totrue
): If a file descriptor for a destination file cannot be obtained attempt to unlink the destination file and proceed.preserve
(of typebool
, which defaults tofalse
): Duplicate source files attributes in the destination file.(unlabeled)
(of typestring
): Source(unlabeled)
(of typestring
): Destination
file.digest
Return an MD5 digest for the given file.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
file.download
Download file using a regular http.get request. Returns
true
on success.
Type:
(filename : string, ?timeout : float, string) -> bool
Arguments:
filename
(of typestring
): Downloaded filename.timeout
(of typefloat
, which defaults to5.0
): Timeout in seconds(unlabeled)
(of typestring
)
file.exists
Returns true if the file or directory exists.
Type:
(string) -> bool
Arguments:
(unlabeled)
(of typestring
)
file.extension
Returns a file’s extension.
Type:
(?dir_sep : string, ?leading_dot : bool, string) -> string
Arguments:
dir_sep
(of typestring
, which defaults to"/"
): Directory separator.leading_dot
(of typebool
, which defaults totrue
): Return extension with a leading dot, e.g..foo
.(unlabeled)
(of typestring
)
file.getter
Getter to the contents of a file.
Type:
(string) -> () -> string
Arguments:
(unlabeled)
(of typestring
): Name of the file from which the contents should be taken.
file.getter.float
Float getter from a file.
Type:
(?default : float, string) -> {float}
Arguments:
default
(of typefloat
, which defaults to0.0
): Default value when the file contains invalid data.(unlabeled)
(of typestring
): Name of the file from which the contents should be taken.
file.is_directory
Returns true if the file exists and is a directory.
Type:
(string) -> bool
Arguments:
(unlabeled)
(of typestring
)
file.iterator
Iterate over the contents of a file.
Type:
(string) -> () -> string?
Arguments:
(unlabeled)
(of typestring
)
file.lines
Get the list of lines of a file.
Type:
(string) -> [string]
Arguments:
(unlabeled)
(of typestring
)
file.lines.iterator
Iterate over the lines of a file.
Type:
(string) -> () -> string?
Arguments:
(unlabeled)
(of typestring
)
file.ls
List all the files in a directory.
Type:
(?absolute : bool, ?recursive : bool, ?pattern : string?, ?sorted : bool,
string) -> [string]
Arguments:
absolute
(of typebool
, which defaults tofalse
): Whether to return absolute paths.recursive
(of typebool
, which defaults tofalse
): Whether to look recursively in subdirectories.pattern
(of typestring?
, which defaults tonull
): Pattern that the filenames should match (e.g."*.mp3"
).sorted
(of typebool
, which defaults tofalse
): Return results in a sorted order.(unlabeled)
(of typestring
): Directory to look in.
file.metadata
Read metadata from a file.
Type:
(string, ?exclude : [string]) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.exclude
(of type[string]
, which defaults to[]
): Decoders to exclude
file.metadata.ffmpeg
Read metadata from a file using the ffmpeg decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.flac
Read metadata from a file using the flac decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.flac_native
Read metadata from a file using the flac_native decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.id3
Read metadata from a file using the id3 decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.id3v1
Read metadata from a file using the id3v1 decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.id3v2
Read metadata from a file using the id3v2 decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.image
Read metadata from a file using the image decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.mp4
Read metadata from a file using the mp4 decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.native
Read metadata from a file using the native decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.ogg
Read metadata from a file using the ogg decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.ogg_native
Read metadata from a file using the ogg_native decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.metadata.video-metadata
Read metadata from a file using the video-metadata decoder.
Type:
(string) -> [string * string]
Arguments:
(unlabeled)
(of typestring
): File from which the metadata should be read.
file.mime
Get a file’s mime type. Uses libmagic if enabled, otherwise try to
get the value using the file binary. Returns null()
if no
value can be found.
Type:
(string) -> string?
Arguments:
(unlabeled)
(of typestring
): The file to test
file.mime.cli
Get a file’s mime type by calling the file
command line
binary.
Type:
(string) -> string?
Arguments:
(unlabeled)
(of typestring
)
file.mime.magic
Get the MIME type of a file.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
file.mkdir
Create a directory.
Type:
(?parents : bool, ?perms : int, string) -> unit
Arguments:
parents
(of typebool
, which defaults tofalse
): Also create parent directories if they do not exist.perms
(of typeint
, which defaults to0o755
): Default file rights if created.(unlabeled)
(of typestring
)
file.move
Move a file
Type:
(?force : bool, ?atomic : bool, string, string) -> unit
Arguments:
force
(of typebool
, which defaults tofalse
): Do not prompt for confirmation if the destination path exists.atomic
(of typebool
, which defaults tofalse
): Move the file atomically. Impliesforce
and raiseserror.file.cross_device
if atomic move fails because the source and destination files are not on the same partition.(unlabeled)
(of typestring
): Source(unlabeled)
(of typestring
): Destination
file.mtime
Last modification time.
Type:
(string) -> float
Arguments:
(unlabeled)
(of typestring
)
file.open
Open a file.
Type:
(?write : bool, ?create : bool?, ?append : bool, ?non_blocking : bool,
?perms : int, string) -> socket
Arguments:
write
(of typebool
, which defaults tofalse
): Open file for writingcreate
(of typebool?
, which defaults tonull
): Create if nonexistent. Default:false
in read-only mode,true
when writing.append
(of typebool
, which defaults tofalse
): Append data if file exists.non_blocking
(of typebool
, which defaults tofalse
): Open in non-blocking mode.perms
(of typeint
, which defaults to0o644
): Default file rights if created.(unlabeled)
(of typestring
)
Methods:
close
(of type() -> unit
): Close the socket.non_blocking
(of type(bool) -> unit
): Set the non-blocking flag on the socketread
(of type((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Read data from a socket. Reading is done when the function returns an empty string""
.type
(of typestring
): Socket typewrite
(of type((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Write data to a socket
file.read
Read the content of a file. Returns a function of type
()->string
. File is done reading when function returns
the empty string ""
.
Type:
(string) -> () -> string
Arguments:
(unlabeled)
(of typestring
)
file.remove
Remove a file.
Type:
(string) -> unit
Arguments:
(unlabeled)
(of typestring
)
file.replaygain
Get the ReplayGain for a file (in dB). Use this setting to lower CPU peaks when computing replaygain tags.
Type:
(?id : string?, ?compute : bool, ?ratio : float, string) -> float?
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.compute
(of typebool
, which defaults totrue
): Compute ReplayGain if metadata tag is empty.ratio
(of typefloat
, which defaults to50.0
): Decoding ratio. A value of50
means try to decode the file50x
faster than real time, if possible.(unlabeled)
(of typestring
): File name.
file.rmdir
Remove a directory and its content.
Type:
(string) -> unit
Arguments:
(unlabeled)
(of typestring
)
file.size
File size in bytes.
Type:
(string) -> int
Arguments:
(unlabeled)
(of typestring
)
file.temp
Return a fresh temporary filename. The temporary file is created empty, with permissions 0o600 (readable and writable only by the file owner).
Type:
(?cleanup : bool, ?directory : string?, string, string) -> string
Arguments:
cleanup
(of typebool
, which defaults tofalse
): Delete the file on shutdowndirectory
(of typestring?
, which defaults tonull
): Directory where to create the file.(unlabeled)
(of typestring
): File suffix(unlabeled)
(of typestring
): File prefix
file.temp_dir
Return a fresh temporary directory name. The temporary directory is created empty, in the default tmp directory, with permissions 0o700 (readable, writable and listable only by the file owner).
Type:
(?cleanup : bool, string, ?string) -> string
Arguments:
cleanup
(of typebool
, which defaults tofalse
): Delete the file on shutdown(unlabeled)
(of typestring
): Directory name suffix.(unlabeled)
(of typestring
, which defaults to""
): Directory name prefix.
file.touch
Ensure that a file exists, creating it empty if it does not.
Type:
(?perms : int, string) -> unit
Arguments:
perms
(of typeint
, which defaults to0o644
)(unlabeled)
(of typestring
): Path of the file.
file.umask
Get the process’s file mode creation mask.
Type:
() -> int
file.umask.set
Set process’s file mode creation mask.
Type:
(int) -> unit
Arguments:
(unlabeled)
(of typeint
)
file.watch
Call a function when a file is modified. Returns unwatch function in
unwatch
method.
Type:
(string, (() -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): File to watch.(unlabeled)
(of type() -> unit
): Handler function.
Methods:
unwatch
(of type() -> unit
): Function to remove the watch on the file.
file.which
file.which("progname")
looks for an executable named
“progname” using directories from the PATH environment variable and
returns “” if it could not find one.
Type:
(string) -> string?
Arguments:
(unlabeled)
(of typestring
)
file.write
Write data to a file.
Type:
(data : {string?}, ?perms : int, ?append : bool, ?atomic : bool,
?temp_dir : string?, string) -> unit
Arguments:
data
(of type{string?}
): Data to write. If passing a callback() -> string?
, the callback must returnnull
or""
when it has finished sending all its data.perms
(of typeint
, which defaults to0o644
): Default file rights if created. Default:0o644
.append
(of typebool
, which defaults tofalse
): Append data if file exists.atomic
(of typebool
, which defaults tofalse
): Make the write atomic by writing to a temporary file and moving the file to destination once writing has succeeded.temp_dir
(of typestring?
, which defaults tonull
): Temporary directory for atomic write.(unlabeled)
(of typestring
): Path to write to.
file.write.stream
Stream data to a file. Returns a callback to write to the file.
Execute with null
or ""
to signify the end of
the writing operation.
Type:
(?perms : int, ?append : bool, ?atomic : bool, ?temp_dir : string?, string) ->
(string?) -> unit
Arguments:
perms
(of typeint
, which defaults to0o644
): Default file rights if created. Default:0o644
.append
(of typebool
, which defaults tofalse
): Append data if file exists.atomic
(of typebool
, which defaults tofalse
): Make the write atomic by writing to a temporary file and moving the file to destination once writing has succeeded.temp_dir
(of typestring?
, which defaults tonull
): Temporary directory for atomic write.(unlabeled)
(of typestring
): Path to write to
medialib
A library to store the metadata of files in given folders and query them. This is useful to generate playlists based on metadata.
Type:
(?id : string?, ?persistency : string?, ?refresh : float?,
?standardize : (([string * string]) -> [string * string]),
?initial_progress : bool, ?directories : [string], ?string?) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
)persistency
(of typestring?
, which defaults tonull
): Store the database in given file, which is reuse to populate the database on next run.refresh
(of typefloat?
, which defaults tonull
): Scan directories for new files every given number of seconds (by default the database is never updated).standardize
(of type([string * string]) -> [string * string]
, which defaults to<fun>
): Function mapped on metadata when indexing. It can be used to change the field names to standard ones, pretreat data, etc.initial_progress
(of typebool
, which defaults totrue
): Show progress of library being indexed at startup.directories
(of type[string]
, which defaults to[]
): Directories to look for files in.(unlabeled)
(of typestring?
, which defaults tonull
): Directory to look for files in.
Methods:
add_directory
(of type(string) -> unit
): Add a new directory which should be scanned.clear
(of type() -> unit
): Remove all known metadata.find
(of type(?case_sensitive : bool, ?artist : string?, ?artist_contains : string?, ?artist_matches : string?, ?album : string?, ?genre : string?, ?title : string?, ?title_contains : string?, ?filename : string?, ?filename_contains : string?, ?filename_matches : string?, ?year : int?, ?year_ge : int?, ?year_lt : int?, ?bpm : int?, ?bpm_ge : int?, ?bpm_lt : int?, ?predicate : (([string * string]) -> bool)) -> [string]
): Find files according to conditions on metadata.refresh
(of type() -> unit
): Update metadatas and look for new files.
medialib.sqlite
A library to store the metadata of files in given folders and query them. This is useful to generate playlists based on metadata. This version use an SQL implementation which should be much faster and less memory consuming than the basic one.
Type:
(?id : string?, database : string, ?refresh : float?,
?standardize : (([string * string]) -> [string * string]),
?initial_progress : bool, ?directories : [string], ?string?) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
)database
(of typestring
)refresh
(of typefloat?
, which defaults tonull
): Scan directories for new files every given number of seconds (by default the database is never updated).standardize
(of type([string * string]) -> [string * string]
, which defaults to<fun>
): Function mapped on metadata when indexing. It can be used to change the field names to standard ones, pretreat data, etc.initial_progress
(of typebool
, which defaults totrue
): Show progress of library being indexed at startup.directories
(of type[string]
, which defaults to[]
): Directories to look for files in.(unlabeled)
(of typestring?
, which defaults tonull
): Directory to look for files in.
Methods:
add_directory
(of type(string) -> unit
): Add a new directory which should be scanned.clear
(of type() -> unit
): Remove all known metadata.find
(of type(?case_sensitive : bool, ?artist : string?, ?artist_contains : string?, ?artist_matches : string?, ?album : string?, ?genre : string?, ?title : string?, ?title_contains : string?, ?filename : string?, ?filename_contains : string?, ?filename_matches : string?, ?year : 'A?, ?year_ge : 'B?, ?year_lt : 'C?, ?bpm : 'D?, ?bpm_ge : 'E?, ?bpm_lt : 'F?, ?condition : string?) -> [string]
): Find files according to conditions on metadata.refresh
(of type() -> unit
): Update metadatas and look for new files.
path.basename
Get the base name of a path, i.e. the name of the file without the
full path. For instance
file.basename("/tmp/folder/bla.mp3")
returns
"bla.mp3"
.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
path.concat
Concatenate two paths, using the appropriate directory separator.
Type:
(string, string) -> string
Arguments:
(unlabeled)
(of typestring
)(unlabeled)
(of typestring
)
path.dirname
Get the directory name of a path.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
path.home.unrelate
Expand path that start with ‘~’ with the current home directory.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
path.remove_extension
Remove the file extension from a path.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
)
playlist.files
Retrieve the list of files contained in a playlist.
Type:
(?id : string?, ?mime_type : string?, ?timeout : float?, string) -> [string]
Arguments:
id
(of typestring?
, which defaults tonull
)mime_type
(of typestring?
, which defaults tonull
): Default MIME type for the playlist.null
means automatic detection.timeout
(of typefloat?
, which defaults tonull
): Timeout for resolving the playlist(unlabeled)
(of typestring
): Path to the playlist
socket.unix.client
Open a named UNIX socket and connect as a client.
Type:
(?non_blocking : bool, string) -> socket
Arguments:
non_blocking
(of typebool
, which defaults tofalse
): Open in non-blocking mode.(unlabeled)
(of typestring
)
Methods:
close
(of type() -> unit
):read
(of type((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit}
):type
(of typestring
):write
(of type((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit}
):
socket.unix.listen
Open a named socket and wait for a client to connect
Type:
(?non_blocking : bool, string) -> socket
Arguments:
non_blocking
(of typebool
, which defaults tofalse
): Open in non-blocking mode.(unlabeled)
(of typestring
)
Methods:
close
(of type() -> unit
):read
(of type((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit}
):type
(of typestring
):write
(of type((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit}
):
Getter
getter
Create a getter.
Type:
({'a}) -> {'a}
Arguments:
(unlabeled)
(of type{'a}
): Value from which the getter should be created.
getter.case
Return a value depending on whether the getter is constant or not.
Type:
({'a}, (('a) -> 'b), (((() -> 'a)) -> 'b)) -> 'b
Arguments:
(unlabeled)
(of type{'a}
): Getter to inspect.(unlabeled)
(of type('a) -> 'b
)(unlabeled)
(of type((() -> 'a)) -> 'b
)
getter.changes
Detect whether the value of the getter changes.
Type:
({'a}) -> () -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of type{'a} where 'a is an orderable type
)
getter.float_of_int
Convert an int getter to a float getter.
Type:
({int}) -> {float}
Arguments:
(unlabeled)
(of type{int}
)
getter.function
Construct a function returning the value of a getter.
Type:
({'a}) -> () -> 'a
Arguments:
(unlabeled)
(of type{'a}
)
getter.get
Get the value of a getter.
Type:
({'a}) -> 'a
Arguments:
(unlabeled)
(of type{'a}
)
getter.int_of_float
Convert a float getter to a int getter.
Type:
({float}) -> {int}
Arguments:
(unlabeled)
(of type{float}
)
getter.is_constant
Determine if a getter is a constant.
Type:
({'a}) -> bool
Arguments:
(unlabeled)
(of type{'a}
)
getter.map
Apply a function on a getter.
Type:
((('a) -> 'b), {'a}) -> {'b}
Arguments:
(unlabeled)
(of type('a) -> 'b
): Function to apply.(unlabeled)
(of type{'a}
)
getter.map.memoize
Apply a function on a getter. If the input value has not changed compared to last call, the previous result is returned without computing the function again.
Type:
((('a) -> 'b), {'a}) -> {'b} where 'a is an orderable type
Arguments:
(unlabeled)
(of type('a) -> 'b where 'a is an orderable type
): Function to apply.(unlabeled)
(of type{'a} where 'a is an orderable type
)
getter.merge
Give the latest value among two getters.
Type:
({'a}, {'a}) -> () -> 'a where 'a is an orderable type
Arguments:
(unlabeled)
(of type{'a} where 'a is an orderable type
)(unlabeled)
(of type{'a} where 'a is an orderable type
)
getter.on_change
Execute a function when the value of the getter changes.
Type:
((('a) -> unit), {'a}) -> () -> 'a where 'a is an orderable type
Arguments:
(unlabeled)
(of type('a) -> unit where 'a is an orderable type
)(unlabeled)
(of type{'a} where 'a is an orderable type
)
Interaction
audioscrobbler.api.track.scrobble
Submit a track to the audioscrobbler track.scrobble
API.
Type:
(username : string, password : string, ?session_key : string?,
?api_key : string?, ?api_secret : string?, artist : string, track : string,
?timestamp : float?, ?album : string?, ?context : string?,
?streamId : string?, ?chosenByUser : bool, ?trackNumber : int?,
?mbid : string?, ?albumArtist : string?, ?duration : int?) -> unit
Arguments:
username
(of typestring
)password
(of typestring
)session_key
(of typestring?
, which defaults tonull
)api_key
(of typestring?
, which defaults tonull
)api_secret
(of typestring?
, which defaults tonull
)artist
(of typestring
)track
(of typestring
)timestamp
(of typefloat?
, which defaults tonull
)album
(of typestring?
, which defaults tonull
)context
(of typestring?
, which defaults tonull
)streamId
(of typestring?
, which defaults tonull
)chosenByUser
(of typebool
, which defaults totrue
)trackNumber
(of typeint?
, which defaults tonull
)mbid
(of typestring?
, which defaults tonull
)albumArtist
(of typestring?
, which defaults tonull
)duration
(of typeint?
, which defaults tonull
)
Methods:
lfm
(of type{ scrobbles : { scrobble : { album : string? .{xml_params : {corrected : int} }, albumArtist : string? .{xml_params : {corrected : int} }, artist : string .{xml_params : {corrected : int} }, ignoredMessage : {xml_params : {code : int} }, timestamp : float, track : string .{xml_params : {corrected : int} } }, xml_params : {accepted : int, ignored : int } }, xml_params : {status : string } }
):
audioscrobbler.api.track.scrobble.metadata
Submit a track to the audioscrobbler track.scrobble
API
using its metadata.
Type:
(username : string, password : string, ?session_key : string?,
?api_key : string?, ?api_secret : string?, [string * string]) -> unit
Arguments:
username
(of typestring
)password
(of typestring
)session_key
(of typestring?
, which defaults tonull
)api_key
(of typestring?
, which defaults tonull
)api_secret
(of typestring?
, which defaults tonull
)(unlabeled)
(of type[string * string]
)
audioscrobbler.api.track.updateNowPlaying
Submit a track to the audioscrobbler
track.updateNowPlaying
API.
Type:
(username : string, password : string, ?session_key : string?,
?api_key : string?, ?api_secret : string?, artist : string, track : string,
?album : string?, ?context : string?, ?trackNumber : int?, ?mbid : string?,
?albumArtist : string?, ?duration : int?) -> unit
Arguments:
username
(of typestring
)password
(of typestring
)session_key
(of typestring?
, which defaults tonull
)api_key
(of typestring?
, which defaults tonull
)api_secret
(of typestring?
, which defaults tonull
)artist
(of typestring
)track
(of typestring
)album
(of typestring?
, which defaults tonull
)context
(of typestring?
, which defaults tonull
)trackNumber
(of typeint?
, which defaults tonull
)mbid
(of typestring?
, which defaults tonull
)albumArtist
(of typestring?
, which defaults tonull
)duration
(of typeint?
, which defaults tonull
)
Methods:
lfm
(of type{ nowplaying : { album : string? .{xml_params : {corrected : int} }, albumArtist : string? .{xml_params : {corrected : int} }, artist : string .{xml_params : {corrected : int} }, ignoredMessage : {xml_params : {code : int} }, track : string .{xml_params : {corrected : int} } }, xml_params : {status : string } }
):
audioscrobbler.api.track.updateNowPlaying.metadata
Submit a track using its metadata to the audioscrobbler
track.updateNowPlaying
API.
Type:
(username : string, password : string, ?session_key : string?,
?api_key : string?, ?api_secret : string?, [string * string]) -> unit
Arguments:
username
(of typestring
)password
(of typestring
)session_key
(of typestring?
, which defaults tonull
)api_key
(of typestring?
, which defaults tonull
)api_secret
(of typestring?
, which defaults tonull
)(unlabeled)
(of type[string * string]
)
http.codes
List of HTTP response codes and statuses.
Type:
[int * string]
icy.update_metadata
Update metata on an icecast mountpoint using the ICY protocol.
Type:
(?host : string, ?port : int, ?user : string, ?transport : http_transport,
?password : string, ?mount : string, ?icy_id : int, ?protocol : string,
?encoding : string?, ?headers : [string * string], [string * string]) ->
unit
Arguments:
host
(of typestring
, which defaults to"localhost"
)port
(of typeint
, which defaults to8000
)user
(of typestring
, which defaults to"source"
)transport
(of typehttp_transport
, which defaults to<unix_transport>
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputpassword
(of typestring
, which defaults to"hackme"
)mount
(of typestring
, which defaults to""
): Source mount point. Mandatory when streaming to icecast.icy_id
(of typeint
, which defaults to1
): Shoutcast source ID. Only supported by Shoutcast v2.protocol
(of typestring
, which defaults to"http"
): Protocol to use. One of: “icy”, “http” or “https”encoding
(of typestring?
, which defaults tonull
): Encoding used to send metadata, default (UTF-8) if null.headers
(of type[string * string]
, which defaults to[("User-Agent", "Liquidsoap/2.3.1+git@f51e9681e (Unix; OCaml 4.14.2)")]
): Additional headers.(unlabeled)
(of type[string * string]
)
osc.bool
Read from an OSC path.
Type:
(string, bool) -> () -> bool
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typebool
): Initial value.
osc.float
Read from an OSC path.
Type:
(string, float) -> () -> float
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat
): Initial value.
osc.float_pair
Read from an OSC path.
Type:
(string, (float * float)) -> () -> float * float
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat * float
): Initial value.
osc.int
Read from an OSC path.
Type:
(string, int) -> () -> int
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint
): Initial value.
osc.int_pair
Read from an OSC path.
Type:
(string, (int * int)) -> () -> int * int
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint * int
): Initial value.
osc.native.float
Read from an OSC path.
Type:
(string, float) -> () -> float
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat
): Initial value.
osc.native.float_pair
Read from an OSC path.
Type:
(string, (float * float)) -> () -> float * float
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat * float
): Initial value.
osc.native.int
Read from an OSC path.
Type:
(string, int) -> () -> int
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint
): Initial value.
osc.native.int_pair
Read from an OSC path.
Type:
(string, (int * int)) -> () -> int * int
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint * int
): Initial value.
osc.native.on_float
Register a callback on OSC messages.
Type:
(string, ((float) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(float) -> unit
): Callback function.
osc.native.on_float_pair
Register a callback on OSC messages.
Type:
(string, (((float * float)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((float * float)) -> unit
): Callback function.
osc.native.on_int
Register a callback on OSC messages.
Type:
(string, ((int) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(int) -> unit
): Callback function.
osc.native.on_int_pair
Register a callback on OSC messages.
Type:
(string, (((int * int)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((int * int)) -> unit
): Callback function.
osc.native.on_string
Register a callback on OSC messages.
Type:
(string, ((string) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(string) -> unit
): Callback function.
osc.native.on_string_pair
Register a callback on OSC messages.
Type:
(string, (((string * string)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((string * string)) -> unit
): Callback function.
osc.native.send_float
Send a value to an OSC client.
Type:
(host : string, port : int, string, float) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat
): Value to send.
osc.native.send_float_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (float * float)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat * float
): Value to send.
osc.native.send_int
Send a value to an OSC client.
Type:
(host : string, port : int, string, int) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint
): Value to send.
osc.native.send_int_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (int * int)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint * int
): Value to send.
osc.native.send_string
Send a value to an OSC client.
Type:
(host : string, port : int, string, string) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring
): Value to send.
osc.native.send_string_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (string * string)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring * string
): Value to send.
osc.native.string
Read from an OSC path.
Type:
(string, string) -> () -> string
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring
): Initial value.
osc.native.string_pair
Read from an OSC path.
Type:
(string, (string * string)) -> () -> string * string
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring * string
): Initial value.
osc.on_bool
Register a callback on OSC messages.
Type:
(string, ((bool) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(bool) -> unit
): Callback function.
osc.on_float
Register a callback on OSC messages.
Type:
(string, ((float) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(float) -> unit
): Callback function.
osc.on_float_pair
Register a callback on OSC messages.
Type:
(string, (((float * float)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((float * float)) -> unit
): Callback function.
osc.on_int
Register a callback on OSC messages.
Type:
(string, ((int) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(int) -> unit
): Callback function.
osc.on_int_pair
Register a callback on OSC messages.
Type:
(string, (((int * int)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((int * int)) -> unit
): Callback function.
osc.on_string
Register a callback on OSC messages.
Type:
(string, ((string) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type(string) -> unit
): Callback function.
osc.on_string_pair
Register a callback on OSC messages.
Type:
(string, (((string * string)) -> unit)) -> unit
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of type((string * string)) -> unit
): Callback function.
osc.send_bool
Send a value to an OSC client.
Type:
(host : string, port : int, string, bool) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typebool
): Value to send.
osc.send_float
Send a value to an OSC client.
Type:
(host : string, port : int, string, float) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat
): Value to send.
osc.send_float_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (float * float)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typefloat * float
): Value to send.
osc.send_int
Send a value to an OSC client.
Type:
(host : string, port : int, string, int) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint
): Value to send.
osc.send_int_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (int * int)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typeint * int
): Value to send.
osc.send_string
Send a value to an OSC client.
Type:
(host : string, port : int, string, string) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring
): Value to send.
osc.send_string_pair
Send a value to an OSC client.
Type:
(host : string, port : int, string, (string * string)) -> unit
Arguments:
host
(of typestring
): OSC client address.port
(of typeint
): OSC client port.(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring * string
): Value to send.
osc.string
Read from an OSC path.
Type:
(string, string) -> () -> string
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring
): Initial value.
osc.string_pair
Read from an OSC path.
Type:
(string, (string * string)) -> () -> string * string
Arguments:
(unlabeled)
(of typestring
): OSC path.(unlabeled)
(of typestring * string
): Initial value.
prometheus.counter
Register a prometheus counter
Type:
(help : string, ?namespace : string, ?subsystem : string, labels : [string],
string) -> (label_values : [string]) -> (float) -> unit
Arguments:
help
(of typestring
): Help of the metricnamespace
(of typestring
, which defaults to""
): namespace of the metricsubsystem
(of typestring
, which defaults to""
): subsystem of the metriclabels
(of type[string]
): labels for the metric(unlabeled)
(of typestring
): Name of the metric
prometheus.gauge
Register a prometheus gauge
Type:
(help : string, ?namespace : string, ?subsystem : string, labels : [string],
string) -> (label_values : [string]) -> (float) -> unit
Arguments:
help
(of typestring
): Help of the metricnamespace
(of typestring
, which defaults to""
): namespace of the metricsubsystem
(of typestring
, which defaults to""
): subsystem of the metriclabels
(of type[string]
): labels for the metric(unlabeled)
(of typestring
): Name of the metric
prometheus.summary
Register a prometheus summary
Type:
(help : string, ?namespace : string, ?subsystem : string, labels : [string],
string) -> (label_values : [string]) -> (float) -> unit
Arguments:
help
(of typestring
): Help of the metricnamespace
(of typestring
, which defaults to""
): namespace of the metricsubsystem
(of typestring
, which defaults to""
): subsystem of the metriclabels
(of type[string]
): labels for the metric(unlabeled)
(of typestring
): Name of the metric
server.register
Register a command. You can then execute this function through the server, either telnet or socket.
Type:
(?namespace : string?, ?description : string, ?usage : string?, string,
((string) -> string)) -> unit
Arguments:
namespace
(of typestring?
, which defaults tonull
): Used to group multiple commands for the same functionality. If specified, the command will be namednamespace.command
.description
(of typestring
, which defaults to"No documentation available."
): A description of your command.usage
(of typestring?
, which defaults tonull
): Description of how the command should be used.(unlabeled)
(of typestring
): Name of the command.(unlabeled)
(of type(string) -> string
): Function called when the command is executed. It takes as argument the argument passed on the commandline and returns the message which will be printed on the commandline.
server.telnet
Enable telnet server.
Type:
(?port : int) -> unit
Arguments:
port
(of typeint
, which defaults to1234
): Port on which we should listen.
Internet
harbor.http.middleware.register
Register a new harbor middleware
Type:
((('a, 'b, (('a, 'b) -> 'c)) -> 'c)) -> unit
Arguments:
(unlabeled)
(of type('a, 'b, (('a, 'b) -> 'c)) -> 'c
)
harbor.http.register
Register a HTTP handler on the harbor. The handler function receives
as argument the full requested information and returns the answer sent
to the client, including HTTP headers. This function registers exact
path matches, i.e. "/users"
, "/index.hml"
as
well as fragment matches, i.e. "/user/:id"
,
"/users/:id/collabs/:cid"
, etc. If you need more advanced
matching, use harbor.http.register.regexp
to match regular
expressions. Paths are resolved in the order they are declared and can
override default harbor paths such as metadata handlers. The handler
receives the request details as a record and a response handler. Matched
fragments are reported as part of the response query
parameter. The response handler can be used to fill up details about the
http response, which will be converted into a plain HTTP response string
after the handler returns.
Type:
(?port : int, ?transport : http_transport
.{default_port : int, name : string, protocol : string}, ?method : string,
string,
((
{
body : (?timeout : float) -> string,
data : (?timeout : float) -> string,
headers : [string * string],
http_version : string,
method : string,
path : string,
query : [string * string]
}, (() -> string)
.{
content_type : ((string?) -> unit)
.{current : () -> string?
},
data : (({string}) -> unit)
.{current : () -> {string}
},
header : (string, string) -> unit,
headers : (([string * string]) -> unit)
.{current : () -> [string * string]
},
html : ({string}) -> unit,
http_version : ((string) -> unit)
.{current : () -> string
},
json : (?compact : bool, 'a) -> unit,
multipart_form : (?boundary : string?,
[
{
attributes : [string * string],
contents : {string},
headers : ['b * 'c],
name : string
}]) -> unit,
redirect : (?status_code : int, string) -> unit,
send_status : (socket
.{
close : () -> unit,
non_blocking : (bool) -> unit,
read : ((?timeout : float?) -> string)
.{wait : (?timeout : float?, (() -> unit)) -> unit
},
type : string,
write : (string) -> unit
}) -> unit,
status_code : ((int) -> unit)
.{current : () -> int
},
status_message : ((string?) -> unit)
.{current : () -> string?
},
status_sent : () -> bool
}) -> unit)) -> unit
Arguments:
port
(of typeint
, which defaults to8000
): Port to serve.transport
(of typehttp_transport.{default_port : int, name : string, protocol : string}
, which defaults to<unix_transport>.{name="unix", protocol="http", default_port=80}
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputmethod
(of typestring
, which defaults to"GET"
): Accepted method (“GET” / “POST” / “PUT” / “DELETE” / “HEAD” / “OPTIONS”).(unlabeled)
(of typestring
)(unlabeled)
(of type( { body : (?timeout : float) -> string, data : (?timeout : float) -> string, headers : [string * string], http_version : string, method : string, path : string, query : [string * string] }, (() -> string) .{ content_type : ((string?) -> unit) .{current : () -> string? }, data : (({string}) -> unit) .{current : () -> {string} }, header : (string, string) -> unit, headers : (([string * string]) -> unit) .{current : () -> [string * string] }, html : ({string}) -> unit, http_version : ((string) -> unit) .{current : () -> string }, json : (?compact : bool, 'a) -> unit, multipart_form : (?boundary : string?, [ { attributes : [string * string], contents : {string}, headers : ['b * 'c], name : string }]) -> unit, redirect : (?status_code : int, string) -> unit, send_status : (socket .{ close : () -> unit, non_blocking : (bool) -> unit, read : ((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit }, type : string, write : (string) -> unit }) -> unit, status_code : ((int) -> unit) .{current : () -> int }, status_message : ((string?) -> unit) .{current : () -> string? }, status_sent : () -> bool }) -> unit
)
harbor.http.register.simple
Register a HTTP handler on the harbor. This function offers a simple
API, suitable for quick implementation of HTTP handlers. See
harbor.http.register
for a node/express like alternative
API.
Type:
(?port : int, ?transport : http_transport
.{default_port : int, name : string, protocol : string}, ?method : string,
string,
((
{
body : (?timeout : float) -> string,
data : (?timeout : float) -> string,
headers : [string * string],
http_version : string,
method : string,
path : string,
query : [string * string],
socket : socket
.{
close : () -> unit,
non_blocking : (bool) -> unit,
read : ((?timeout : float?) -> string)
.{wait : (?timeout : float?, (() -> unit)) -> unit
},
type : string,
write : ((?timeout : float?, string) -> unit)
.{wait : (?timeout : float?, (() -> unit)) -> unit
}
}
}) -> {string}?)) -> unit
Arguments:
port
(of typeint
, which defaults to8000
): Port to serve.transport
(of typehttp_transport.{default_port : int, name : string, protocol : string}
, which defaults to<unix_transport>.{name="unix", protocol="http", default_port=80}
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputmethod
(of typestring
, which defaults to"GET"
): Accepted method (“GET” / “POST” / “PUT” / “DELETE” / “HEAD” / “OPTIONS”).(unlabeled)
(of typestring
)(unlabeled)
(of type( { body : (?timeout : float) -> string, data : (?timeout : float) -> string, headers : [string * string], http_version : string, method : string, path : string, query : [string * string], socket : socket .{ close : () -> unit, non_blocking : (bool) -> unit, read : ((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit }, type : string, write : ((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit } } }) -> {string}?
)
harbor.http.register.simple.regexp
Register a HTTP handler on the harbor with a generic regexp
path
. This function offers a simple API, suitable for quick
implementation of HTTP handlers. See harbor.http.register
for a node/express like alternative API.
Type:
(?port : int, ?transport : http_transport
.{default_port : int, name : string, protocol : string}, ?method : string,
regexp,
((
{
data : (?timeout : float) -> string,
headers : [string * string],
http_version : string,
method : string,
path : string,
query : [string * string],
socket : socket
.{
close : () -> unit,
non_blocking : (bool) -> unit,
read : ((?timeout : float?) -> string)
.{wait : (?timeout : float?, (() -> unit)) -> unit
},
type : string,
write : ((?timeout : float?, string) -> unit)
.{wait : (?timeout : float?, (() -> unit)) -> unit
}
}
}) -> {string}?)) -> unit
Arguments:
port
(of typeint
, which defaults to8000
): Port to serve.transport
(of typehttp_transport.{default_port : int, name : string, protocol : string}
, which defaults to<unix_transport>.{name="unix", protocol="http", default_port=80}
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputmethod
(of typestring
, which defaults to"GET"
): Accepted method (“GET” / “POST” / “PUT” / “DELETE” / “HEAD” / “OPTIONS”).(unlabeled)
(of typeregexp
)(unlabeled)
(of type( { data : (?timeout : float) -> string, headers : [string * string], http_version : string, method : string, path : string, query : [string * string], socket : socket .{ close : () -> unit, non_blocking : (bool) -> unit, read : ((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit }, type : string, write : ((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit } } }) -> {string}?
)
harbor.http.static
Serve a static path.
Type:
(?transport : http_transport
.{default_port : int, name : string, protocol : string}, ?port : int,
?path : string, ?browse : bool, ?content_type : ((string) -> string?),
?headers : [string * string], string) -> unit
Arguments:
transport
(of typehttp_transport.{default_port : int, name : string, protocol : string}
, which defaults to<unix_transport>.{default_port=80, protocol="http", name="unix"}
): Http transport. Usehttp.transport.ssl
or http.transport.secure_transport`, when available, to enable HTTPS outputport
(of typeint
, which defaults to8000
): Port for incoming harbor (http) connections.path
(of typestring
, which defaults to"/"
): Base path.browse
(of typebool
, which defaults tofalse
): List files in directories.content_type
(of type(string) -> string?
, which defaults to<fun>.{magic=<fun>, cli=<fun>}
): Callback to specify Content-Type on a per file basis. Default: file.mime if compiled or file CLI if present.headers
(of type[string * string]
, which defaults to[("Access-Control-Allow-Origin", "*")]
): Default response headers.(unlabeled)
(of typestring
): Local path to be served.
harbor.remove
Remove a registered handler on the harbor.
Type:
(?port : int, ?method : string, regexp) -> unit
Arguments:
port
(of typeint
, which defaults to8000
): Port to serve.method
(of typestring
, which defaults to"GET"
): Method served.(unlabeled)
(of typeregexp
): URI served.
host.of_internet_address
Find a host by internet address
Type:
(internet_address) ->
{
addresses : [internet_address.{is_ipv6 : bool, to_string : () -> string}],
aliases : [string],
domain : socket_domain,
name : string}?
Arguments:
(unlabeled)
(of typeinternet_address
)
host.of_name
Find a host by name
Type:
(string) ->
{
addresses : [internet_address.{is_ipv6 : bool, to_string : () -> string}],
aliases : [string],
domain : socket_domain,
name : string}?
Arguments:
(unlabeled)
(of typestring
): hostname
http.delete
Perform a full http DELETE request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string) -> unit
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.delete.stream
Perform a full http DELETE request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string,
on_body_data : ((string?) -> unit)) -> unit
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.on_body_data
(of type(string?) -> unit
): function called when receiving response body data.null
or""
means that all the data has been passed.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.get
Perform a full http GET request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string) -> string
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.get.stream
Perform a full http GET request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string,
on_body_data : ((string?) -> unit)) -> unit
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.on_body_data
(of type(string?) -> unit
): function called when receiving response body data.null
or""
means that all the data has been passed.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.head
Perform a full http HEAD request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string) -> unit
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.head.stream
Perform a full http HEAD request.
Type:
(?headers : [string * string], ?http_version : string?, ?redirect : bool,
?timeout : float?, ?normalize_url : bool?, string,
on_body_data : ((string?) -> unit)) -> unit
Arguments:
headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.on_body_data
(of type(string?) -> unit
): function called when receiving response body data.null
or""
means that all the data has been passed.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.headers.content_disposition
Extract the content-disposition header
Type:
([string * string]) ->
{args : [string * string?], filename? : string, name? : string, type : string
}?
Arguments:
(unlabeled)
(of type[string * string]
)
http.headers.content_type
Extract the content-type header
Type:
([string * string?]) -> {args : [string * string], mime : string}?
Arguments:
(unlabeled)
(of type[string * string?]
)
http.headers.extname
Try to get a filename from a request’s headers.
Type:
([string * string]) -> string?
Arguments:
(unlabeled)
(of type[string * string]
)
http.multipart_form_data
Prepare a list of data to be sent as multipart form data.
Type:
(?boundary : string?,
[
{
attributes : [string * string],
contents : {string},
headers : ['a * 'b],
name : string
}]) -> unit
Arguments:
boundary
(of typestring?
, which defaults tonull
): Specify boundary to use for multipart/form-data.(unlabeled)
(of type[ { attributes : [string * string], contents : {string}, headers : ['a * 'b], name : string }]
): data to insert
Methods:
boundary
(of typestring
):contents
(of type{string}
):
http.post
Perform a full http POST request.
Type:
(?data : {string}, ?headers : [string * string], ?http_version : string?,
?redirect : bool, ?timeout : float?, ?normalize_url : bool?, string) ->
string
Arguments:
data
(of type{string}
, which defaults to""
): POST data. Use astring
getter to stream data and return""
when all data has been passed.headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.post.file
Send a file via POST request encoded in multipart/form-data. The
contents can either be directly specified (with the
contents
argument) or taken from a file (with the
file
argument).
Type:
(?name : string, ?content_type : string?, ?headers : [string * string],
?boundary : string?, ?filename : string?, ?file : string?,
?contents : {string}?, ?timeout : float?, ?redirect : bool, string) ->
string
Arguments:
name
(of typestring
, which defaults to"file"
): Name of the field fieldcontent_type
(of typestring?
, which defaults tonull
): Content-type (mime) for the file.headers
(of type[string * string]
, which defaults to[]
): Additional headers.boundary
(of typestring?
, which defaults tonull
): Specify boundary to use for multipart/form-data.filename
(of typestring?
, which defaults tonull
): File name sent in the request.file
(of typestring?
, which defaults tonull
): File whose contents is to be sent in the request.contents
(of type{string}?
, which defaults tonull
): Contents of the file sent in the request.timeout
(of typefloat?
, which defaults tonull
): Timeout in seconds.redirect
(of typebool
, which defaults totrue
): Follow reidrections.(unlabeled)
(of typestring
): URL to post to.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.post.stream
Perform a full http POST request.
Type:
(?data : {string}, ?headers : [string * string], ?http_version : string?,
?redirect : bool, ?timeout : float?, ?normalize_url : bool?, string,
on_body_data : ((string?) -> unit)) -> unit
Arguments:
data
(of type{string}
, which defaults to""
): POST data. Use astring
getter to stream data and return""
when all data has been passed.headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.on_body_data
(of type(string?) -> unit
): function called when receiving response body data.null
or""
means that all the data has been passed.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.put
Perform a full http PUT request.
Type:
(?data : {string}, ?headers : [string * string], ?http_version : string?,
?redirect : bool, ?timeout : float?, ?normalize_url : bool?, string) ->
string
Arguments:
data
(of type{string}
, which defaults to""
): POST data. Use astring
getter to stream data and return""
when all data has been passed.headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.put.file
Send a file via PUT request encoded in multipart/form-data. The
contents can either be directly specified (with the
contents
argument) or taken from a file (with the
file
argument).
Type:
(?name : string, ?content_type : string?, ?headers : [string * string],
?boundary : string?, ?filename : string?, ?file : string?,
?contents : {string}?, ?timeout : float?, ?redirect : bool, string) ->
string
Arguments:
name
(of typestring
, which defaults to"file"
): Name of the field fieldcontent_type
(of typestring?
, which defaults tonull
): Content-type (mime) for the file.headers
(of type[string * string]
, which defaults to[]
): Additional headers.boundary
(of typestring?
, which defaults tonull
): Specify boundary to use for multipart/form-data.filename
(of typestring?
, which defaults tonull
): File name sent in the request.file
(of typestring?
, which defaults tonull
): File whose contents is to be sent in the request.contents
(of type{string}?
, which defaults tonull
): Contents of the file sent in the request.timeout
(of typefloat?
, which defaults tonull
): Timeout in seconds.redirect
(of typebool
, which defaults totrue
): Follow reidrections.(unlabeled)
(of typestring
): URL to put to.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.put.stream
Perform a full http PUT request.
Type:
(?data : {string}, ?headers : [string * string], ?http_version : string?,
?redirect : bool, ?timeout : float?, ?normalize_url : bool?, string,
on_body_data : ((string?) -> unit)) -> unit
Arguments:
data
(of type{string}
, which defaults to""
): POST data. Use astring
getter to stream data and return""
when all data has been passed.headers
(of type[string * string]
, which defaults to[]
): Additional headers.http_version
(of typestring?
, which defaults tonull
): Http request version.redirect
(of typebool
, which defaults totrue
): Perform redirections if needed.timeout
(of typefloat?
, which defaults to10.0
): Timeout for network operations in seconds.normalize_url
(of typebool?
, which defaults tonull
): Normalize url, replacing spaces with%20
and more. Defaults tosettings.http.normalize_url
whennull
.(unlabeled)
(of typestring
): Requested URL, e.g."http://www.liquidsoap.info/"
.on_body_data
(of type(string?) -> unit
): function called when receiving response body data.null
or""
means that all the data has been passed.
Methods:
headers
(of type[string * string]
): HTTP headers.http_version
(of typestring
): Version of the HTTP protocol.status_code
(of typeint
): Status code.status_message
(of typestring
): Status message.
http.response
Initiate a response handler with pre-filled values.
Type:
(?http_version : string, ?status_code : int?, ?status_message : string?,
?headers : [string * string], ?content_type : string?, ?data : {string}) ->
() -> string
Arguments:
http_version
(of typestring
, which defaults to"1.1"
)status_code
(of typeint?
, which defaults tonull
)status_message
(of typestring?
, which defaults tonull
)headers
(of type[string * string]
, which defaults to[]
)content_type
(of typestring?
, which defaults tonull
)data
(of type{string}
, which defaults to""
)
Methods:
content_type
(of type((string?) -> unit).{current : () -> string?}
): Set"Content-Type"
headerdata
(of type(({string}) -> unit).{current : () -> {string}}
): Set response data.header
(of type(string, string) -> unit
): Set a single header on the responseheaders
(of type(([string * string]) -> unit).{current : () -> [string * string]}
): Replace response headers.html
(of type({string}) -> unit
): Set content-type to html and data to argument valuehttp_version
(of type((string) -> unit).{current : () -> string}
): Set http protocol versionjson
(of type(?compact : bool, 'A) -> unit
): Set content-type to json and data tojson.stringify
of the argumentmultipart_form
(of type(?boundary : string?, [ { attributes : [string * string], contents : {string}, headers : ['A * 'B], name : string }]) -> unit
):redirect
(of type(?status_code : int, string) -> unit
): Setstatus_code
andLocation:
header for a HTTP redirect responsesend_status
(of type('A.{write : (string) -> unit}) -> unit
):status_code
(of type((int) -> unit).{current : () -> int}
): Set response status codestatus_message
(of type((string?) -> unit).{current : () -> string?}
): Set response status messagestatus_sent
(of type() -> bool
):
http.transport.ssl
Https transport using libssl
Type:
(?read_timeout : float?, ?write_timeout : float?, ?password : string?,
?min_protocol : string?, ?max_protocol : string?, ?certificate : string?,
?key : string?) -> http_transport
Arguments:
read_timeout
(of typefloat?
, which defaults tonull
): Read timeoutwrite_timeout
(of typefloat?
, which defaults tonull
): Write timeoutpassword
(of typestring?
, which defaults tonull
): SSL certificate passwordmin_protocol
(of typestring?
, which defaults tonull
): Minimal accepted SSL protocol. One of, from least recent to most recent:"ssl.3"
,"tls.1"
,"tls.1.1"
,"tls.1.2"
or"tls.1.3"
. The most recent available protocol between client and server is negotiated when initiating communication between minimal and maximal protocol version. All protocols up to"tls.1.2"
and above are now deprecated so you might want to set this value to one of those two. Default to lowest support protocol if not set.max_protocol
(of typestring?
, which defaults tonull
): Maximal accepted SSL protocol. One of, from least recent to most recent:"ssl.3"
,"tls.1"
,"tls.1.1"
,"tls.1.2"
or"tls.1.3"
. The most recent available protocol between client and server is negotiated when initiating communication between minimal and maximal protocol version. Defaults to highest protocol supported if not set.certificate
(of typestring?
, which defaults tonull
): Path to certificate file. Required in server mode, e.g.input.harbor
, etc. If passed in client mode, certificate is added to the list of valid certificates.key
(of typestring?
, which defaults tonull
): Path to certificate private key. Required in server mode, e.g.input.harbor
, etc.
Methods:
default_port
(of typeint
): Transport default portname
(of typestring
): Transport nameprotocol
(of typestring
): Transport protocol
http.transport.tls
Https transport using libtls
Type:
(?read_timeout : float?, ?write_timeout : float?, ?certificate : string?,
?key : string?) -> http_transport
Arguments:
read_timeout
(of typefloat?
, which defaults tonull
): Read timeout. Defaults to harbor’s timeout ifnull
.write_timeout
(of typefloat?
, which defaults tonull
): Write timeout. Defaults to harbor’s timeout ifnull
.certificate
(of typestring?
, which defaults tonull
): Path to certificate file. Required in server mode, e.g.input.harbor
, etc. If passed in client mode, certificate is added to the list of valid certificates.key
(of typestring?
, which defaults tonull
): Path to certificate private key. Required in server mode, e.g.input.harbor
, etc. Unused in client mode.
Methods:
default_port
(of typeint
): Transport default portname
(of typestring
): Transport nameprotocol
(of typestring
): Transport protocol
http.transport.unix
Http unencrypted transport
Type:
http_transport.{default_port : int, name : string, protocol : string}
http.user_agent
Default user-agent
Type:
string
http.www_form_urlencoded
Prepare a list of (string, string)
arguments for sending
as "application/x-www-form-urlencoded"
content
Type:
([string * string]) -> string
Arguments:
(unlabeled)
(of type[string * string]
)
socket.address.internet_address
Create a socket address for a internet address.
Type:
(internet_address.{is_ipv6 : bool, to_string : () -> string}, int) ->
socket_address
Arguments:
(unlabeled)
(of typeinternet_address.{is_ipv6 : bool, to_string : () -> string}
): Internet address.(unlabeled)
(of typeint
): port
Methods:
domain
(of typesocket_domain
): Socket domaininternet_address
(of typeinternet_address.{is_ipv6 : bool, to_string : () -> string}
): Internet addressport
(of typeint
): Port
socket.address.unix
Create a socket address for a unix file socket.
Type:
(string) -> socket_address
Arguments:
(unlabeled)
(of typestring
): Unix socket path
Methods:
domain
(of typesocket_domain
): Socket domainpath
(of typestring
): Unix socket path
socket.domain.inet
Inet socket domain
Type:
socket_domain
socket.domain.inet6
Inet6 socket domain
Type:
socket_domain
socket.domain.unix
Unix socket domain
Type:
socket_domain
socket.internet_address
Return an internet address from its string representation.
Type:
(string) -> internet_address
Arguments:
(unlabeled)
(of typestring
): Socket internet address.
Methods:
is_ipv6
(of typebool
): Is the internet address a ipv6 address?to_string
(of type() -> string
): String representation of the internet address
socket.internet_address.any
A special IPv4 address, for use only with socket.bind
,
representing all the Internet addresses that the host machine
possesses.
Type:
internet_address.{is_ipv6 : bool, to_string : () -> string}
socket.internet_address.ipv6.any
A special IPv6 address, for use only with socket.bind
,
representing all the Internet addresses that the host machine
possesses.
Type:
internet_address.{is_ipv6 : bool, to_string : () -> string}
socket.internet_address.ipv6.loopback
A special IPv6 address representing the host machine
(::1
).
Type:
internet_address.{is_ipv6 : bool, to_string : () -> string}
socket.internet_address.loopback
A special IPv4 address representing the host machine
(127.0.0.1
).
Type:
internet_address.{is_ipv6 : bool, to_string : () -> string}
socket.pair
Create a pair of sockets connected together.
Type:
(?domain : socket_domain, ?type : socket_type, ?protocol : int) -> socket
Arguments:
domain
(of typesocket_domain
, which defaults tosocket.domain.inet
): Socket domain.type
(of typesocket_type
, which defaults tosocket.type.stream
): Socket typeprotocol
(of typeint
, which defaults to0
): Protocol type.0
selects the default protocol for that kind of sockets.
Methods:
close
(of type() -> unit
): Close the socket.non_blocking
(of type(bool) -> unit
): Set the non-blocking flag on the socketread
(of type((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Read data from a socket. Reading is done when the function returns an empty string""
.type
(of typestring
): Socket typewrite
(of type((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Write data to a socket
socket.type.dgram
Dgram socket type
Type:
socket_type
socket.type.raw
Raw socket type
Type:
socket_type
socket.type.stream
Stream socket type
Type:
socket_type
socket.unix
Create a unix socket.
Type:
(?domain : socket_domain, ?type : socket_type, ?protocol : int) -> socket
Arguments:
domain
(of typesocket_domain
, which defaults tosocket.domain.inet
): Socket domain.type
(of typesocket_type
, which defaults tosocket.type.stream
): Socket typeprotocol
(of typeint
, which defaults to0
): Protocol type.0
selects the default protocol for that kind of sockets.
Methods:
accept
(of type(?timeout : float?) -> socket .{ close : () -> unit, non_blocking : (bool) -> unit, read : ((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit }, type : string, write : ((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit } } * socket_address
): Accept connections on the given socket. The returned socket is a socket connected to the client; the returned address is the address of the connecting client. Timeout defaults to harbor’s accept_timeout ifnull
.bind
(of type(socket_address) -> unit
): Bind a socket to an address.close
(of type() -> unit
): Close the socket.connect
(of type(socket_address) -> unit
): Connect a socket to an address.listen
(of type(int) -> unit
): Set up a socket for receiving connection requests. The integer argument is the maximal number of pending requests.non_blocking
(of type(bool) -> unit
): Set the non-blocking flag on the socketread
(of type((?timeout : float?) -> string) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Read data from a socket. Reading is done when the function returns an empty string""
.type
(of typestring
): Socket typewrite
(of type((?timeout : float?, string) -> unit) .{wait : (?timeout : float?, (() -> unit)) -> unit}
): Write data to a socket
Liquidsoap
clock
Decorate a clock with all its methods.
Type:
(clock) -> clock
Arguments:
(unlabeled)
(of typeclock
)
Methods:
id
(of type() -> string
): The clock’s idself_sync
(of type() -> bool
):true
if the clock is in control of its latency.start
(of type(?force : bool) -> unit
): Start the clock.stop
(of type() -> unit
): Stop the clock. Does nothing if the clock is stopping or stopped.sync
(of type() -> string
): The clock’s current sync mode. One of:"stopped"
,"stopping"
,"auto"
,"CPU"
,"unsynced"
or"passive"
.tick
(of type() -> unit
): Animate the clock and run one tickticks
(of type() -> int
): The total number of times the clock has ticked.unify
(of type(clock) -> unit
): Unify the clock with another one. One of the two clocks should be in"stopped"
sync mode.
clock.active
Return the list of clocks currently in use.
Type:
() ->
[clock
.{
id : () -> string,
self_sync : () -> bool,
start : (?force : bool) -> unit,
stop : () -> unit,
sync : () -> string,
tick : () -> unit,
ticks : () -> int,
unify : (clock) -> unit
}]
clock.assign_new
Create a new clock and assign it to a list of sources.
Type:
(?sync : string, ?id : string?,
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit)?,
['a.{clock : clock}]) -> unit
Arguments:
sync
(of typestring
, which defaults to"auto"
): Synchronization mode. One of:"auto"
,"cpu"
,"passive"
or"none"
. Defaults to"auto"
, which synchronizes with the CPU clock if none of the active sources are attached to their own clock (e.g. ALSA input, etc)."cpu"
always synchronizes with the CPU clock."none"
removes all synchronization control.id
(of typestring?
, which defaults tonull
)on_error
(of type((error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit)?
, which defaults tonull
): Error callback executed when a streaming error occurs. When passed, all streaming errors are silenced. Intended mostly for debugging purposes.(unlabeled)
(of type['a.{clock : clock}]
)
clock.create
Create a new clock
Type:
(?id : string?,
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit)?,
?sync : string) -> clock
Arguments:
id
(of typestring?
, which defaults tonull
): Identifier for the new clock.on_error
(of type((error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit)?
, which defaults tonull
): Error callback executed when a streaming error occurs. When passed, all streaming errors are silenced. Intended mostly for debugging purposes.sync
(of typestring
, which defaults to"auto"
): Clock sync mode. Should be one of:"auto"
,"CPU"
,"unsynced"
or"passive"
. Defaults to"auto"
. Defaults to: “auto”
Methods:
id
(of type() -> string
): The clock’s idself_sync
(of type() -> bool
):true
if the clock is in control of its latency.start
(of type(?force : bool) -> unit
): Start the clock.stop
(of type() -> unit
): Stop the clock. Does nothing if the clock is stopping or stopped.sync
(of type() -> string
): The clock’s current sync mode. One of:"stopped"
,"stopping"
,"auto"
,"CPU"
,"unsynced"
or"passive"
.tick
(of type() -> unit
): Animate the clock and run one tickticks
(of type() -> int
): The total number of times the clock has ticked.unify
(of type(clock) -> unit
): Unify the clock with another one. One of the two clocks should be in"stopped"
sync mode.
decoder.add
Register an external decoder. The encoder should output in WAV format to his standard output (stdout) and read data from its standard input (stdin).
Type:
(name : string, description : string, ?mimes : [string],
?file_extensions : [string], ?priority : int, test : ((string) -> int),
string) -> unit
Arguments:
name
(of typestring
): Format/decoder’s name.description
(of typestring
): Description of the decoder.mimes
(of type[string]
, which defaults to[]
): List of mime types supported by this decoder. Empty means any mime type should be accepted.file_extensions
(of type[string]
, which defaults to[]
): List of file extensions. Empty means any file extension should be accepted.priority
(of typeint
, which defaults to1
): Decoder prioritytest
(of type(string) -> int
): Function used to determine if a file should be decoded by the decoder. Returned values are: 0: no decodable audio, -1: decodable audio but number of audio channels unknown, x: fixed number of decodable audio channels.(unlabeled)
(of typestring
): Process to start.
decoder.metadata.add
Register an external file metadata decoder.
Type:
(?priority : {int}, ?mime_types : [string]?, ?file_extensions : [string]?,
?reentrant : bool, string,
((metadata : [string * string], string) -> [string * string])) -> unit
Arguments:
priority
(of type{int}
, which defaults to1
): Resolver’s priority.mime_types
(of type[string]?
, which defaults tonull
): Decode files that match the mime types in this list. Accept any file ifnull
.file_extensions
(of type[string]?
, which defaults tonull
): Decode files that have the file extensions in this list. Accept any file ifnull
.reentrant
(of typebool
, which defaults tofalse
): Set totrue
to indicate that the decoder needs to resolve a request. Such decoders need to be mutually exclusive to avoid request resolution loops!(unlabeled)
(of typestring
): Format/resolver’s name.(unlabeled)
(of type(metadata : [string * string], string) -> [string * string]
): Process to start. The function takes the format and filename as argument and returns a list of (name,value) fields.
decoder.metadata.reentrant
Return the list of reentrant decoders.
Type:
() -> [string]
decoder.oblivious.add
Register an external file decoder. The encoder should output in WAV
format to his standard output (stdout) and read data from the file it
receives. The estimated remaining duration for this decoder will be
unknown until the buffer
last seconds of the file. If
possible, it is recommended to decode from stdin and use
decoder.add
.
Type:
(name : string, description : string, test : ((string) -> int),
?priority : int, ?mimes : [string], ?file_extensions : [string],
?buffer : float, ((string) -> string)) -> unit
Arguments:
name
(of typestring
): Format/decoder’s name.description
(of typestring
): Description of the decoder.test
(of type(string) -> int
): Function used to determine if a file should be decoded by the decoder. Returned values are: 0: no decodable audio, -1: decodable audio but number of audio channels unknown, x: fixed number of decodable audio channels.priority
(of typeint
, which defaults to1
): Decoder prioritymimes
(of type[string]
, which defaults to[]
): List of mime types supported by this decoder. Empty means any mime type should be accepted.file_extensions
(of type[string]
, which defaults to[]
): List of file extensions. Empty means any file extension should be accepted.buffer
(of typefloat
, which defaults to5.0
)(unlabeled)
(of type(string) -> string
): Process to start. The function takes the filename as argument and returns the process to start.
enable_autocue_metadata
Enable autocue metadata resolver. This resolver will process any file
decoded by Liquidsoap and add cue-in/out and crossfade metadata when
these values can be computed. This function sets
settings.request.prefetch
to 2
to account for
the latency introduced by the autocue
computation when
resolving reausts. For a finer-grained processing, use the
autocue:
protocol.
Type:
() -> unit
enable_external_faad_decoder
Enable or disable external FAAD (AAC/AAC+/M4A) decoders. Does not work on Win32. Please note that built-in support for faad is available in liquidsoap if compiled and should be preferred over the external decoder.
Type:
() -> unit
enable_external_ffmpeg_decoder
Enable ffmpeg decoder.
Type:
() -> unit
enable_external_flac_decoder
Enable external FLAC decoders. Please note that built-in support for FLAC is available in liquidsoap if compiled and should be preferred over the external decoder.
Type:
() -> unit
enable_external_mpc_decoder
Enable external Musepack decoder.
Type:
() -> unit
enable_replaygain_metadata
Enable ReplayGain metadata resolver. This resolver will process any
file decoded by Liquidsoap and add a replaygain_track_gain
metadata when this value could be computed. For a finer-grained replay
gain processing, use the replaygain:
protocol. Use this
setting to lower CPU peaks when computing replaygain tags.
Type:
(?compute : bool, ?ratio : float) -> unit
Arguments:
compute
(of typebool
, which defaults totrue
): Compute replaygain if metadata tag is empty.ratio
(of typefloat
, which defaults to50.0
): Decoding ratio. A value of50.
means try to decode the file50x
faster than real time, if possible.
encoder.content_type
Return the content-type (mime) of an encoder, if known.
Type:
(format('a)) -> string
Arguments:
(unlabeled)
(of typeformat('a)
)
encoder.extension
Return the file extension of an encoder, if known.
Type:
(format('a)) -> string
Arguments:
(unlabeled)
(of typeformat('a)
)
liquidsoap.chroot.make
Export all the files required to install liquidsoap in a root folder. Useful for packaging and docker images.
Type:
(string) -> unit
Arguments:
(unlabeled)
(of typestring
)
liquidsoap.executable
Path to the Liquidsoap executable.
Type:
string
liquidsoap.functions.count
Number of functions registered in the standard library.
Type:
() -> int
liquidsoap.version.at_least
Ensure that Liquidsoap version is greater or equal to given one.
Type:
(string) -> bool
Arguments:
(unlabeled)
(of typestring
): Minimal version.
log
Log a message.
Type:
(?label : string, ?level : int, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)level
(of typeint
, which defaults to3
)(unlabeled)
(of typestring
)
log.critical
Log a critical message
Type:
(?label : string, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)(unlabeled)
(of typestring
)
log.debug
Log a debug message
Type:
(?label : string, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)(unlabeled)
(of typestring
)
log.file
Get and set the file logging
Type:
() -> bool
log.important
Log an important message
Type:
(?label : string, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)(unlabeled)
(of typestring
)
log.info
Log a normal message
Type:
(?label : string, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)(unlabeled)
(of typestring
)
log.level
Get and set the log level.
Type:
() -> int
log.severe
Log a severe message
Type:
(?label : string, string) -> unit
Arguments:
label
(of typestring
, which defaults to"lang"
)(unlabeled)
(of typestring
)
log.stdout
Get and set logging to stdout
Type:
() -> bool
playlist.parse
Try to parse a local playlist. Return a list of (metadata,URI) items, where metadata is a list of (key,value) bindings.
Type:
(?path : string, ?mime : string?, string) -> [[string * string] * string]
Arguments:
path
(of typestring
, which defaults to""
): Default path for files.mime
(of typestring?
, which defaults tonull
): Mime type for the playlist(unlabeled)
(of typestring
)
playlist.parse.cue
Parse CUE playlists
Type:
(string, ?pwd : string?) -> [[string * string] * string]
Arguments:
(unlabeled)
(of typestring
): Playlist filepwd
(of typestring?
, which defaults tonull
): Current directory to use for relative file path.
playlist.parse.m3u
Parse M3U playlists
Type:
(string, ?pwd : string?) -> [[string * string] * string]
Arguments:
(unlabeled)
(of typestring
): Playlist filepwd
(of typestring?
, which defaults tonull
): Current directory to use for relative file path.
playlist.parse.register
Register a new playlist parser. An empty playlist is considered as a failure to resolve.
Type:
(format : string, strict : bool,
((?pwd : string, string) -> [[string * string] * string])) -> unit
Arguments:
format
(of typestring
): Playlist format. If possible, a mime-type.strict
(of typebool
): True if playlist format can be detected unambiguously.(unlabeled)
(of type(?pwd : string, string) -> [[string * string] * string]
): Playlist parser
playlist.parse.scpls
Parse SCPLS playlists
Type:
(string, ?pwd : string?) -> [[string * string] * string]
Arguments:
(unlabeled)
(of typestring
): Playlist filepwd
(of typestring?
, which defaults tonull
): Current directory to use for relative file path.
playlist.parse.xml
Parse XML playlists
Type:
(string, ?pwd : string?) -> [[string * string] * string]
Arguments:
(unlabeled)
(of typestring
): Playlist filepwd
(of typestring?
, which defaults tonull
): Current directory to use for relative file path.
process.uri
Create a process: uri, replacing :
with
$(colon)
.
Type:
(?timeout : 'a?, extname : 'b, ?uri : string, string) -> string
Arguments:
timeout
(of type'a?
, which defaults tonull
)extname
(of type'b
): Output file extension (with no leading ‘.’)uri
(of typestring
, which defaults to""
): Input uri(unlabeled)
(of typestring
): Command line to execute
profiler.disable
Record profiling statistics.
Type:
() -> unit
profiler.enable
Record profiling statistics.
Type:
() -> unit
profiler.print
Print profiling information.
Type:
() -> unit
profiler.run
Time a function with the profiler.
Type:
(string, (() -> 'a)) -> 'a
Arguments:
(unlabeled)
(of typestring
): Name of the profiled function.(unlabeled)
(of type() -> 'a
): Function to profile.
profiler.stats.string
Profiling statistics.
Type:
() -> string
prometheus.latency
Monitor a source’s internal latencies on Prometheus
Type:
(?window : float, ?prefix : string, labels : [string]) ->
(label_values : [string], source('a)) -> unit
Arguments:
window
(of typefloat
, which defaults to5.0
): Window over which mean and peak metrics are reported.prefix
(of typestring
, which defaults to"liquidsoap_"
): Prefix for the metric’s namelabels
(of type[string]
): labels for the metric
protocol.add
Register a new protocol.
Type:
(?temporary : bool, ?static : ((string) -> bool), ?syntax : string,
?doc : string, string,
((rlog : ((string) -> unit), maxtime : float, string) -> string?)) -> unit
Arguments:
temporary
(of typebool
, which defaults tofalse
): if true, file is removed when it is finished.static
(of type(string) -> bool
, which defaults tofun (_) -> false
): When given an uri for the protocol, if it returnstrue
, then requests can be resolved once and for all. Typically, static protocols can be used to create infallible sources.syntax
(of typestring
, which defaults to"Undocumented"
): URI syntax.doc
(of typestring
, which defaults to"Undocumented"
): Protocol documentation.(unlabeled)
(of typestring
): Protocol name. Resolver will be called on uris of the form:<protocol name>:...
.(unlabeled)
(of type(rlog : ((string) -> unit), maxtime : float, string) -> string?
): Protocol resolver. Receives a function to log protocol resolution, the<arg>
in<protocol name>:<arg>
and the max delay that resolution should take.
protocol.count
Number of registered protocols.
Type:
() -> int
request.all
Return all the requests currently available.
Type:
() -> [request]
request.create
Create a request from an URI.
Type:
(?cue_in_metadata : string?, ?cue_out_metadata : string?, ?persistent : bool,
?resolve_metadata : bool, ?excluded_metadata_resolvers : [string],
?temporary : bool, string) -> request
Arguments:
cue_in_metadata
(of typestring?
, which defaults to"liq_cue_in"
): Metadata for cue in points. Disabled ifnull
.cue_out_metadata
(of typestring?
, which defaults to"liq_cue_out"
): Metadata for cue out points. Disabled ifnull
.persistent
(of typebool
, which defaults tofalse
): Indicate that the request is persistent, i.e. that it may be used again once it has been played.resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.excluded_metadata_resolvers
(of type[string]
, which defaults to[]
): List of metadata resolves to exclude when resolving metadata.temporary
(of typebool
, which defaults tofalse
): Indicate that the request is a temporary file: it will be destroyed after being played.(unlabeled)
(of typestring
)
request.destroy
Destroying a request causes any temporary associated file to be deleted, and releases its RID. Persistent requests resist to destroying, unless forced.
Type:
(?force : bool, request) -> unit
Arguments:
force
(of typebool
, which defaults tofalse
): Destroy the request even if it is persistent.(unlabeled)
(of typerequest
)
request.duration
Compute the duration in seconds of audio data contained in a request.
The computation may be expensive. Returns null
if
computation failed, typically if the file was not recognized as valid
audio.
Type:
(?resolvers : [string]?, ?resolve_metadata : bool,
?metadata : [string * string], ?timeout : float?, string) -> float?
Arguments:
resolvers
(of type[string]?
, which defaults tonull
): Set to a list of resolvers to only resolve duration using a specific decoder.resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.duration.ffmpeg
Compute the duration in seconds of audio data contained in a request
using the ffmpeg decoder. The computation may be expensive. Returns
null
if computation failed, typically if the file was not
recognized as valid audio.
Type:
(?resolve_metadata : bool, ?metadata : [string * string], ?timeout : float?,
string) -> float?
Arguments:
resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.duration.flac
Compute the duration in seconds of audio data contained in a request
using the flac decoder. The computation may be expensive. Returns
null
if computation failed, typically if the file was not
recognized as valid audio.
Type:
(?resolve_metadata : bool, ?metadata : [string * string], ?timeout : float?,
string) -> float?
Arguments:
resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.duration.mad
Compute the duration in seconds of audio data contained in a request
using the mad decoder. The computation may be expensive. Returns
null
if computation failed, typically if the file was not
recognized as valid audio.
Type:
(?resolve_metadata : bool, ?metadata : [string * string], ?timeout : float?,
string) -> float?
Arguments:
resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.duration.ogg_flac
Compute the duration in seconds of audio data contained in a request
using the ogg_flac decoder. The computation may be expensive. Returns
null
if computation failed, typically if the file was not
recognized as valid audio.
Type:
(?resolve_metadata : bool, ?metadata : [string * string], ?timeout : float?,
string) -> float?
Arguments:
resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.duration.wav/aiff
Compute the duration in seconds of audio data contained in a request
using the wav/aiff decoder. The computation may be expensive. Returns
null
if computation failed, typically if the file was not
recognized as valid audio.
Type:
(?resolve_metadata : bool, ?metadata : [string * string], ?timeout : float?,
string) -> float?
Arguments:
resolve_metadata
(of typebool
, which defaults totrue
): Set tofalse
to prevent metadata resolution on this request.metadata
(of type[string * string]
, which defaults to[]
): Optional metadata used to decode the file, e.g.ffmpeg_options
.timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of request resolution. Defaults tosettings.request.timeout
whennull
.(unlabeled)
(of typestring
)
request.filename
Return a valid local filename if the request is ready, and the empty string otherwise.
Type:
(request) -> string
Arguments:
(unlabeled)
(of typerequest
)
request.id
Identifier of a request.
Type:
(request) -> int
Arguments:
(unlabeled)
(of typerequest
)
request.is_static
true
if the given URI is assumed to be static, e.g. a
file.
Type:
(string) -> bool
Arguments:
(unlabeled)
(of typestring
)
request.log
Get log data associated to a request.
Type:
(request) -> string
Arguments:
(unlabeled)
(of typerequest
)
request.metadata
Get the metadata associated to a request.
Type:
(request) -> [string * string]
Arguments:
(unlabeled)
(of typerequest
)
request.resolve
Resolve a request, i.e. attempt to get a valid local file. The operation can take some time. Return true if the resolving was successful, false otherwise (timeout or invalid URI).
Type:
(?timeout : float?, ?content_type : source('a)?, request) -> bool
Arguments:
timeout
(of typefloat?
, which defaults tonull
): Limit in seconds to the duration of the request resolution. Defaults tosettings.request.timeout
whennull
.content_type
(of typesource('a)?
, which defaults tonull
): Check that the request can decode content suitable for the given source.(unlabeled)
(of typerequest
)
request.resolved
Check if a request is resolved, i.e. is associated to a valid local file.
Type:
(request) -> bool
Arguments:
(unlabeled)
(of typerequest
)
request.status
Current status of a request. Can be idle, resolving, ready, playing or destroyed.
Type:
(request) -> string
Arguments:
(unlabeled)
(of typerequest
)
request.uri
Initial URI of a request.
Type:
(request) -> string
Arguments:
(unlabeled)
(of typerequest
)
runtime.cpu.usage_getter
Create a function returning CPU usage (in float
percent
so 0.2
means 20%
) since the last time it was
called.
Type:
() -> () -> {system : float, total : float, user : float}
runtime.gc.compact
Perform a full major collection and compact the heap. Note that heap compaction is a lengthy operation.
Type:
() -> unit
runtime.gc.full_major
Trigger full major garbage collection.
Type:
() -> unit
runtime.gc.major
Trigger a minor collection and finish the current major collection cycle..
Type:
() -> unit
runtime.gc.major_slice
Do a minor collection and a slice of major collection. The optional
argument n
is the size of the slice: the GC will do enough
work to free (on average) n
words of memory. If
0
(its default), the GC will try to do enough work to
ensure that the next automatic slice has no work to do.
Type:
(?int) -> unit
Arguments:
(unlabeled)
(of typeint
, which defaults to0
): Size of the slice
runtime.gc.minor
Trigger full minor garbage collection.
Type:
() -> unit
seconds_of_main
Convert a number of main ticks in seconds.
Type:
(int) -> float
Arguments:
(unlabeled)
(of typeint
)
server.execute
Execute a liquidsoap server command.
Type:
(string, ?string) -> [string]
Arguments:
(unlabeled)
(of typestring
): Command to execute.(unlabeled)
(of typestring
, which defaults to""
): Argument for the command.
track.clock
Return the clock associated with the given track.
Type:
('a) -> clock where 'a is a track
Arguments:
(unlabeled)
(of typeanything that is a track
)
List
_::_
Add an element at the top of a list.
Type:
('a, ['a]) -> ['a]
Arguments:
(unlabeled)
(of type'a
)(unlabeled)
(of type['a]
)
_[_]
l[k] returns the first v such that (k,v) is in the list l (or “” if no such v exists).
Type:
(['a * string], 'a) -> string where 'a is an orderable type
Arguments:
(unlabeled)
(of type['a * string] where 'a is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
list.add
Add an element at the top of a list.
Type:
('a, ['a]) -> ['a]
Arguments:
(unlabeled)
(of type'a
)(unlabeled)
(of type['a]
)
list.append
Concatenate two lists.
Type:
(['a], ['a]) -> ['a]
Arguments:
(unlabeled)
(of type['a]
)(unlabeled)
(of type['a]
)
list.assoc
Associate a value to a key in an association list. This functions
raises error.not_found
if no default value is
specified.
Type:
(?default : 'a?, 'b, ['b * 'a]) -> 'a where 'b is an orderable type
Arguments:
default
(of type'a?
, which defaults tonull
): Value returned if the key is not found.(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of type['b * 'a] where 'b is an orderable type
)
list.assoc.filter
Keep only the elements of an association list satisfying a given predicate.
Type:
((('a, 'b) -> bool), ['a * 'b]) -> ['a * 'b]
Arguments:
(unlabeled)
(of type('a, 'b) -> bool
)(unlabeled)
(of type['a * 'b]
)
list.assoc.filter_map
Map a function of every element of the associative list, removing the
entry if the function returns null
.
Type:
((('a, 'b) -> 'c?), ['a * 'b]) -> ['c]
Arguments:
(unlabeled)
(of type('a, 'b) -> 'c?
)(unlabeled)
(of type['a * 'b]
)
list.assoc.mem
list.assoc.mem(key,l)
returns true
if
l
contains a pair (key,value).
Type:
('a, ['a * 'b]) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
): Key to look for.(unlabeled)
(of type['a * 'b] where 'a is an orderable type
): List of pairs (key,value).
list.assoc.nullable
Associate a value to a key in an association list. This functions is
similar to list.assoc
excepting that it returns
null
if no value exists for the key.
Type:
('a, ['a * 'b?]) -> 'b? where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of type['a * 'b?] where 'a is an orderable type
)
list.assoc.remove
Remove the first pair from an associative list.
Type:
('a, ['a * 'b]) -> ['a * 'b] where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
): Key of pair to be removed.(unlabeled)
(of type['a * 'b] where 'a is an orderable type
): List of pairs (key,value).
list.assoc.remove.all
Remove all pairs with given key from an associative list.
Type:
('a, ['a * 'b]) -> ['a * 'b] where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
): Key of pairs to be removed.(unlabeled)
(of type['a * 'b] where 'a is an orderable type
): List of pairs (key,value).
list.case
Define a function by case analysis, depending on whether a list is empty or not.
Type:
(['a], 'b, (('a, ['a]) -> 'b)) -> 'b
Arguments:
(unlabeled)
(of type['a]
): List to perform case analysis on.(unlabeled)
(of type'b
): Result when the list is empty.(unlabeled)
(of type('a, ['a]) -> 'b
): Result when the list is non-empty.
list.cons
Add an element at the top of a list.
Type:
('a, ['a]) -> ['a]
Arguments:
(unlabeled)
(of type'a
)(unlabeled)
(of type['a]
)
list.dcase
“Delayed” version of list.case
where the value on empty
list is only evaluated if necessary.
Type:
(['a], (() -> 'b), (('a, ['a]) -> 'b)) -> 'b
Arguments:
(unlabeled)
(of type['a]
)(unlabeled)
(of type() -> 'b
)(unlabeled)
(of type('a, ['a]) -> 'b
)
list.exists
Check that a predicate is satisfied for some element in a list.
Type:
((('a) -> bool), ['a]) -> bool
Arguments:
(unlabeled)
(of type('a) -> bool
): Predicate.(unlabeled)
(of type['a]
): List
list.filter
Filter a list according to a predicate. The order in which elements are handled is not specified (and is currently implemented from the right).
Type:
(?remove : (('a) -> unit), (('a) -> bool), ['a]) -> ['a]
Arguments:
remove
(of type('a) -> unit
, which defaults tofun (_) -> ()
): Function called on an element when it is removed.(unlabeled)
(of type('a) -> bool
): Predicate indicating whether an element should be kept or not.(unlabeled)
(of type['a]
): List to filter.
list.filter_map
Map a function on a list (like list.map
) excepting that
the value is removed if the function returns null
.
Type:
((('a) -> 'b?), ['a]) -> ['b]
Arguments:
(unlabeled)
(of type('a) -> 'b?
): Function called on every element of the list.(unlabeled)
(of type['a]
): The list.
list.find
First element satisfying a predicate. Raises
error.not_found
if not element is found and no default
value was specified.
Type:
(?default : 'a?, (('a) -> bool), ['a]) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
): Returned value when the predicate is not found.(unlabeled)
(of type('a) -> bool
): Predicate.(unlabeled)
(of type['a]
): List
list.flatten
Concatenate all the elements of a list of lists.
Type:
([['a]]) -> ['a]
Arguments:
(unlabeled)
(of type[['a]]
)
list.fold
Fold a function on every element of a list:
list.fold(f,x1,[e1,..,en]) is f(...f(f(x1,e1),e2)...,en)
.
Type:
((('a, 'b) -> 'a), 'a, ['b]) -> 'a
Arguments:
(unlabeled)
(of type('a, 'b) -> 'a
): Functionf
for whichf(x,e)
which will be called on every elemente
with the current value ofx
, returning the new value ofx
.(unlabeled)
(of type'a
): Initial value x1, to be updated by successive calls off(x,e)
.(unlabeled)
(of type['b]
)
list.fold.right
Fold a function on every element of a list. Similar to
list.fold
but iterates from the right of the list. It is
slightly more efficient than list.fold
.
Type:
((('a, 'b) -> 'b), 'b, ['a]) -> 'b
Arguments:
(unlabeled)
(of type('a, 'b) -> 'b
): Functionf
for whichf(x,e)
which will be called on every elemente
with the current value ofx
, returning the new value ofx
.(unlabeled)
(of type'b
): Initial value x1, to be updated by successive calls off(x,e)
.(unlabeled)
(of type['a]
)
list.for_all
Check that a predicate is satisfied for every element in a list.
Type:
((('a) -> bool), ['a]) -> bool
Arguments:
(unlabeled)
(of type('a) -> bool
): Predicate.(unlabeled)
(of type['a]
): List
list.hd
Return the head (first element) of a list, or default
if
the list is empty.
Type:
(?default : 'a?, ['a]) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
): Default value if key does not exist.(unlabeled)
(of type['a]
)
list.ind
Define a function by induction on a list. This is slightly more efficient than defining a recursive function. The list is scanned from the right.
Type:
(['a], 'b, (('a, ['a], 'b) -> 'b)) -> 'b
Arguments:
(unlabeled)
(of type['a]
): List to perform induction on.(unlabeled)
(of type'b
): Result when the list is empty.(unlabeled)
(of type('a, ['a], 'b) -> 'b
): Result when the list is non-empty, given the current element, the tail and the result of the recursive call on the tail.
list.index
First index where a predicate is satisfied.
Type:
((('a) -> bool), ['a]) -> int
Arguments:
(unlabeled)
(of type('a) -> bool
): Predicate.(unlabeled)
(of type['a]
): List
list.indexed
Add indices to every element of a list, so that it can be accessed
with the notation l[n]
.
Type:
(['a]) -> [int * 'a]
Arguments:
(unlabeled)
(of type['a]
)
list.init
Initialize a list.
Type:
(int, ((int) -> 'a)) -> ['a]
Arguments:
(unlabeled)
(of typeint
): Number of elements in the list.(unlabeled)
(of type(int) -> 'a
): Function such thatf i
is thei
th element.
list.insert
Returns a copy of the given list with a new element inserted at a
given position. Raises error.not_found
if the list has less
than index
elements.
Type:
(int, 'a, ['a]) -> ['a]
Arguments:
(unlabeled)
(of typeint
): Index to insert at, starting at0
.(unlabeled)
(of type'a
): Element to insert(unlabeled)
(of type['a]
): List to insert into.
list.is_empty
Determining whether a list is empty or not.
Type:
(['a]) -> bool
Arguments:
(unlabeled)
(of type['a]
)
list.iter
Call a function on every element of a list.
Type:
((('a) -> unit), ['a]) -> unit
Arguments:
(unlabeled)
(of type('a) -> unit
)(unlabeled)
(of type['a]
)
list.iterator
Create an iterator over the elements of a list.
Type:
(['a?]) -> () -> 'a?
Arguments:
(unlabeled)
(of type['a?]
)
list.iteri
Call a function on every element of a list, along with its index.
Type:
(((int, 'a) -> unit), ['a]) -> unit
Arguments:
(unlabeled)
(of type(int, 'a) -> unit
)(unlabeled)
(of type['a]
)
list.last
Return the last element of a list.
Type:
(?default : 'a?, ['a]) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
)(unlabeled)
(of type['a]
)
list.length
Compute the length of a list, i.e., the number of its elements.
Type:
(['a]) -> int
Arguments:
(unlabeled)
(of type['a]
)
list.make
Create a list with given length, filled with given element.
Type:
(int, 'a) -> ['a]
Arguments:
(unlabeled)
(of typeint
): Number of elements in the list.(unlabeled)
(of type'a
): Element to fill the list with.
list.map
Map a function on every element of a list.
Type:
((('a) -> 'b), ['a]) -> ['b]
Arguments:
(unlabeled)
(of type('a) -> 'b
)(unlabeled)
(of type['a]
)
list.map.right
Map a function on every element of a list, starting from the right. This function is tail-recursive.
Type:
((('a) -> 'b), ['a]) -> ['b]
Arguments:
(unlabeled)
(of type('a) -> 'b
)(unlabeled)
(of type['a]
)
list.mapi
Map a function on every element of a list, along with its index.
Type:
(((int, 'a) -> 'b), ['a]) -> ['b]
Arguments:
(unlabeled)
(of type(int, 'a) -> 'b
)(unlabeled)
(of type['a]
)
list.mem
Check whether an element belongs to a list.
Type:
('a, ['a]) -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of type['a] where 'a is an orderable type
)
list.nth
Get the n-th element of a list (the first element is at position 0),
or default
if element does not exist.
Type:
(?default : 'a?, ['a], int) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
): Default element. Raiseserror.not_found
ifnull
and no element can be found in the list.(unlabeled)
(of type['a]
)(unlabeled)
(of typeint
)
list.pick
Pick a random element in a list.
Type:
(?default : 'a?, ['a]) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
): Value returned if the list is empty.(unlabeled)
(of type['a]
): List in which the element should be picked.
list.prefix
Compute the beginning of a list.
Type:
(int, ['a]) -> ['a]
Arguments:
(unlabeled)
(of typeint
): Number of elements in the returned list.(unlabeled)
(of type['a]
): List whose prefix should be taken.
list.remove
Remove the first occurrence of a value from a list.
Type:
('a, ['a]) -> ['a]
Arguments:
(unlabeled)
(of type'a
)(unlabeled)
(of type['a]
)
list.rev
Revert list order.
Type:
(['a]) -> ['a]
Arguments:
(unlabeled)
(of type['a]
)
list.shuffle
Shuffle the content of a list. The function returns a list with the same elements but in different, random, order.
Type:
(['a]) -> ['a]
Arguments:
(unlabeled)
(of type['a]
)
list.slice
Return the sublist of length length
starting with the
element at index offset
.
Type:
(?offset : int, ?length : int?, ['a]) -> ['a]
Arguments:
offset
(of typeint
, which defaults to0
): Index of the first element.length
(of typeint?
, which defaults tonull
): Length of the returned list. Include all elements fromoffset
ifnull
.(unlabeled)
(of type['a]
)
list.sort
Sort a list according to a comparison function.
Type:
((('a, 'a) -> int), ['a]) -> ['a]
Arguments:
(unlabeled)
(of type('a, 'a) -> int
): Comparison function f such that f(x,y)<0 when x<y, f(x,y)=0 when x=y, and f(x,y)>0 when x>y.(unlabeled)
(of type['a]
): List to sort.
list.sort.natural
Sort a list according to the “natural” order.
Type:
(['a]) -> ['a] where 'a is an orderable type
Arguments:
(unlabeled)
(of type['a] where 'a is an orderable type
): List to sort
list.tl
Return the list without its first element.
Type:
(['a]) -> ['a]
Arguments:
(unlabeled)
(of type['a]
)
Math
*
Multiplication of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
+
Addition of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
-
Subtraction of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
/
Division of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
abs
Absolute value.
Type:
('a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)
acos
Arc cosine. The argument must fall within the range [-1.0, 1.0]. Result is in radians and is between 0.0 and pi.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
asin
Arc sine. The argument must fall within the range [-1.0, 1.0]. Result is in radians and is between -pi/2 and pi/2.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
atan
Arc tangent. Result is in radians and is between -pi/2 and pi/2.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
bool_of_float
Convert a float to a bool.
Type:
(float) -> bool
Arguments:
(unlabeled)
(of typefloat
)
bool_of_int
Convert an int to a bool.
Type:
(int) -> bool
Arguments:
(unlabeled)
(of typeint
)
ceil
Round above to an integer value. ceil(x)
returns the
least integer whose value is greater than or equal to x
.
The result is returned as a float.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
cos
Cosine. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
cosh
Hyperbolic cosine. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
dB_of_lin
Convert linear scale into decibels.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
exp
Exponential.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
float
Convert a number to a float.
Type:
('a) -> float where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)
float.is_infinite
Return true
if the floating point number is
infinite.
Type:
(float) -> bool
Arguments:
(unlabeled)
(of typefloat
)
float.is_nan
Return true
if the floating point number is
NaN
.
Type:
(float) -> bool
Arguments:
(unlabeled)
(of typefloat
)
float_of_int
Convert an int to a float.
Type:
(int) -> float
Arguments:
(unlabeled)
(of typeint
)
floor
Round below to an integer value. floor(x)
returns the
greatest integer whose value is less than or equal to x
.
The result is returned as a float.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
infinity
Float representation of infinity.
Type:
float
int
Convert a number to an integer.
Type:
('a, ?raise : bool) -> int where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)raise
(of typebool
, which defaults tofalse
): Raiseerror.invalid
if number isNaN
or+/-infinity
.
int_of_float
Convert a float to a int.
Type:
(float) -> int
Arguments:
(unlabeled)
(of typefloat
)
lin_of_dB
Convert decibels into linear scale.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
ln
Natural logarithm.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
log10
Base 10 logarithm.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
lsl
Logical shift left.
Type:
(int, int) -> int
Arguments:
(unlabeled)
(of typeint
): Number to shift.(unlabeled)
(of typeint
): Number of bits to shift.
lsr
Logical shift right.
Type:
(int, int) -> int
Arguments:
(unlabeled)
(of typeint
): Number to shift.(unlabeled)
(of typeint
): Number of bits to shift.
max
Compute the maximum of two values.
Type:
('a, 'a) -> 'a where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
max_int
Maximal representable integer.
Type:
int
min
Compute the minimum of two values.
Type:
('a, 'a) -> 'a where 'a is an orderable type
Arguments:
(unlabeled)
(of typeanything that is an orderable type
)(unlabeled)
(of typeanything that is an orderable type
)
min_int
Minimal representable integer.
Type:
int
mod
Remainder of division of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
nan
A special floating-point value denoting the result of an undefined
operation such as 0.0 /. 0.0. Stands for ‘not a number’. Any
floating-point operation with nan as argument returns nan as result. As
for floating-point comparisons, ==
, <
,
<=
, >
and >=
return
false
and !=
returns true
if one
or both of their arguments is nan
.
Type:
float
pow
Exponentiation of numbers.
Type:
('a, 'a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)(unlabeled)
(of typeanything that is a number type
)
random.float
Generate a random value between min
(included) and
max
(excluded).
Type:
(?min : float, ?max : float) -> float
Arguments:
min
(of typefloat
, which defaults to0.0
)max
(of typefloat
, which defaults to1.0
)
random.int
Generate a random value between min
(included) and
max
(excluded).
Type:
(?min : int, ?max : int) -> int
Arguments:
min
(of typeint
, which defaults to-536870911
)max
(of typeint
, which defaults to536870912
)
round
Rounds x
to the nearest integer with ties (fractional
values of 0.5
) rounded away from zero, regardless of the
current rounding direction. If x
is an integer,
+0.
, -0.
, nan
, or
infinite
, x
itself is returned.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
sign
Return 1.
if the argument is positive and
-1.
otherwise.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
sin
Sine. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
sinh
Hyperbolic sine. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
sqrt
Square root.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
tan
Tangent. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
tanh
Hyperbolic tangent. Argument is in radians.
Type:
(float) -> float
Arguments:
(unlabeled)
(of typefloat
)
~-
Returns the opposite of its argument.
Type:
('a) -> 'a where 'a is a number type
Arguments:
(unlabeled)
(of typeanything that is a number type
)
Metadata
file.cover
Obtain cover-art for a file. null
is returned in case
there is no such information.
Type:
(string) -> string
.{
color_depth? : int,
description? : string,
format? : string,
height? : int,
mime : string,
number_of_colors? : int?,
picture_type? : int,
width? : int}?
Arguments:
(unlabeled)
(of typestring
): File from which the cover should be obtained
metadata.artist
Extract artist from metadata.
Type:
([string * string]) -> string
Arguments:
(unlabeled)
(of type[string * string]
)
metadata.comment
Extract comment from metadata.
Type:
([string * string]) -> string
Arguments:
(unlabeled)
(of type[string * string]
)
metadata.cover
Extract cover from metadata. This function implements cover extraction for the following formats: coverart (ogg), apic (flac, mp3) and pic (mp3).
Type:
(?coverart_mime : string?, [string * string]) -> string
.{
color_depth? : int,
description? : string,
format? : string,
height? : int,
mime : string,
number_of_colors? : int?,
picture_type? : int,
width? : int}?
Arguments:
coverart_mime
(of typestring?
, which defaults tonull
): Mime type to use for"coverart"
metadata. Support disabled ifnull
.(unlabeled)
(of type[string * string]
): Metadata from which the cover should be extracted.
metadata.cover.remove
Remove cover metadata. This is mostly useful in order not to flood logs with coverart when logging metadata.
Type:
([string * string]) -> [string * string]
Arguments:
(unlabeled)
(of type[string * string]
)
metadata.deduplicate
Remove duplicate metadata in a source.
Type:
(?id : string?, ?using : [string]?, source('a)) -> source('a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"metadata.deduplicate"
): Source idusing
(of type[string]?
, which defaults tonull
): Labels to use to compare the metadata. Defaults to all of them whennull
.(unlabeled)
(of typesource('a) where 'a is a set of tracks to be muxed into a source
): source
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
metadata.export
Cleanup metadata for export. This is used to remove Liquidsoap’s
internal metadata entries before sending them. List of exported metadata
is set using settings.encoder.metadata.export.set
.
Type:
([string * string]) -> [string * string]
Arguments:
(unlabeled)
(of type[string * string]
)
metadata.filename
Extract filename from metadata.
Type:
([string * string]) -> string
Arguments:
(unlabeled)
(of type[string * string]
)
metadata.getter
Create a getter from a metadata: this is a string, whose value can be changed with a metadata.
Type:
(string, 'a, 'c.{on_metadata : (((['a * string]) -> unit)) -> 'b}) ->
() -> string where 'a is an orderable type
Arguments:
(unlabeled)
(of typestring
): Initial value.(unlabeled)
(of typeanything that is an orderable type
): Metadata on which the value should be updated.(unlabeled)
(of type'c.{on_metadata : (((['a * string]) -> unit)) -> 'b} where 'a is an orderable type
): Source containing the metadata.
metadata.getter.float
Create a float getter from a metadata: this is a float, whose value can be changed with a metadata.
Type:
(float, 'a, 'c.{on_metadata : (((['a * string]) -> unit)) -> 'b}) ->
() -> float where 'a is an orderable type
Arguments:
(unlabeled)
(of typefloat
): Initial value.(unlabeled)
(of typeanything that is an orderable type
): Metadata on which the value should be updated.(unlabeled)
(of type'c.{on_metadata : (((['a * string]) -> unit)) -> 'b} where 'a is an orderable type
): Source containing the metadata.
metadata.getter.source.float
Create a float getter from a metadata: this is a float, whose value can be changed with a metadata. This function also returns the source.
Type:
(float, string, source('a)) ->
source('a)
.{
buffered : () -> [string * float],
clock : clock,
duration : () -> float,
elapsed : () -> float,
fallible : bool,
id : () -> string,
is_active : () -> bool,
is_ready : () -> bool,
is_up : () -> bool,
last_metadata : () -> [string * string]?,
log :
{level : (() -> int?).{set : (int) -> unit}
},
on_metadata : ((([string * string]) -> unit)) -> unit,
on_shutdown : ((() -> unit)) -> unit,
on_track : ((([string * string]) -> unit)) -> unit,
on_wake_up : ((() -> unit)) -> unit,
register_command : (?usage : string?, description : string, string,
((string) -> string)) -> unit,
remaining : () -> float,
reset_last_metadata_on_track : (() -> bool)
.{set : (bool) -> unit
},
seek : (float) -> float,
self_sync : () -> bool,
skip : () -> unit,
time : () -> float
} * (() -> float)
Arguments:
(unlabeled)
(of typefloat
): Initial value.(unlabeled)
(of typestring
): Metadata on which the value should be updated.(unlabeled)
(of typesource('a)
): Source containing the metadata.
metadata.json.parse
Parse metadata from JSON object.
Type:
(string) -> [string * string] as json.object
Arguments:
(unlabeled)
(of typestring
)
metadata.json.stringify
Export metadata as JSON object. Cover art, if found, is extracted
using metadata.cover
and exported with key
"cover"
and exported using
string.data_uri.encode
.
Type:
(?coverart_mime : string?, ?base64 : bool, ?compact : bool, ?json5 : bool,
[string * string]) -> string
Arguments:
coverart_mime
(of typestring?
, which defaults tonull
): Mime type to use for"coverart"
metadata. Support disasbled ifnull
.base64
(of typebool
, which defaults totrue
)compact
(of typebool
, which defaults tofalse
): Output compact text.json5
(of typebool
, which defaults tofalse
): Use json5 extended spec.(unlabeled)
(of type[string * string]
)
metadata.replaygain
Extract the ReplayGain from the metadata (in dB).
Type:
([string * string]) -> float?
Arguments:
(unlabeled)
(of type[string * string]
): Metadata from which the ReplayGain should be extracted.
metadata.title
Extract title from metadata.
Type:
([string * string]) -> string
Arguments:
(unlabeled)
(of type[string * string]
)
string.apic.parse
Parse APIC ID3v2 tags (such as those obtained in the APIC tag from
file.metadata.id3v2
). The returned values are: mime,
picture type, description, and picture data.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
): APIC data.
Methods:
description
(of typestring
): Descriptionmime
(of typestring
): Mime typepicture_type
(of typeint
): Picture type
string.pic.parse
Parse PIC ID3v2 tags (such as those obtained in the PIC tag from
file.metadata.id3v2
). The returned values are: format,
picture type, description, and picture data.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
): PIC data.
Methods:
description
(of typestring
): Descriptionformat
(of typestring
): Picture formatpicture_type
(of typeint
): Picture type
track.metadata.deduplicate
Remove duplicate metadata in a track.
Type:
(?id : string?, ?using : [string]?, metadata) -> metadata
Arguments:
id
(of typestring?
, which defaults to"track.metadata.deduplicate"
)using
(of type[string]?
, which defaults tonull
): Labels to use to compare the metadata. Defaults to all of them whennull
.(unlabeled)
(of typemetadata
)
Programming
assert
Ensure that a condition is satisfied (raise
error.assertion
exception otherwise).
Type:
(bool) -> unit
Arguments:
(unlabeled)
(of typebool
): Condition which should be satisfied.
error.on_error
Register a callback to monitor errors raised during the execution of the program. The callback is allow to re-raise a different error if needed. The callback passed to this function is called on every errors, not just uncaught errors.
Type:
(((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit)) -> unit
Arguments:
(unlabeled)
(of type(error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit
)
error.raise
Raise an error.
Type:
(error, ?string) -> 'a
Arguments:
(unlabeled)
(of typeerror
): Error kind.(unlabeled)
(of typestring
, which defaults to""
): Description of the error.
error.register
Register an error of the given kind
Type:
(string) -> error
Arguments:
(unlabeled)
(of typestring
): Kind of the error
Methods:
kind
(of typestring
): Error kind.message
(of typestring
): Error message.trace
(of type[ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }]
): Error stacktrace.
failwith
Major failure.
Type:
(string) -> 'a
Arguments:
(unlabeled)
(of typestring
): Explanation about the failure.
fst
Get the first component of a pair.
Type:
(('a * 'b)) -> 'a
Arguments:
(unlabeled)
(of type'a * 'b
)
ignore
Convert anything to unit, preventing warnings.
Type:
('a) -> unit
Arguments:
(unlabeled)
(of type'a
)
memoize
Memoize the result of a function, making sure it is only executed once.
Type:
((() -> 'a)) -> () -> 'a where 'a is an orderable type
Arguments:
(unlabeled)
(of type() -> 'a where 'a is an orderable type
)
null
Create a nullable value.
Type:
(?'a?) -> 'a?
Arguments:
(unlabeled)
(of type'a?
, which defaults tonull
): Value to make nullable.
null.case
Return a result dending on whether a value is nothing or not.
Type:
('a?, (() -> 'b), (('a) -> 'b)) -> 'b
Arguments:
(unlabeled)
(of type'a?
): Value to reason by case analysis on.(unlabeled)
(of type() -> 'b
): Value to return in case we have nothing.(unlabeled)
(of type('a) -> 'b
): Value to return in case we have something.
null.default
Return a result dending on whether a value is nothing or not.
Type:
('a?, (() -> 'a)) -> 'a
Arguments:
(unlabeled)
(of type'a?
): Value to reason by case analysis on.(unlabeled)
(of type() -> 'a
): Value to return in case we have nothing.
null.defined
Determine whether a nullable value is not null.
Type:
('a?) -> bool
Arguments:
(unlabeled)
(of type'a?
)
null.find
Find the first element of a list for which the image of the function
is not null
. Raises error.not_found
if not
element is found and no default value was specified.
Type:
(?default : 'a??, (('b) -> 'a?), ['b]) -> 'a?
Arguments:
default
(of type'a??
, which defaults tonull
): Returned value when no element is found.(unlabeled)
(of type('b) -> 'a?
): Function.(unlabeled)
(of type['b]
): List.
null.get
Get the value of a nullable. Raises error.not_found
if
the value is null
and no default value was specified.
Type:
(?default : 'a?, 'a?) -> 'a
Arguments:
default
(of type'a?
, which defaults tonull
): Returned value when the value isnull
.(unlabeled)
(of type'a?
)
null.map
Apply a function on a nullable value if it is not null, and return null otherwise.
Type:
((('a) -> 'b?), 'a?) -> 'b?
Arguments:
(unlabeled)
(of type('a) -> 'b?
)(unlabeled)
(of type'a?
)
null.to_list
Convert a nullable value to a list containing zero or one element depending on whether the value is null or not.
Type:
('a?) -> ['a]
Arguments:
(unlabeled)
(of type'a?
)
position
Return the current position in the script
Type:
() -> unit
Methods:
cstart
(of typeint
): Starting charactercstop
(of typeint
): Stopping characterfilename
(of typestring
): Filenamelstart
(of typeint
): Starting linelstop
(of typeint
): Stopping lineto_string
(of type(?prefix : string) -> string
): Render as string
predicate.activates
Detect when a predicate becomes true.
Type:
(?init : bool, (() -> bool)) -> () -> bool
Arguments:
init
(of typebool
, which defaults tofalse
): Detect at beginning.(unlabeled)
(of type() -> bool
): Predicate.
predicate.at_most
Limit the number of times a predicate is true is a row.
Type:
(int, (() -> bool)) -> () -> bool
Arguments:
(unlabeled)
(of typeint
): Number of times the predicate is allowed to be true.(unlabeled)
(of type() -> bool
): Predicate.
predicate.changes
Detect when a predicate changes.
Type:
((() -> 'a)) -> () -> bool where 'a is an orderable type
Arguments:
(unlabeled)
(of type() -> 'a where 'a is an orderable type
): Predicate.
predicate.first
First occurrence of a predicate.
Type:
((() -> bool)) -> () -> bool
Arguments:
(unlabeled)
(of type() -> bool
): Predicate.
predicate.once
Become true once every time a predicate is true.
Type:
((() -> bool)) -> () -> bool
Arguments:
(unlabeled)
(of type() -> bool
): Predicate.
predicate.signal
Predicate which is true when a signal is sent. The returned predicate
has a method signal
to send the signal.
Type:
() -> () -> bool
Methods:
signal
(of type() -> unit
): Send a signal.
print
Print on standard output.
Type:
(?newline : bool, 'a) -> unit
Arguments:
newline
(of typebool
, which defaults totrue
): If true, a newline is added after displaying the value.(unlabeled)
(of type'a
)
ref
Create a reference, i.e. a value which can be modified.
Type:
('a) -> () -> 'a
Arguments:
(unlabeled)
(of type'a
)
Methods:
set
(of type('A) -> unit
): Set the value of the reference.
ref.getter
Create a getter from a reference (sometimes useful to remove the
set
method).
Type:
((() -> 'a).{set : ('a) -> unit}) -> () -> 'a
Arguments:
(unlabeled)
(of type(() -> 'a).{set : ('a) -> unit}
)
ref.incr
Increment a reference to an integer.
Type:
((() -> int).{set : (int) -> unit}) -> unit
Arguments:
(unlabeled)
(of type(() -> int).{set : (int) -> unit}
)
ref.make
Create a reference from a pair of get / set functions.
Type:
((() -> 'a), (('a) -> unit)) -> () -> 'a
Arguments:
(unlabeled)
(of type() -> 'a
): Function to retrieve the value of the reference.(unlabeled)
(of type('a) -> unit
): Function to change the value of the reference.
Methods:
set
(of type('A) -> unit
): Set the value of the reference.
ref.map
Map functions to a reference.
Type:
((('a) -> 'b), (('b) -> 'a), (() -> 'a).{set : ('a) -> unit}) -> () -> 'b
Arguments:
(unlabeled)
(of type('a) -> 'b
): Function to apply to the getter.(unlabeled)
(of type('b) -> 'a
): Function to apply to the setter.(unlabeled)
(of type(() -> 'a).{set : ('a) -> unit}
)
Methods:
set
(of type('A) -> unit
): Set the value of the reference.
snd
Get the second component of a pair.
Type:
(('a * 'b)) -> 'b
Arguments:
(unlabeled)
(of type'a * 'b
)
sqlite
Manipulate an SQLITE database.
Type:
(string) -> unit
Arguments:
(unlabeled)
(of typestring
): File where the data base is stored
Methods:
close
(of type() -> unit
): Close the database. It should not be accessed afterward.count
(of type(table : 'a, ?where : string) -> int
):delete
(of type(table : 'a, ?where : string) -> unit
):exec
(of type(string) -> unit
): Execute an SQL operation.insert
(of type((table : string, ?replace : bool, 'A) -> unit) .{list : (table : string, [string * string]) -> unit} where 'A is a record with int, float, string or null methods.
):iter
(of type(((sqlite.row.{to_list : () -> [string * string?]}) -> unit), string) -> unit
): Iterate a function over all the results of a query. Result can be parsed usinglet sqlite.row = ...
.query
(of type(string) -> [sqlite.row.{to_list : () -> [string * string?]}]
): Execute an SQL operation returning the result. Result can be parsed usinglet sqlite.query = ...
.select
(of type((table : 'a, ?string, ?where : string, ?limit : 'b?) -> [sqlite.row.{to_list : () -> [string * string?]}]) .{ iter : 'c.(((sqlite.row.{to_list : () -> [string * string?]}) -> unit), table : 'c, ?string, ?where : string) -> unit }
):table
(of type{ create : 'a.'b.'c.('a, ?preserve : bool, ['b * 'c]) -> unit, drop : 'a.('a, ?existing : bool) -> unit, exists : (string) -> string }
):
sqlite.escape
Escape a string for use in a query.
Type:
(string) -> string
Arguments:
(unlabeled)
(of typestring
): String to escape.
thread.delay
Delay the current thread by the given duration in seconds.
Type:
(float) -> unit
Arguments:
(unlabeled)
(of typefloat
)
thread.on_error
Register the function to be called when an error of the given kind is
raised in a thread. Catches all errors if first argument is
null
.
Type:
(error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}?,
((backtrace : string, error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit)) -> unit
Arguments:
(unlabeled)
(of typeerror .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }?
)(unlabeled)
(of type(backtrace : string, error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit
)
thread.pause
Pause execution for a given amount of seconds. This puts the calling thread to sleep and should not be used in the main streaming loop.
Type:
(float) -> unit
Arguments:
(unlabeled)
(of typefloat
): Number of seconds of pause.
thread.run
Run a function in a separate thread.
Type:
(?fast : bool, ?delay : float,
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit)?,
?every : {float}?, (() -> unit)) -> unit
Arguments:
fast
(of typebool
, which defaults totrue
): Whether the thread is supposed to return quickly or not. Typically, blocking tasks (e.g. fetching data over the internet) should not be considered to be fast. When set tofalse
its priority will be lowered below that of request resolutions and fast timeouts. This is only effective if you set a dedicated queue for fast tasks, see the “scheduler” settings for more details.delay
(of typefloat
, which defaults to0.0
): Delay (in seconds) after which the thread should be launched.on_error
(of type((error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit)?
, which defaults tonull
): Error callback executed when an error occurred while running the given function. When passed, all raised errors are silenced unless re-raised by the callback.every
(of type{float}?
, which defaults tonull
): How often (in seconds) the thread should be run. If negative ornull
, run once.(unlabeled)
(of type() -> unit
): Function to execute.
thread.run.recurrent
Run a recurrent function in a separate thread.
Type:
(?fast : bool, ?delay : float,
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> float)?,
(() -> float)) -> unit
Arguments:
fast
(of typebool
, which defaults totrue
): Whether the thread is supposed to return quickly or not. Typically, blocking tasks (e.g. fetching data over the internet) should not be considered to be fast. When set tofalse
its priority will be lowered below that of request resolutions and fast timeouts. This is only effective if you set a dedicated queue for fast tasks, see the “scheduler” settings for more details.delay
(of typefloat
, which defaults to0.0
): Delay (in sec.) after which the thread should be launched.on_error
(of type((error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> float)?
, which defaults tonull
): Error callback executed when an error occurred while running the given function. When passed, all raised errors are silenced unless re-raised by the callback.(unlabeled)
(of type() -> float
): Function to execute recurrently. The returned value is the delay (in sec.) in which the function should be run again (it won’t be run if the value is strictly negative).
thread.when
Execute a callback when a predicate is true
. The
predicate is checked every
seconds and the callback is
called when the predicate returns true
after having been
false
, following the same semantics as
predicate.activates
.
Type:
(?fast : bool, ?init : bool, ?every : {float}, ?once : bool, ?changed : bool,
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> float)?,
(() -> bool), (() -> 'a)) -> unit
Arguments:
fast
(of typebool
, which defaults totrue
): Whether the callback is supposed to return quickly or not.init
(of typebool
, which defaults totrue
): Detect at beginning.every
(of type{float}
, which defaults to0.5
): How often (in sec.) to check for the predicate.once
(of typebool
, which defaults tofalse
): Execute the function only once.changed
(of typebool
, which defaults totrue
): Execute the function only if the predicate was false when last checked.on_error
(of type((error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> float)?
, which defaults tonull
): Error callback executed when an error occurred while running the given function. When passed, all raised errors are silenced unless re-raised by the callback.(unlabeled)
(of type() -> bool
): Predicate indicating when to execute the function, typically a time interval such as{10h-10h30}
.(unlabeled)
(of type() -> 'a
): Function to execute when the predicate is true.
while
A while loop.
Type:
({bool}, (() -> unit)) -> unit
Arguments:
(unlabeled)
(of type{bool}
): Condition guarding the loop.(unlabeled)
(of type() -> unit
): Function to execute.
Settings
audio.channels
Channels for audio.
Type:
() -> int
audio.samplerate
Samplerate for audio.
Type:
() -> int
frame.duration
Duration of a frame.
Type:
() -> float
Source / Audio processing
add
Mix sources, with optional normalization. Only relay metadata from the first available source. Track marks are dropped from all sources.
Type:
(?id : string?, ?normalize : {bool}, ?power : {bool}, ?weights : [{float}],
[source('a)]) -> source('a)
where 'a is a set of internal tracks
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.normalize
(of type{bool}
, which defaults totrue
): Divide by the sum of weights of ready sources (or by the number of ready sources if weights are not specified).power
(of type{bool}
, which defaults tofalse
): Perform constant-power normalization.weights
(of type[{float}]
, which defaults to[]
): Relative weight of the sources in the sum. The empty list stands for the homogeneous distribution. These are used as amplification coefficients if we are not normalizing.(unlabeled)
(of type[source('a)] where 'a is a set of internal tracks
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
amplify
Multiply the amplitude of the signal.
Type:
(?id : string?, ?override : {string?}, {float}, source(audio='a, 'b)) ->
source(audio='a, 'b)
where 'b is a set of tracks to be muxed into a source,
'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
Arguments:
id
(of typestring?
, which defaults to"amplify"
): Force the value of the track ID.override
(of type{string?}
, which defaults to<fun>
): Specify the name of a metadata field that, when present and well-formed, overrides the amplification factor for the current track. Well-formed values are floats in decimal notation (e.g.0.7
) which are taken as normal/linear multiplicative factors; values can be passed in decibels with the suffixdB
(e.g.-8.2 dB
, but the spaces do not matter). Defaults tosettings.amplify.metadata
. Set tonull
to disable.(unlabeled)
(of type{float}
): Multiplicative factor.(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of tracks to be muxed into a source, 'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
audio.decode.pcm_f32
Decode audio track to pcm_f32
Type:
(?id : string?, source(audio=pcm_f32('a), 'b)) -> source(audio=pcm('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"audio.decode.pcm_f32"
)(unlabeled)
(of typesource(audio=pcm_f32('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
audio.decode.pcm_s16
Decode audio track to pcm_s16
Type:
(?id : string?, source(audio=pcm_s16('a), 'b)) -> source(audio=pcm('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"audio.decode.pcm_s16"
)(unlabeled)
(of typesource(audio=pcm_s16('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
audio.encode.pcm_f32
Encode audio track to pcm_f32
Type:
(?id : string?, source(audio=pcm('a), 'b)) -> source(audio=pcm_f32('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"audio.encode.pcm_f32"
)(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
audio.encode.pcm_s16
Encode audio track to pcm_s16
Type:
(?id : string?, source(audio=pcm('a), 'b)) -> source(audio=pcm_s16('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"audio.encode.pcm_s16"
)(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
autocue.register
Register an autocue
implementation.
Type:
(name : string,
((request_metadata : [string * string], file_metadata : [string * string],
string) ->
{
amplify? : string,
cue_in : float,
cue_out : float,
extra_metadata? : [string * string],
fade_in : float,
fade_in_curve? : float,
fade_in_type? : string,
fade_out : float,
fade_out_curve? : float,
fade_out_type? : string,
start_next? : float}?)) -> unit
Arguments:
name
(of typestring
): Name of the implementation(unlabeled)
(of type(request_metadata : [string * string], file_metadata : [string * string], string) -> { amplify? : string, cue_in : float, cue_out : float, extra_metadata? : [string * string], fade_in : float, fade_in_curve? : float, fade_in_type? : string, fade_out : float, fade_out_curve? : float, fade_out_type? : string, start_next? : float}?
)
clip
Clip samples, i.e. ensure that all values are between -1
and 1
: values lower than -1
become
-1
and values higher than 1
become
1
. nan
values become 0
.
Type:
(?id : string?, source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"clip"
): Force the value of the track ID.(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
delay_line
Delay the audio signal by a given amount of time.
Type:
(?id : string?, {float}, source(audio=pcm('a), 'b)) -> source(audio=pcm('a),
'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of type{float}
): Duration of the delay in seconds.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
dtmf.detect
Detect DTMF tones.
Type:
(?id : string?, ?bands : int, ?debug : {bool}, ?duration : {float},
?smoothing : {float}, ?threshold : {float}, source(audio=pcm('a), 'b),
((string) -> unit)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.bands
(of typeint
, which defaults to1024
): Number of frequency bands.debug
(of type{bool}
, which defaults tofalse
): Show internal values on standard output in order to fine-tune parameters: band number, band frequency, detected intensity and smoothed intensity.duration
(of type{float}
, which defaults to0.05
): Duration for detecting a tone.smoothing
(of type{float}
, which defaults to0.01
): Smoothing time (in seconds) for band indensity (the higher, the less sensitive we are to local variations, but the more time we take to detect a band).threshold
(of type{float}
, which defaults to50.0
): Threshold for detecting a band.(unlabeled)
(of typesource(audio=pcm('a), 'b)
): Source on which DTMF tones should be detected.(unlabeled)
(of type(string) -> unit
): Function called with detected key as argument.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
echo
Add echo.
Type:
(?id : string?, ?delay : {float}, ?feedback : {float}, ?ping_pong : bool,
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.delay
(of type{float}
, which defaults to0.5
): Delay in seconds.feedback
(of type{float}
, which defaults to-6.0
): Feedback coefficient in dB (negative).ping_pong
(of typebool
, which defaults tofalse
): Use ping-pong delay.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
file.autocue.metadata
Return the file’s autocue values as metadata suitable for metadata override.
Type:
(request_metadata : [string * string], string) -> [string * string]
Arguments:
request_metadata
(of type[string * string]
)(unlabeled)
(of typestring
)
filter
Perform several kinds of filtering on the signal. Only frequencies
below the sampling rate / 4 (generally 10 kHz) are handled well for the
freq
parameter.
Type:
(?id : string?, freq : {float}, mode : string, ?q : {float},
?wetness : {float}, source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.freq
(of type{float}
): Characteristic frequency of the filter.mode
(of typestring
): Available modes are ‘low’ (for low-pass filter), ‘high’ (for high-pass filter), ‘band’ (for band-pass filter) and ‘notch’ (for notch / band-stop / band-rejection filter).q
(of type{float}
, which defaults to1.0
)wetness
(of type{float}
, which defaults to1.0
): How much of the original signal should be added (1. means only filtered and 0. means only original signal).(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.fir
Low-pass FIR filter.
Type:
(?id : string?, beta : float, ?coeffs : int, frequency : float,
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.beta
(of typefloat
): Beta should range between 0 and 1.coeffs
(of typeint
, which defaults to255
): Number of coefficientsfrequency
(of typefloat
): Corner frequency in Hz (frequency at which the response is 0.5, that is -6 dB).(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.butterworth.bandpass
IIR filter
Type:
(?id : string?, frequency1 : float, frequency2 : float, ?order : int,
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency1
(of typefloat
): First corner frequencyfrequency2
(of typefloat
): Second corner frequencyorder
(of typeint
, which defaults to4
): Filter order(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.butterworth.bandstop
IIR filter
Type:
(?id : string?, frequency1 : float, frequency2 : float, ?order : int,
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency1
(of typefloat
): First corner frequencyfrequency2
(of typefloat
): Second corner frequencyorder
(of typeint
, which defaults to4
): Filter order(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.butterworth.high
IIR filter
Type:
(?id : string?, frequency : float, ?order : int, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of typefloat
): Corner frequencyorder
(of typeint
, which defaults to4
): Filter order(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.butterworth.low
IIR filter
Type:
(?id : string?, frequency : float, ?order : int, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of typefloat
): Corner frequencyorder
(of typeint
, which defaults to4
): Filter order(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.allpass
All-pass biquad filter.
Type:
(?id : string?, ?bandwidth : {float}, frequency : {float}, source('a)) ->
source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.bandwidth
(of type{float}
, which defaults to0.333333333333
): Bandwidth (in octaves)frequency
(of type{float}
): Center frequency(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.bandpass
Band-pass biquad filter.
Type:
(?id : string?, frequency : {float}, ?q : {float}, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Center frequencyq
(of type{float}
, which defaults to1.0
): Q(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.high
High-pass biquad filter.
Type:
(?id : string?, frequency : {float}, ?q : {float}, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Corner frequencyq
(of type{float}
, which defaults to1.0
): Q(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.highshelf
High shelf biquad filter.
Type:
(?id : string?, frequency : {float}, ?slope : {float}, source('a)) ->
source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Center frequencyslope
(of type{float}
, which defaults to1.0
): Shelf slope (in dB/octave)(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.low
Low-pass biquad filter.
Type:
(?id : string?, frequency : {float}, ?q : {float}, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Corner frequencyq
(of type{float}
, which defaults to1.0
): Q(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.lowshelf
Low shelf biquad filter.
Type:
(?id : string?, frequency : {float}, ?slope : {float}, source('a)) ->
source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Corner frequencyslope
(of type{float}
, which defaults to1.0
): Shelf slope (dB/octave)(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.notch
Band-pass biquad filter.
Type:
(?id : string?, frequency : {float}, ?q : {float}, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Center frequencyq
(of type{float}
, which defaults to1.0
): Q(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.eq.peak
Peak EQ biquad filter.
Type:
(?id : string?, frequency : {float}, ?gain : {float}, ?q : {float},
source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Center frequencygain
(of type{float}
, which defaults to1.0
): Gain (in dB)q
(of type{float}
, which defaults to1.0
): Q(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.resonator.allpass
IIR filter
Type:
(?id : string?, frequency : float, ?q : float, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of typefloat
): Corner frequencyq
(of typefloat
, which defaults to60.0
): Quality factor(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.resonator.bandpass
IIR filter
Type:
(?id : string?, frequency : float, ?q : float, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of typefloat
): Corner frequencyq
(of typefloat
, which defaults to60.0
): Quality factor(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.iir.resonator.bandstop
IIR filter
Type:
(?id : string?, frequency : float, ?q : float, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of typefloat
): Corner frequencyq
(of typefloat
, which defaults to60.0
): Quality factor(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
filter.rc
First-order filter (RC filter).
Type:
(?id : string?, frequency : {float}, mode : string, ?wetness : {float},
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.frequency
(of type{float}
): Cutoff frequency.mode
(of typestring
): Available modes are ‘low’ (for low-pass filter), ‘high’ (for high-pass filter).wetness
(of type{float}
, which defaults to1.0
): How much of the original signal should be added (1. means only filtered and 0. means only original signal).(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
flanger
Flanger effect.
Type:
(?id : string?, ?delay : float, ?feedback : {float}, ?freq : {float},
?phase : {float}, source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.delay
(of typefloat
, which defaults to0.001
): Delay in seconds.feedback
(of type{float}
, which defaults to0.0
): Feedback coefficient in dB.freq
(of type{float}
, which defaults to0.5
): Frequency in Hz.phase
(of type{float}
, which defaults to1.0
): Phase difference between channels in radians.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
gate
Reduce the volume when the stream is silent (typically in order to avoid low intensity noise).
Type:
(?id : string?, ?attack : {float}, ?hold : {float}, ?range : {float},
?release : {float}, ?threshold : {float}, ?window : {float},
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.attack
(of type{float}
, which defaults to10.0
): Time to fully open the gate (ms).hold
(of type{float}
, which defaults to1000.0
): Minimum amount of time the gate stays open (ms).range
(of type{float}
, which defaults to-30.0
): Difference between closed and open level (dB).release
(of type{float}
, which defaults to2000.0
): Time to fully close the gate (ms).threshold
(of type{float}
, which defaults to-30.0
): Threshold at which the gate will open (dB).window
(of type{float}
, which defaults to1.0
): Duration for computing peak (ms).(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.gate
(of type() -> float
): Position of the gate (0. means closed, 1. means open).id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
normalize
Normalization the volume of a stream (this is also called
automatic gain control). Dynamic normalization of the signal is
sometimes the only option (for instance, for live sources), and can make
a listening experience much nicer. However, its dynamic aspect implies
some limitations which can go as far as creating saturation in some
extreme cases. If possible, consider using some track-based
normalization techniques such as those based on ReplayGain. The
implementation of Liquidsoap < 2.0 was renamed to
normalize.old
.
Type:
(?id : string?, ?target : {float}, ?up : {float}, ?down : {float},
?gain_min : float, ?gain_max : float, ?lufs : bool, ?lookahead : {float},
?window : {float}, ?threshold : {float}, ?track_sensitive : bool,
?enabled : {bool}, ?debug : float??, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.target
(of type{float}
, which defaults to-13.0
): Desired RMS (dB).up
(of type{float}
, which defaults to10.0
): Characteristic time to go up.down
(of type{float}
, which defaults to0.1
): Characteristic time to go down.gain_min
(of typefloat
, which defaults to-12.0
): Minimal gain value (dB).gain_max
(of typefloat
, which defaults to12.0
): Maximal gain value (dB).lufs
(of typebool
, which defaults tofalse
): Use LUFS instead of RMS to compute intensity.lookahead
(of type{float}
, which defaults to0.0
): How much time to look ahead of the signal (second). Setting a positive value delays the output by the corresponding amount of time.window
(of type{float}
, which defaults to0.5
): Duration of the window used to compute the current RMS power (second).threshold
(of type{float}
, which defaults to-40.0
): Minimal RMS for activaing gain control (dB).track_sensitive
(of typebool
, which defaults totrue
)enabled
(of type{bool}
, which defaults totrue
): Whether normalization is enabled or not.debug
(of typefloat??
, which defaults tonull
): How often to print debug messages, in seconds, useful to finetune the parameters. You should setset("log.level", 5)
to see them.(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
): Source to normalize.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.gain
(of type() -> float
): Current amplification coefficient (in linear scale).id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.rms
(of type() -> float
): Current rms (in linear scale).seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.target_gain
(of type() -> float
): Current target amplification coefficient (in linear scale).time
(of type() -> float
): Get a source’s time, based on its assigned clock.
normalize.old
Normalize the signal. Dynamic normalization of the signal is
sometimes the only option, and can make a listening experience much
nicer. However, its dynamic aspect implies some limitations which can go
as far as creating saturation in some extreme cases. If possible,
consider using some track-based normalization techniques such as those
based on replay gain. See the documentation for more details. This is
the implementation provided in Liquidsoap < 2.0. A new, better and
more customizable one is now given in normalize
.
Type:
(?id : string?, ?gain_max : {float}, ?gain_min : {float}, ?k_down : {float},
?k_up : {float}, ?target : {float}, ?threshold : {float},
?track_sensitive : bool, ?window : float, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.gain_max
(of type{float}
, which defaults to6.0
): Maximal gain value (dB).gain_min
(of type{float}
, which defaults to-6.0
): Minimal gain value (dB).k_down
(of type{float}
, which defaults to0.1
): Coefficient when the power must go down (between 0 and 1, slowest to fastest).k_up
(of type{float}
, which defaults to0.005
): Coefficient when the power must go up (between 0 and 1, slowest to fastest).target
(of type{float}
, which defaults to-13.0
): Desired RMS (dB).threshold
(of type{float}
, which defaults to-40.0
): Minimal RMS for activaing gain control (dB).track_sensitive
(of typebool
, which defaults totrue
): Reset values on every track.window
(of typefloat
, which defaults to0.1
): Duration of the window used to compute the current RMS power (second).(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.gain
(of type() -> float
): Current amplification coefficient.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.rms
(of type() -> float
): Current RMS.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
peak
Get current peak volume of the source. Returns the source with a
method peak
to compute the current peak volume of the
source, with 0.0 <= peak volume <= 1.0
.
Type:
(?id : string?, ?duration : {float}, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of type{float}
, which defaults to0.5
): Duration of the window (in seconds). A value <= 0, means that computation should not be performed.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.peak
(of type() -> float
): Current value for the peak volume.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
peak.stereo
Get current peak volume of the source. Returns the source with a
method peak
to compute the current peak volume of the
source, with 0.0 <= peak volume <= 1.0
.
Type:
(?id : string?, ?duration : {float}, source(audio=pcm(stereo), 'a)) ->
source(audio=pcm(stereo), 'a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of type{float}
, which defaults to0.5
): Duration of the window (in seconds). A value <= 0, means that computation should not be performed.(unlabeled)
(of typesource(audio=pcm(stereo), 'a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.peak
(of type() -> float * float
): Current value for the peak volume.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
pipe
Process audio signal through a given process stdin/stdout.
Type:
(?id : string?, ?buffer : float, ?data_length : int?, ?max : float,
process : string, ?replay_delay : float?, ?restart : bool,
?restart_on_error : bool, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to1.0
): Duration of the pre-buffered data.data_length
(of typeint?
, which defaults tonull
): Length passed in the WAV data chunk. Data is streamed so no the consuming program should process it as it comes. Some program operate better when this value is set to0
, some other when it is set to the maximum length allowed by the WAV specs. Use any negative value to set to maximum length.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.process
(of typestring
): Process used to pipe data to.replay_delay
(of typefloat?
, which defaults tonull
): Replay track marks and metadata from the input source on the output after a given delay. Ifnull
(default) close and flush the process on each track and metadata to get an exact timing. This parameter is typically used when integrating withstereotool
.restart
(of typebool
, which defaults totrue
): Restart process when exited.restart_on_error
(of typebool
, which defaults totrue
): Restart process when exited with error.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
replaygain
Amplify source tracks according to replaygain metadata. This operator
does not compute itself the replaygain: you can use either
enable_replaygain_metadata
or the replaygain:
protocol for this.
Type:
(?id : string?, source(audio='a, 'b)) -> source(audio='a, 'b)
where 'b is a set of tracks to be muxed into a source,
'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of tracks to be muxed into a source, 'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
): Source to be amplified.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
rms
Get current RMS volume of the source. Returns the source with a
method rms
to compute the current RMS volume of the source,
with 0.0 <= RMS volume <= 1.0
.
Type:
(?id : string?, ?duration : {float}, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of type{float}
, which defaults to0.5
): Duration of the window (in seconds). A value <= 0, means that computation should not be performed.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.rms
(of type() -> float
): Current value for the RMS volume.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
rms.stereo
Get current RMS volume of the source. Returns the source with a
method rms
to compute the current RMS volume of the source,
with 0.0 <= RMS volume <= 1.0
.
Type:
(?id : string?, ?duration : {float}, source(audio=pcm(stereo), 'a)) ->
source(audio=pcm(stereo), 'a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of type{float}
, which defaults to0.5
): Duration of the window (in seconds). A value <= 0, means that computation should not be performed.(unlabeled)
(of typesource(audio=pcm(stereo), 'a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.rms
(of type() -> float * float
): Current value for the RMS volume.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
sine.detect
Detect sine waves.
Type:
(?id : string?, ?bands : int, ?debug : {bool}, ?duration : {float},
?smoothing : {float}, ?threshold : {float}, [float], source(audio=pcm('a),
'b), ((float) -> unit)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.bands
(of typeint
, which defaults to1024
): Number of frequency bands.debug
(of type{bool}
, which defaults tofalse
): Show internal values on standard output in order to fine-tune parameters: band number, band frequency, detected intensity and smoothed intensity.duration
(of type{float}
, which defaults to0.5
): Duration for detecting a tone.smoothing
(of type{float}
, which defaults to0.01
): Smoothing time (in seconds) for band indensity (the higher, the less sensitive we are to local variations, but the more time we take to detect a band).threshold
(of type{float}
, which defaults to50.0
): Threshold for detecting a band.(unlabeled)
(of type[float]
): List of frequencies to detect.(unlabeled)
(of typesource(audio=pcm('a), 'b)
): Source on which sines should be detected.(unlabeled)
(of type(float) -> unit
): Function called with detected frequency as argument.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
soundtouch
Change the rate, the tempo or the pitch of the sound.
Type:
(?id : string?, ?pitch : {float}, ?rate : {float}, ?tempo : {float},
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.pitch
(of type{float}
, which defaults to1.0
)rate
(of type{float}
, which defaults to1.0
)tempo
(of type{float}
, which defaults to1.0
)(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
source.replaygain.compute
Compute the ReplayGain of the source. Data is accumulated until the
gain
method is called, i.e. the gain is computed
after the source has been played..
Type:
(?id : string?, source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.gain
(of type() -> float
): Suggested gain (in dB).id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.peak
(of type() -> float
): Peak sample.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset
(of type() -> unit
): Reset ReplayGain computation.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.ms.decode
Decode mid+side stereo (M/S) to left+right stereo.
Type:
(?id : string?, ?width : float, source(audio=pcm(stereo), 'a)) ->
source(audio=pcm(stereo), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.ms.decode"
): Force the value of the track ID.width
(of typefloat
, which defaults to1.0
): Width of the stereo field.(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.ms.encode
Encode left+right stereo to mid+side stereo (M/S).
Type:
(?id : string?, source(audio=pcm(stereo), 'a)) -> source(audio=pcm(stereo),
'a) where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.ms.encode"
): Force the value of the track ID.(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.pan
Pan a stereo sound.
Type:
(?id : string?, ?field : {float}, {float}, source(audio=pcm(stereo), 'a)) ->
source(audio=pcm(stereo), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.pan"
): Force the value of the track ID.field
(of type{float}
, which defaults to90.0
): Field width in degrees (between 0 and 90).(unlabeled)
(of type{float}
): Pan value. Should be between-1
(left side) and1
(right side).(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.width
Spacializer which allows controlling the width of the signal.
Type:
(?id : string?, ?{float}, source(audio=pcm(stereo), 'a)) ->
source(audio=pcm(stereo), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.width"
)(unlabeled)
(of type{float}
, which defaults to0.0
): Width of the signal (-1: mono, 0.: original, 1.: wide stereo).(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereotool
Process an audio source using stereotool
Type:
(?id : string?, library_file : string, ?license_key : string?,
?preset : string?, ?load_type : string, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults to"stereotool"
): Force the value of the track ID.library_file
(of typestring
): Path to the shared library file.license_key
(of typestring?
, which defaults tonull
)preset
(of typestring?
, which defaults tonull
): Path to a preset file to load when initializing the operator.load_type
(of typestring
, which defaults to"totalinit"
): Load type for preset. One of: “totalinit”, “all_settings”, “audiofm”, “audio”, “processing”, “repair”, “repair_no_pnr” or “sublevel_pnr”.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
api_version
(of type() -> int
): API version.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.latency
(of type() -> float
): Get the operator’s latency.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.software_version
(of type() -> int
): Software version.time
(of type() -> float
): Get a source’s time, based on its assigned clock.unlincensed_used_features
(of type() -> string?
): Check if the license is valid for the current settings.valid_license
(of type() -> bool
): Check if the license is valid for the current settings.
stretch
Slow down or accelerate an audio stream by stretching (sounds lower) or squeezing it (sounds higher).
Type:
(?id : string?, ratio : {float}, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults to"stretch"
): Force the value of the track ID.ratio
(of type{float}
): A value higher than 1 means slowing down.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
Source / Conversion
ffmpeg.decode.audio
Decode a source’s audio content
Type:
(?id : string?, source(audio=ffmpeg.copy('a), 'b)) -> source(audio=pcm('c))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.decode.audio"
)(unlabeled)
(of typesource(audio=ffmpeg.copy('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.decode.audio_video
Decode a source’s audio and video content
Type:
(?id : string?, source(audio=ffmpeg.copy('a), video=ffmpeg.copy('b), 'c)) ->
source(audio=pcm('d), video=canvas('e))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.decode.audio_video"
)(unlabeled)
(of typesource(audio=ffmpeg.copy('a), video=ffmpeg.copy('b), 'c)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.decode.video
Decode a source’s video content
Type:
(?id : string?, source(video=ffmpeg.copy('a), 'b)) ->
source(video=canvas('c))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.decode.video"
)(unlabeled)
(of typesource(video=ffmpeg.copy('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.encode.audio
Encode a source’s audio content
Type:
(?id : string?, format(audio=pcm('a), 'b), source(audio=pcm('a), 'c)) ->
source(audio=ffmpeg.copy('d))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.encode.audio"
)(unlabeled)
(of typeformat(audio=pcm('a), 'b)
)(unlabeled)
(of typesource(audio=pcm('a), 'c)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.encode.audio_video
Encode a source’s audio and video content
Type:
(?id : string?, format(audio=pcm('a), video=canvas('b), 'c),
source(audio=pcm('a), video=canvas('b), 'd)) ->
source(audio=ffmpeg.copy('e), video=ffmpeg.copy('f))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.encode.audio_video"
)(unlabeled)
(of typeformat(audio=pcm('a), video=canvas('b), 'c)
)(unlabeled)
(of typesource(audio=pcm('a), video=canvas('b), 'd)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.encode.video
Encode a source’s video content
Type:
(?id : string?, format(video=canvas('a), 'b), source(video=canvas('a), 'c)) ->
source(video=ffmpeg.copy('d))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.encode.video"
)(unlabeled)
(of typeformat(video=canvas('a), 'b)
)(unlabeled)
(of typesource(video=canvas('a), 'c)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.decode.audio
Decode a source’s audio content
Type:
(?id : string?, source(audio=ffmpeg.audio.raw('a), 'b)) ->
source(audio=pcm('c))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.decode.audio"
)(unlabeled)
(of typesource(audio=ffmpeg.audio.raw('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.decode.audio_video
Decode a source’s audio and video content
Type:
(?id : string?, source(audio=ffmpeg.audio.raw('a),
video=ffmpeg.video.raw('b), 'c)) -> source(audio=pcm('d), video=canvas('e))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.decode.audio_video"
)(unlabeled)
(of typesource(audio=ffmpeg.audio.raw('a), video=ffmpeg.video.raw('b), 'c)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.decode.video
Decode a source’s video content
Type:
(?id : string?, source(video=ffmpeg.video.raw('a), 'b)) ->
source(video=canvas('c))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.decode.video"
)(unlabeled)
(of typesource(video=ffmpeg.video.raw('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.encode.audio
Encode a source’s audio content
Type:
(?id : string?, format(audio=ffmpeg.audio.raw('a), 'b), source(audio=pcm('c),
'd)) -> source(audio=ffmpeg.audio.raw('a))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.encode.audio"
)(unlabeled)
(of typeformat(audio=ffmpeg.audio.raw('a), 'b)
)(unlabeled)
(of typesource(audio=pcm('c), 'd)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.encode.audio_video
Encode a source’s audio and video content
Type:
(?id : string?, format(audio=ffmpeg.audio.raw('a),
video=ffmpeg.video.raw('b), 'c), source(audio=pcm('d), video=canvas('e),
'f)) -> source(audio=ffmpeg.audio.raw('a), video=ffmpeg.video.raw('b))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.encode.audio_video"
)(unlabeled)
(of typeformat(audio=ffmpeg.audio.raw('a), video=ffmpeg.video.raw('b), 'c)
)(unlabeled)
(of typesource(audio=pcm('d), video=canvas('e), 'f)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
ffmpeg.raw.encode.video
Encode a source’s video content
Type:
(?id : string?, format(video=ffmpeg.video.raw('a), 'b),
source(video=canvas('c), 'd)) -> source(video=ffmpeg.video.raw('a))
Arguments:
id
(of typestring?
, which defaults to"ffmpeg.raw.encode.video"
)(unlabeled)
(of typeformat(video=ffmpeg.video.raw('a), 'b)
)(unlabeled)
(of typesource(video=canvas('c), 'd)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
mean
Produce mono audio by taking the mean of all audio channels.
Type:
(?id : string?, ?normalize : bool, source(audio=pcm('a), 'b)) ->
source(audio=pcm(mono), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"mean"
): Force the value of the track ID.normalize
(of typebool
, which defaults totrue
): Divide the output volume by the number of channels.(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo
Convert any pcm audio source into a stereo source.
Type:
(?id : string?, source(audio=pcm('a), 'b)) -> source(audio=pcm(stereo), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo"
)(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.left
Extract the left channel of a stereo source
Type:
(?id : string?, source(audio=pcm(stereo), 'a)) -> source(audio=pcm(mono), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.left"
)(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
): Source to extract from
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
stereo.right
Extract the right channel of a stereo source
Type:
(?id : string?, source(audio=pcm(stereo), 'a)) -> source(audio=pcm(mono), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults to"stereo.right"
)(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
): Source to extract from
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
swap
Swap two channels of a stereo source.
Type:
(?string?, source(audio=pcm(stereo), 'a)) -> source(audio=pcm(stereo), 'a)
where 'a is a set of tracks to be muxed into a source
Arguments:
(unlabeled)
(of typestring?
, which defaults to"swap"
)(unlabeled)
(of typesource(audio=pcm(stereo), 'a) where 'a is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
track.audio.stereo.left
Extract the left channel of a stereo track
Type:
(?id : string?, pcm(stereo)) -> pcm(mono)
Arguments:
id
(of typestring?
, which defaults to"track.audio.stereo.left"
)(unlabeled)
(of typepcm(stereo)
): Track to extract from
track.audio.stereo.right
Extract the right channel of a stereo track
Type:
(?id : string?, pcm(stereo)) -> pcm(mono)
Arguments:
id
(of typestring?
, which defaults to"track.audio.stereo.right"
)(unlabeled)
(of typepcm(stereo)
): Track to extract from
Source / FFmpeg filter
ffmpeg.filter.audio.input
Attach an audio track to a filter’s input
Type:
(?id : string?, ?pass_metadata : bool, ffmpeg.filter.graph,
ffmpeg.audio.raw('a)) -> ffmpeg.filter.audio
Arguments:
id
(of typestring?
, which defaults tonull
)pass_metadata
(of typebool
, which defaults totrue
): Pass liquidsoap’s metadata to this stream(unlabeled)
(of typeffmpeg.filter.graph
)(unlabeled)
(of typeffmpeg.audio.raw('a)
)
ffmpeg.filter.create
Configure and launch a filter graph
Type:
(((ffmpeg.filter.graph) -> 'a)) -> 'a
Arguments:
(unlabeled)
(of type(ffmpeg.filter.graph) -> 'a
)
ffmpeg.filter.video.input
Attach a video track to a filter’s input
Type:
(?id : string?, ?pass_metadata : bool, ffmpeg.filter.graph,
ffmpeg.video.raw('a)) -> ffmpeg.filter.video
Arguments:
id
(of typestring?
, which defaults tonull
)pass_metadata
(of typebool
, which defaults totrue
): Pass liquidsoap’s metadata to this stream(unlabeled)
(of typeffmpeg.filter.graph
)(unlabeled)
(of typeffmpeg.video.raw('a)
)
Source / Fade
cross
Cross operator, allowing the composition of the n last seconds of a track with the beginning of the next track, using a transition function depending on the relative power of the signal before and after the end of track.
Type:
(?id : string?, ?assume_autocue : bool?, ?duration : {float},
?end_duration : {float}?, ?override_duration : string,
?override_end_duration : string, ?override_max_start_duration : string,
?override_start_duration : string, ?persist_override : bool,
?start_duration : {float}?, ?width : float, ?deduplicate : bool,
((
{
db_level : float,
metadata : [string * string],
source : source(audio=pcm('a),
'b)
},
{
db_level : float,
metadata : [string * string],
source : source(audio=pcm('a),
'b)
}) -> source(audio=pcm('a), 'b)),
source(audio=pcm('a), 'b)) -> source(audio=pcm('a), 'b)
where 'b is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.assume_autocue
(of typebool?
, which defaults tonull
): Assume that a track has autocue enabled when all four cue in/out and fade in/out override metadata are present. Defaults tosettings.crossfade.assume_autocue
whennull
.duration
(of type{float}
, which defaults to5.0
): Duration (in seconds) of buffered data from the end and start of each track that is used to compute the transition between tracks.end_duration
(of type{float}?
, which defaults tonull
): Duration (in seconds) of buffered data from the end of each track that is used to compute the transition between tracks.override_duration
(of typestring
, which defaults to"liq_cross_duration"
): Metadata field which, if present and containing a float, overrides the ‘duration’ parameter for current track.override_end_duration
(of typestring
, which defaults to"liq_cross_end_duration"
): Metadata field which, if present and containing a float, overrides the ‘end_duration’ parameter for current track.override_max_start_duration
(of typestring
, which defaults to"liq_cross_max_start_duration"
): Metadata field which, if present and containing a float, informs the crossfade of the maximum start duration. When not present, it is assumed to be0.
.override_start_duration
(of typestring
, which defaults to"liq_cross_start_duration"
): Metadata field which, if present and containing a float, overrides the ‘start_duration’ parameter for current track.persist_override
(of typebool
, which defaults tofalse
): Keep duration override on track change.start_duration
(of type{float}?
, which defaults tonull
): Duration (in seconds) of buffered data from the start of each track that is used to compute the transition between tracks.width
(of typefloat
, which defaults to2.0
): Width of the power computation window.deduplicate
(of typebool
, which defaults totrue
): Crossfade transitions can generate duplicate metadata. Whentrue
, the operator removes duplicate metadata from the returned source.(unlabeled)
(of type( { db_level : float, metadata : [string * string], source : source(audio=pcm('a), 'b) }, { db_level : float, metadata : [string * string], source : source(audio=pcm('a), 'b) }) -> source(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
): Transition function, composing from the end of a track and the next track. The sources corresponding to the two tracks are decorated with fields indicating the power of the signal before and after the transition (power
), and the metadata (metadata
).(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source
)
Methods:
buffered
(of type() -> [string * float]
):clock
(of typeclock
): The source’s clockduration
(of type() -> float
):elapsed
(of type() -> float
): Elapsed time in the current track.end_duration
(of type() -> float
):fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.start_duration
(of type() -> float
):time
(of type() -> float
): Get a source’s time, based on its assigned clock.
cross.simple
Simple transition for crossfade
Type:
(?log : ((string) -> unit), ?fade_in : float, ?fade_out : float,
?initial_fade_in_metadata : [string * string],
?initial_fade_out_metadata : [string * string], source(audio='a, 'b),
source(audio='a, 'b)) -> source(audio='a, 'b)
where
'b is a set of tracks to be muxed into a source and a set of internal tracks,
'a is a track of type: pcm, pcm_s16 or pcm_f32 and a track and a track of type: pcm, pcm_s16, pcm_f32, canvas, metadata or track_marks
Arguments:
log
(of type(string) -> unit
, which defaults to<fun>
): Logging utilityfade_in
(of typefloat
, which defaults to3.0
): Fade-in duration, if any.fade_out
(of typefloat
, which defaults to3.0
): Fade-out duration, if any.initial_fade_in_metadata
(of type[string * string]
, which defaults to[]
): Initial fade-in metadatainitial_fade_out_metadata
(of type[string * string]
, which defaults to[]
): Initial fade-out metadata(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of tracks to be muxed into a source and a set of internal tracks, 'a is a track of type: pcm, pcm_s16 or pcm_f32 and a track and a track of type: pcm, pcm_s16, pcm_f32, canvas, metadata or track_marks
): Ending track(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of tracks to be muxed into a source and a set of internal tracks, 'a is a track of type: pcm, pcm_s16 or pcm_f32 and a track and a track of type: pcm, pcm_s16, pcm_f32, canvas, metadata or track_marks
): Starting track
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
crossfade
Crossfade between tracks, taking the respective volume levels into account in the choice of the transition.
Type:
(?id : string?, ?start_duration : {float}?, ?end_duration : {float}?,
?duration : {float}, ?override_start_duration : string,
?override_end_duration : string, ?override_duration : string,
?persist_override : bool, ?width : float, ?fade_in : float,
?fade_out : float, ?deduplicate : bool, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
where
'b is a set of tracks to be muxed into a source and a set of internal tracks
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.start_duration
(of type{float}?
, which defaults tonull
): Duration (in seconds) of buffered data from the start of each track that is used to compute the transition between tracks.end_duration
(of type{float}?
, which defaults tonull
): Duration (in seconds) of buffered data from the end of each track that is used to compute the transition between tracks.duration
(of type{float}
, which defaults to5.0
): Duration (in seconds) of buffered data from the end and start of each track that is used to compute the transition between tracks.override_start_duration
(of typestring
, which defaults to"liq_cross_start_duration"
): Metadata field which, if present and containing a float, overrides the ‘start_duration’ parameter for current track.override_end_duration
(of typestring
, which defaults to"liq_cross_end_duration"
): Metadata field which, if present and containing a float, overrides the ‘end_duration’ parameter for current track.override_duration
(of typestring
, which defaults to"liq_cross_duration"
): Metadata field which, if present and containing a float, overrides the ‘duration’ parameter for current track.persist_override
(of typebool
, which defaults tofalse
): Keep duration override on track change.width
(of typefloat
, which defaults to2.0
): Width of the power computation window.fade_in
(of typefloat
, which defaults to3.0
)fade_out
(of typefloat
, which defaults to3.0
)deduplicate
(of typebool
, which defaults totrue
): Crossfade transitions can generate duplicate metadata. Whentrue
, the operator removes duplicate metadata from the returned source.(unlabeled)
(of typesource(audio=pcm('a), 'b) where 'b is a set of tracks to be muxed into a source and a set of internal tracks
): The input source.
Methods:
buffered
(of type() -> [string * float]
):clock
(of typeclock
): The source’s clockduration
(of type() -> float
):elapsed
(of type() -> float
): Elapsed time in the current track.end_duration
(of type() -> float
):fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.start_duration
(of type() -> float
):time
(of type() -> float
): Get a source’s time, based on its assigned clock.
fade.in
Fade the beginning of tracks.
Type:
(?id : string, ?duration : float?, ?delay : float, ?curve : float?,
?override_duration : string, ?override_type : string,
?override_curve : string, ?override_delay : string,
?persist_overrides : bool, ?track_sensitive : bool,
?initial_metadata : [string * string], ?type : string?, source(audio='a,
'b)) -> source(audio='a, 'b)
where
'b is a set of internal tracks and a set of tracks to be muxed into a source,
'a is a track of type: pcm, pcm_s16, pcm_f32, canvas, metadata or track_marks and a track and a track of type: pcm, pcm_s16 or pcm_f32
Arguments:
id
(of typestring
, which defaults to"fade.in"
): Force the value of the source ID.duration
(of typefloat?
, which defaults tonull
): Duration of the fading. This value can be set on a per-file basis using the metadata field passed as override. Defaults tosettings.fade.in.duration
ifnull
.delay
(of typefloat
, which defaults to0.0
): Initial delay before starting fade.curve
(of typefloat?
, which defaults tonull
): Fade curve. Defaults tosettings.fade.in.curve
ifnull
.override_duration
(of typestring
, which defaults to"liq_fade_in"
): Metadata field which, if present and containing a float, overrides the ‘duration’ parameter for the current track.override_type
(of typestring
, which defaults to"liq_fade_in_type"
): Metadata field which, if present and correct, overrides the ‘type’ parameter for the current track.override_curve
(of typestring
, which defaults to"liq_fade_in_curve"
): Metadata field which, if presents and correct, overrides thecurve
parameter for the current track. Use"default"
to set to default value.override_delay
(of typestring
, which defaults to"liq_fade_in_delay"
): Metadata field which, if presents and correct, overrides the initial fade delay.persist_overrides
(of typebool
, which defaults tofalse
): Keep duration and type overrides on track change.track_sensitive
(of typebool
, which defaults tofalse
): Be track sensitive (iffalse
we only fade in once at the beginning of the track).initial_metadata
(of type[string * string]
, which defaults to[]
): Initial metadata.type
(of typestring?
, which defaults tonull
): Fader shape. One of: “lin”“,”sin”, “log” or “exp”. Defaults tosettings.fade.in.type
ifnull
.(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of internal tracks and a set of tracks to be muxed into a source, 'a is a track of type: pcm, pcm_s16, pcm_f32, canvas, metadata or track_marks and a track and a track of type: pcm, pcm_s16 or pcm_f32
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fade_delay
(of type() -> float
):fade_duration
(of type() -> float
):fade_type
(of type() -> string
):fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
fade.out
Fade the end of tracks.
Type:
(?id : string, ?duration : float?, ?delay : float, ?curve : float?,
?override_duration : string, ?override_type : string,
?override_curve : string, ?override_delay : string,
?persist_overrides : bool, ?track_sensitive : bool,
?initial_metadata : [string * string], ?type : string?, source(audio='a,
'b)) -> source(audio='a, 'b)
where 'b is a set of tracks to be muxed into a source,
'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
Arguments:
id
(of typestring
, which defaults to"fade.out"
): Force the value of the source ID.duration
(of typefloat?
, which defaults tonull
): Duration of the fading. This value can be set on a per-file basis using the metadata field passed as override. Defaults tosettings.fade.out.curve
ifnull
.delay
(of typefloat
, which defaults to0.0
): Initial delay before starting fade. Defaults tosettings.fade.out.delay
ifnull
.curve
(of typefloat?
, which defaults tonull
): Fade curve. Defaults tosettings.fade.out.curve
ifnull
.override_duration
(of typestring
, which defaults to"liq_fade_out"
): Metadata field which, if present and containing a float, overrides the ‘duration’ parameter for the current track.override_type
(of typestring
, which defaults to"liq_fade_out_type"
): Metadata field which, if present and correct, overrides the ‘type’ parameter for the current track.override_curve
(of typestring
, which defaults to"liq_fade_out_curve"
): Metadata field which, if presents and correct, overrides thecurve
parameter for the current track. Use"default"
to set to default value.override_delay
(of typestring
, which defaults to"liq_fade_out_delay"
): Metadata field which, if presents and correct, overrides the initial fade delay.persist_overrides
(of typebool
, which defaults tofalse
): Keep duration and type overrides on track change.track_sensitive
(of typebool
, which defaults tofalse
): Be track sensitive (iffalse
we only fade ou once at the beginning of the track).initial_metadata
(of type[string * string]
, which defaults to[]
): Initial metadata.type
(of typestring?
, which defaults tonull
): Fader shape. One of: “lin”“,”sin”, “log” or “exp”. Defaults tosettings.fade.out.type
ifnull
.(unlabeled)
(of typesource(audio='a, 'b) where 'b is a set of tracks to be muxed into a source, 'a is a track and a track of type: pcm, pcm_s16 or pcm_f32
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fade_duration
(of type() -> float
):fade_type
(of type() -> string
):fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
mkfade
Make a fade function based on a source’s clock.
Type:
(?curve : float?, ?type : string, ?start : float, ?stop : float,
?delay : float, ?duration : float, ?on_done : (() -> unit), source('a)) ->
() -> float
Arguments:
curve
(of typefloat?
, which defaults tonull
): Fade curve for"log"
and"exp"
shapes. Ifnull
, depends on the type of fade. The higher the value, the shaper the curve.type
(of typestring
, which defaults to"lin"
): Fade shape. One of:"sin"
,"exp"
,"log"
,"lin"
start
(of typefloat
, which defaults to0.0
): Start value.stop
(of typefloat
, which defaults to1.0
): Stop value.delay
(of typefloat
, which defaults to0.0
): Initial delay before starting fade.duration
(of typefloat
, which defaults to3.0
): Duration in seconds.on_done
(of type() -> unit
, which defaults to{()}
): Function to execute when the fade is finished(unlabeled)
(of typesource('a)
)
Source / Input
blank
Produce silence and blank images.
Type:
(?id : string?, ?duration : {float}) -> source('a)
where 'a is a set of internal tracks
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of type{float}
, which defaults to-1.0
): Duration of blank tracks in seconds, Negative value means forever.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
debug.is_ready
A source that always produces an empty frame when the underlying source is not ready, used for testing and debugging.
Type:
(?id : string?, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
input
Input an audio stream using the default operator.
Type:
(?id : string?, ?start : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?fallible : bool) -> source(audio=pcm('A))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.start
(of typebool
, which defaults totrue
): Automatically start outputting whenever possible. Iftrue
, an infallible (normal) output will start outputting as soon as it is created, and a fallible output will (re)start as soon as its source becomes available for streaming.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting stops.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be (temporarily) stopped.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.alsa
Stream from an ALSA input device.
Type:
(?id : string?, ?buffer_size : float?, ?device : string, ?fallible : bool,
?on_start : (() -> unit), ?on_stop : (() -> unit), ?self_sync : bool,
?start : bool) -> source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer_size
(of typefloat?
, which defaults tonull
): ALSA buffer size in seconds. Defaults to frame duration whennull
.device
(of typestring
, which defaults to"default"
): Alsa device to usefallible
(of typebool
, which defaults tofalse
): Allow the source to fail. If set tofalse
,start
must betrue
andstop
method raises an error.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the ALSA driver.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.external.avi
Stream data from an external application.
Type:
(?id : string?, ?buffer : float, ?max : float, ?restart : bool,
?restart_on_error : bool, {string}) -> source(audio=pcm('a),
video=canvas('b))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to1.0
): Duration of the pre-buffered data.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.restart
(of typebool
, which defaults totrue
): Restart process when exited.restart_on_error
(of typebool
, which defaults tofalse
): Restart process when exited with error.(unlabeled)
(of type{string}
): Command to execute.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
input.external.rawaudio
Stream raw PCM data (interleaved signed 16 bits little endian integers) from an external application.
Type:
(?id : string?, ?buffer : float, ?channels : int, ?max : float,
?restart : bool, ?restart_on_error : bool, ?samplerate : int, {string}) ->
source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to2.0
): Duration of the pre-buffered data.channels
(of typeint
, which defaults to2
): Number of channels.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.restart
(of typebool
, which defaults totrue
): Restart process when exited.restart_on_error
(of typebool
, which defaults tofalse
): Restart process when exited with error.samplerate
(of typeint
, which defaults to44100
): Samplerate.(unlabeled)
(of type{string}
): Command to execute.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.external.rawvideo
Stream data from an external application.
Type:
(?id : string?, ?buffer : float, ?max : float, ?restart : bool,
?restart_on_error : bool, {string}) -> source(video=canvas('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to1.0
): Duration of the pre-buffered data.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.restart
(of typebool
, which defaults totrue
): Restart process when exited.restart_on_error
(of typebool
, which defaults tofalse
): Restart process when exited with error.(unlabeled)
(of type{string}
): Command to execute.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
input.external.wav
Stream WAV data from an external application.
Type:
(?id : string?, ?buffer : float, ?max : float, ?restart : bool,
?restart_on_error : bool, {string}) -> source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to2.0
): Duration of the pre-buffered data.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.restart
(of typebool
, which defaults totrue
): Restart process when exited.restart_on_error
(of typebool
, which defaults tofalse
): Restart process when exited with error.(unlabeled)
(of type{string}
): Command to execute.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.ffmpeg
Create a stream using ffmpeg
Type:
(?id : string?, ?debug : bool, ?deduplicate_metadata : bool,
?float_args : [string * float], ?format : string?,
?int_args : [string * int], ?max_buffer : float,
?metadata_filter : (([string * string]) -> [string * string])?,
?new_track_on_metadata : bool, ?on_connect : (() -> unit),
?on_disconnect : (() -> unit),
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?poll_delay : float,
?self_sync : {bool}, ?start : bool, ?string_args : [string * string],
?trim_url : bool, {string}) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.debug
(of typebool
, which defaults tofalse
): Run in debugging mode, not catching some exceptions.deduplicate_metadata
(of typebool
, which defaults totrue
): Prevent duplicated metadata.float_args
(of type[string * float]
, which defaults to[]
)format
(of typestring?
, which defaults tonull
): Force a specific input format. Autodetected when passed a null argumentint_args
(of type[string * int]
, which defaults to[]
)max_buffer
(of typefloat
, which defaults to5.0
): Maximum uration of buffered datametadata_filter
(of type(([string * string]) -> [string * string])?
, which defaults tonull
): Metadata filter function. Returned metadata are set a metadata. Default: filterid3v2_priv
metadata.new_track_on_metadata
(of typebool
, which defaults totrue
): Treat new metadata as new track.on_connect
(of type() -> unit
, which defaults to{()}
): Function to execute when a source is connected.on_disconnect
(of type() -> unit
, which defaults to{()}
): Function to execute when a source is disconnectedon_error
(of type(error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit
, which defaults tofun (_) -> ()
): Callback executed when an error occurs.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.poll_delay
(of typefloat
, which defaults to2.0
): Polling delay when trying to connect to the stream.self_sync
(of type{bool}
, which defaults tofalse
): Should the source control its own timing? Set totrue
if you are having synchronization issues. Should befalse
for most typical cases.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.string_args
(of type[string * string]
, which defaults to[]
)trim_url
(of typebool
, which defaults totrue
): Trim input URL.(unlabeled)
(of type{string}
): URL to decode.
Methods:
buffer_length
(of type() -> float
): Get the buffer’s length in seconds.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_url
(of type({string}) -> unit
): Set the source’s url.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.status
(of type() -> string
): Return the current status of the source, either “stopped” (the source isn’t trying to relay the HTTP stream), “starting” (polling task is about to begin) “polling” (attempting to connect to the HTTP stream), “connected” (connected to , buffering or playing back the stream) or “stopping” (source is stopping). stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.url
(of type() -> string
): Return the source’s current url.
input.harbor
Create a source that receives a http/icecast stream and forwards it as a stream.
Type:
(?id : string?,
?auth : (({address : string, password : string, user : string}) -> bool)?,
?buffer : float, ?debug : bool, ?dumpfile : string?, ?icy : bool,
?icy_metadata_charset : string?, ?logfile : string?, ?max : float,
?metadata_charset : string?, ?on_connect : (([string * string]) -> unit),
?on_disconnect : (() -> unit), ?password : string, ?port : int,
?replay_metadata : bool, ?timeout : float, ?transport : http_transport,
?user : string, string) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.auth
(of type(({address : string, password : string, user : string}) -> bool)?
, which defaults tonull
): Authentication function. Receives a record with:user
,password
andaddress
(client network address) and returnstrue
if the user should be granted access for this login. Override any other method if used.buffer
(of typefloat
, which defaults to12.0
): Duration of the pre-buffered data (in seconds). Default value is set to make it possible to usecrossfade
transitions withinput.harbor
. You might be able to reduce it but, in this case, make sure to not use the operator withcrossfade
or make sure that it has enough buffered data for it.debug
(of typebool
, which defaults tofalse
): Run in debugging mode by not catching some exceptions.dumpfile
(of typestring?
, which defaults tonull
): Dump stream to file, for debugging purpose. Disabled if null.icy
(of typebool
, which defaults tofalse
): Enable ICY (shoutcast) protocol.icy_metadata_charset
(of typestring?
, which defaults tonull
): ICY (shoutcast) metadata charset. Guessed if null. Default for shoutcast is ISO-8859-1. Set to that value if all your clients send metadata using this charset and automatic detection is not working for you.logfile
(of typestring?
, which defaults tonull
): Log buffer status to file, for debugging purpose. Disabled if null.max
(of typefloat
, which defaults to20.0
): Maximum duration of the buffered data (in seconds).metadata_charset
(of typestring?
, which defaults tonull
): Metadata charset for non-ICY (shoutcast) source protocols. Guessed if null.on_connect
(of type([string * string]) -> unit
, which defaults tofun (_) -> ()
): Function to execute when a source is connected. Its receives the list of headers, of the form: (on_disconnect
(of type() -> unit
, which defaults to{()}
): Functions to execute when a source is disconnectedpassword
(of typestring
, which defaults to"hackme"
): Source password.port
(of typeint
, which defaults to8005
): Port used to connect to the source.replay_metadata
(of typebool
, which defaults tofalse
): Replay last known metadata when switching back to this source. This helps when source has dropped due to temporary connection issues.timeout
(of typefloat
, which defaults to30.0
): Timeout for source connectionn.transport
(of typehttp_transport
, which defaults to<unix_transport>
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputuser
(of typestring
, which defaults to"source"
): Source user.(unlabeled)
(of typestring
): Mountpoint to look for.
Methods:
buffer_length
(of type() -> float
): Length of the buffer (in seconds).buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockconnected_client
(of type() -> string?
): Returns the address of the client currently connected, if there is one.duration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.status
(of type() -> string
): Current status of the input.stop
(of type() -> unit
): Disconnect the client currently connected to the harbor. Does nothing if no client is connected.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.hls
Play an HLS stream.
Type:
(?id : string?, {string}) -> source('A)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of type{string}
): Playlist URI.
Methods:
buffer_length
(of type() -> float
): Get the buffer’s length in seconds.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_url
(of type({string}) -> unit
): Set the source’s url.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.status
(of type() -> string
): Return the current status of the source, either “stopped” (the source isn’t trying to relay the HTTP stream), “starting” (polling task is about to begin) “polling” (attempting to connect to the HTTP stream), “connected” (connected to , buffering or playing back the stream) or “stopping” (source is stopping). stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.url
(of type() -> string
): Return the source’s current url.
input.hls.native
Play an HLS stream.
Type:
(?id : string?, ?reload : float, string) -> source('a)
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.reload
(of typefloat
, which defaults to10.0
): How often (in seconds) the playlist should be reloaded.(unlabeled)
(of typestring
): Playlist URI.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
input.http
Create a http stream using ffmpeg
Type:
(?id : string?, ?debug : bool, ?deduplicate_metadata : bool,
?float_args : [string * float], ?format : string?,
?int_args : [string * int], ?max_buffer : float,
?metadata_filter : (([string * string]) -> [string * string])?,
?new_track_on_metadata : bool, ?on_connect : (([string * string]) -> unit),
?on_disconnect : (() -> unit),
?on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}) -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?poll_delay : float,
?self_sync : {bool?}, ?start : bool, ?string_args : [string * string],
?timeout : float, ?trim_url : bool, ?user_agent : string, {string}) ->
source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.debug
(of typebool
, which defaults tofalse
): Run in debugging mode, not catching some exceptions.deduplicate_metadata
(of typebool
, which defaults totrue
): Prevent duplicated metadata.float_args
(of type[string * float]
, which defaults to[]
)format
(of typestring?
, which defaults tonull
): Force a specific input format. Autodetected when passed a null argumentint_args
(of type[string * int]
, which defaults to[]
)max_buffer
(of typefloat
, which defaults to5.0
): Maximum uration of buffered datametadata_filter
(of type(([string * string]) -> [string * string])?
, which defaults tonull
): Metadata filter function. Returned metadata are set a metadata. Default: filterid3v2_priv
metadata.new_track_on_metadata
(of typebool
, which defaults totrue
): Treat new metadata as new track.on_connect
(of type([string * string]) -> unit
, which defaults tofun (_) -> ()
): Function to execute when a source is connected. Its receives the list of ICY-specific headers, if available.on_disconnect
(of type() -> unit
, which defaults to{()}
): Function to execute when a source is disconnectedon_error
(of type(error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }) -> unit
, which defaults tofun (_) -> ()
): Callback executed when an error occurs.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.poll_delay
(of typefloat
, which defaults to2.0
): Polling delay when trying to connect to the stream.self_sync
(of type{bool?}
, which defaults tonull
): Should the source control its own timing? Ifnull
, the source will control its latency if it can be detected that it is connecting to anicecast
orshoutcast
server. Otherwise, seeinput.ffmpeg
for more details about this option.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.string_args
(of type[string * string]
, which defaults to[]
)timeout
(of typefloat
, which defaults to10.0
): Timeout for source connection.trim_url
(of typebool
, which defaults totrue
): Trim input URL.user_agent
(of typestring
, which defaults to"Liquidsoap/2.3.1+git@f51e9681e (Unix; OCaml 4.14.2)"
): User agent.(unlabeled)
(of type{string}
): URL to decode.
Methods:
buffer_length
(of type() -> float
): Get the buffer’s length in seconds.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_url
(of type({string}) -> unit
): Set the source’s url.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.status
(of type() -> string
): Return the current status of the source, either “stopped” (the source isn’t trying to relay the HTTP stream), “starting” (polling task is about to begin) “polling” (attempting to connect to the HTTP stream), “connected” (connected to , buffering or playing back the stream) or “stopping” (source is stopping). stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.url
(of type() -> string
): Return the source’s current url.
input.jack
Get stream from jack.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?self_sync : bool, ?server : string, ?start : bool) ->
source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults tofalse
): Allow the source to fail. If set tofalse
,start
must betrue
andstop
method raises an error.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the jack server.server
(of typestring
, which defaults to""
): Jack server to connect to.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.keyboard.sdl
Play notes from the keyboard.
Type:
(?id : string?, ?velocity : float) -> source(midi=midi('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.velocity
(of typefloat
, which defaults to0.8
): Velocity of notes.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
input.oss
Stream from an OSS input device.
Type:
(?id : string?, ?device : string, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?self_sync : bool, ?start : bool) ->
source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.device
(of typestring
, which defaults to"/dev/dsp"
): OSS device to use.fallible
(of typebool
, which defaults tofalse
): Allow the source to fail. If set tofalse
,start
must betrue
andstop
method raises an error.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the OSS driver.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.portaudio
Stream from a portaudio input device.
Type:
(?id : string?, ?buflen : int, ?device_id : int?, ?fallible : bool,
?latency : float?, ?on_start : (() -> unit), ?on_stop : (() -> unit),
?self_sync : bool, ?start : bool) -> source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buflen
(of typeint
, which defaults to256
): Length of a buffer in samples.device_id
(of typeint?
, which defaults tonull
): Device ID. Uses default device ifnull
.fallible
(of typebool
, which defaults tofalse
): Allow the source to fail. If set tofalse
,start
must betrue
andstop
method raises an error.latency
(of typefloat?
, which defaults tonull
): Device latency. Only used when specifying device ID.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the portaudio driver.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.pulseaudio
Stream from a pulseaudio input device.
Type:
(?id : string?, ?client : string, ?device : string?, ?fallible : bool,
?on_error : ((string) -> unit), ?on_start : (() -> unit),
?on_stop : (() -> unit), ?retry_delay : float, ?self_sync : bool,
?start : bool) -> source(audio=pcm('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.client
(of typestring
, which defaults to"liquidsoap"
)device
(of typestring?
, which defaults tonull
): Device to use. Uses default if set tonull
.fallible
(of typebool
, which defaults totrue
): Allow the source to fail. If set tofalse
,start
must betrue
andstop
method raises an error.on_error
(of type(string) -> unit
, which defaults tofun (_) -> ()
): Function executed when an operation with the pulseaudio server returns an error.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.retry_delay
(of typefloat
, which defaults to1.0
): When fallible, time to wait before trying to connect again.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the pulseaudio driver.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.rtmp
Read an RTMP stream.
Type:
(?id : string?, ?max_buffer : float, ?listen : bool, {string}) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
)max_buffer
(of typefloat
, which defaults to5.0
): Maximum data buffer in secondslisten
(of typebool
, which defaults totrue
): Act as a RTMP server and wait for incoming connection(unlabeled)
(of type{string}
): URL to read RTMP from, in the formrtmp://IP:PORT/ENDPOINT
Methods:
buffer_length
(of type() -> float
): Get the buffer’s length in seconds.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_url
(of type({string}) -> unit
): Set the source’s url.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.status
(of type() -> string
): Return the current status of the source, either “stopped” (the source isn’t trying to relay the HTTP stream), “starting” (polling task is about to begin) “polling” (attempting to connect to the HTTP stream), “connected” (connected to , buffering or playing back the stream) or “stopping” (source is stopping). stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.url
(of type() -> string
): Return the source’s current url.
input.srt
Receive a SRT stream from a distant agent.
Type:
(?id : string?, ?bind_address : string, ?connection_timeout : float?,
?content_type : string, ?dump : string, ?enforced_encryption : bool?,
?host : string, ?ipv6only : bool?,
?listen_callback : ((hs_version : int, peeraddr : string,
streamid : string?, srt_socket
.{
bistats : (?clear : bool?, ?instantaneous : bool?) ->
{
byteAvailRcvBuf : int,
byteAvailSndBuf : int,
byteMSS : int,
byteRcvBuf : int,
byteRcvDrop : int,
byteRcvDropTotal : int,
byteRcvUndecrypt : int,
byteRcvUndecryptTotal : int,
byteRecv : int,
byteRecvTotal : int,
byteRetrans : int,
byteRetransTotal : int,
byteSent : int,
byteSentTotal : int,
byteSndBuf : int,
byteSndDrop : int,
byteSndDropTotal : int,
mbpsBandwidth : float,
mbpsMaxBW : float,
mbpsRecvRate : float,
mbpsSendRate : float,
msRTT : float,
msRcvBuf : int,
msRcvTsbPdDelay : int,
msSndBuf : int,
msSndTsbPdDelay : int,
msTimeStamp : int,
pktCongestionWindow : int,
pktFlightSize : int,
pktFlowWindow : int,
pktRcvAvgBelatedTime : float,
pktRcvBelated : int,
pktRcvBuf : int,
pktRcvDrop : int,
pktRcvDropTotal : int,
pktRcvFilterExtra : int,
pktRcvFilterExtraTotal : int,
pktRcvFilterLoss : int,
pktRcvFilterLossTotal : int,
pktRcvFilterSupply : int,
pktRcvFilterSupplyTotal : int,
pktRcvLoss : int,
pktRcvLossTotal : int,
pktRcvRetrans : int,
pktRcvUndecrypt : int,
pktRcvUndecryptTotal : int,
pktRecv : int,
pktRecvACK : int,
pktRecvACKTotal : int,
pktRecvNAK : int,
pktRecvNAKTotal : int,
pktRecvTotal : int,
pktReorderDistance : int,
pktRetrans : int,
pktRetransTotal : int,
pktSent : int,
pktSentACK : int,
pktSentACKTotal : int,
pktSentNAK : int,
pktSentNAKTotal : int,
pktSentTotal : int,
pktSndBuf : int,
pktSndDrop : int,
pktSndDropTotal : int,
pktSndFilterExtra : int,
pktSndFilterExtraTotal : int,
pktSndLoss : int,
pktSndLossTotal : int,
usPktSndPeriod : float,
usSndDuration : int,
usSndDurationTotal : int},
bstats : (?clear : bool?) ->
{
byteAvailRcvBuf : int,
byteAvailSndBuf : int,
byteMSS : int,
byteRcvBuf : int,
byteRcvDrop : int,
byteRcvDropTotal : int,
byteRcvUndecrypt : int,
byteRcvUndecryptTotal : int,
byteRecv : int,
byteRecvTotal : int,
byteRetrans : int,
byteRetransTotal : int,
byteSent : int,
byteSentTotal : int,
byteSndBuf : int,
byteSndDrop : int,
byteSndDropTotal : int,
mbpsBandwidth : float,
mbpsMaxBW : float,
mbpsRecvRate : float,
mbpsSendRate : float,
msRTT : float,
msRcvBuf : int,
msRcvTsbPdDelay : int,
msSndBuf : int,
msSndTsbPdDelay : int,
msTimeStamp : int,
pktCongestionWindow : int,
pktFlightSize : int,
pktFlowWindow : int,
pktRcvAvgBelatedTime : float,
pktRcvBelated : int,
pktRcvBuf : int,
pktRcvDrop : int,
pktRcvDropTotal : int,
pktRcvFilterExtra : int,
pktRcvFilterExtraTotal : int,
pktRcvFilterLoss : int,
pktRcvFilterLossTotal : int,
pktRcvFilterSupply : int,
pktRcvFilterSupplyTotal : int,
pktRcvLoss : int,
pktRcvLossTotal : int,
pktRcvRetrans : int,
pktRcvUndecrypt : int,
pktRcvUndecryptTotal : int,
pktRecv : int,
pktRecvACK : int,
pktRecvACKTotal : int,
pktRecvNAK : int,
pktRecvNAKTotal : int,
pktRecvTotal : int,
pktReorderDistance : int,
pktRetrans : int,
pktRetransTotal : int,
pktSent : int,
pktSentACK : int,
pktSentACKTotal : int,
pktSentNAK : int,
pktSentNAKTotal : int,
pktSentTotal : int,
pktSndBuf : int,
pktSndDrop : int,
pktSndDropTotal : int,
pktSndFilterExtra : int,
pktSndFilterExtraTotal : int,
pktSndLoss : int,
pktSndLossTotal : int,
usPktSndPeriod : float,
usSndDuration : int,
usSndDurationTotal : int},
close : () -> unit,
pbkeylen : () -> int,
read_data : () -> int,
read_latency : () -> int,
read_timeout : () -> int,
status : () -> string,
streamid : () -> string,
write_timeout : () -> int
}) -> bool)?,
?max : float, ?messageapi : bool, ?mode : string,
?on_connect : (() -> unit), ?on_disconnect : (() -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?passphrase : string?,
?payload_size : int, ?pbkeylen : int?, ?polling_delay : float, ?port : int,
?prefer_address : string?, ?read_timeout : float?, ?self_sync : bool,
?start : bool, ?streamid : string?, ?write_timeout : float?) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.bind_address
(of typestring
, which defaults to"0.0.0.0"
): Address to bind on the local machine. Used only in listener modeconnection_timeout
(of typefloat?
, which defaults tonull
): Timeout, in seconds, after which initial connection operations are aborted if no data was received. Uses library’s default ifnull
. Used only inclient
mode.content_type
(of typestring
, which defaults to"application/ffmpeg"
): Content-Type (mime type) used to find a decoder for the input stream.dump
(of typestring
, which defaults to""
): Dump received data to the given file for debugging. Unused is empty.enforced_encryption
(of typebool?
, which defaults tonull
): Enforces that both connection parties have the same passphrase set, or both do not set the passphrase, otherwise the connection is rejected.host
(of typestring
, which defaults to"localhost"
): Address to connect to. Used only in caller mode.ipv6only
(of typebool?
, which defaults tonull
): Iftrue
, binding to the ipv6 wildcard address::
will bind to both IPv6 and IPv4 wildcard address. Defaults to system default whennull
.listen_callback
(of type((hs_version : int, peeraddr : string, streamid : string?, srt_socket .{ bistats : (?clear : bool?, ?instantaneous : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, bstats : (?clear : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, close : () -> unit, pbkeylen : () -> int, read_data : () -> int, read_latency : () -> int, read_timeout : () -> int, status : () -> string, streamid : () -> string, write_timeout : () -> int }) -> bool)?
, which defaults tonull
): Callback used to decide whether to accept new incoming connections. Used in listener mode only.max
(of typefloat
, which defaults to10.0
): Maximum duration of the buffered data.messageapi
(of typebool
, which defaults totrue
): Use message apimode
(of typestring
, which defaults to"listener"
): Mode to operate on. One of:"listener"
(waits for connection to come in) or"caller"
(initiate connection to a remote server)on_connect
(of type() -> unit
, which defaults to{()}
): Function to execute when connected.on_disconnect
(of type() -> unit
, which defaults to{()}
): Function to execute when disconnectedon_start
(of type() -> unit
, which defaults to{()}
): Callback executed when input starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when input stops.passphrase
(of typestring?
, which defaults tonull
): When set to a non-empty string, this option enables encryption and sets the passphrase for it. Seelibsrt
documentation for more details.payload_size
(of typeint
, which defaults to1316
): Payload size.pbkeylen
(of typeint?
, which defaults tonull
): Set encryption key length. Seelibsrt
documentation for more details.polling_delay
(of typefloat
, which defaults to2.0
): Delay between connection attempts. Used only in caller mode.port
(of typeint
, which defaults to8000
): Port to bind on the local machine (listener mode) or to connect to (caller mode). The termport
as used in SRT is occasionally identical to the termUDP port
. However SRT offers more flexibility than UDP because it manages ports as its own resources. For example, one port may be shared between various services.prefer_address
(of typestring?
, which defaults tonull
): Preferred address type when resolving hostnames. One of:"system"
,"ipv4"
or"ipv6"
. Defaults to globalsrt.prefer_connection
settings whennull
.read_timeout
(of typefloat?
, which defaults to1.0
): Timeout, in seconds, after which read operations are aborted if no data was received, indefinite ifnull
.self_sync
(of typebool
, which defaults totrue
):true
if the source controls its own latency (i.e. the SRT stream is inlive
mode),false
otherwise (i.e. the stream is infile
mode.start
(of typebool
, which defaults totrue
): Start input as soon as it is available.streamid
(of typestring?
, which defaults tonull
): Setstreamid
. This value can be retrieved by the listener side when connecting to it. Used in caller mode only.write_timeout
(of typefloat?
, which defaults to1.0
): Timeout, in seconds, after which write operations are aborted if no data was received, indefinite ifnull
.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.sockets
(of type() -> [string * srt_socket .{ bistats : (?clear : bool?, ?instantaneous : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, bstats : (?clear : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, close : () -> unit, pbkeylen : () -> int, read_data : () -> int, read_latency : () -> int, read_timeout : () -> int, status : () -> string, streamid : () -> string, write_timeout : () -> int }]
): List of(connected_address, connected_socket)
start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
input.v4l2
Stream from a video4linux2 input device, such as a webcam.
Type:
(?id : string?, ?max_buffer : float, ?device : string) ->
source(video=canvas('a))
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.max_buffer
(of typefloat
, which defaults to0.5
): Maximum data buffer in secondsdevice
(of typestring
, which defaults to"/dev/video0"
): V4L2 device to use.
native.request.dynamic
Play request dynamically created by a given function.
Type:
(?id : string?, ?available : {bool}, ?prefetch : int?,
?retry_delay : {float}, ?synchronous : bool, ?timeout : float?,
?native : bool, (() -> request?)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.available
(of type{bool}
, which defaults totrue
): Whether some new requests are available (when set to false, it stops after current playing request).prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.retry_delay
(of type{float}
, which defaults to0.1
): Retry after a given time (in seconds) when callback returnsnull
or an error occurs while resolving a returned request.synchronous
(of typebool
, which defaults tofalse
): Iftrue
, new requests are prepared as needed instead of using an asynchronous queue.timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request. Defaults tosettings.request.timeout
whennull
.native
(of typebool
, which defaults tofalse
)(unlabeled)
(of type() -> request?
)
Methods:
add
(of type(request) -> bool
):buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockcurrent
(of type() -> request?
):current_source
(of type() -> source('A)?
): Return the source currently selected.duration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.fetch
(of type() -> bool
):id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.prepare
(of type(source('A)) -> unit
): Prepare a source that will be returned later.queue
(of type() -> [request]
):register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_queue
(of type([request]) -> unit
):skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
noise
Generate audio/video noise source.
Type:
(?id : string?, ?duration : float?) -> source('a)
where 'a is a set of internal tracks
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.duration
(of typefloat?
, which defaults tonull
): Duration in seconds (null
means infinite).
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
playlist
Read a playlist or a directory and play all files.
Type:
(?id : string?, ?check_next : ((request) -> bool)?, ?prefetch : int?,
?loop : bool, ?max_fail : int, ?mime_type : string?, ?mode : string,
?native : bool, ?on_done : (() -> unit), ?on_fail : (() -> [string])?,
?on_reload : ((string) -> unit), ?prefix : string, ?reload : int,
?reload_mode : string, ?timeout : float?, ?cue_in_metadata : string?,
?cue_out_metadata : string?, ?register_server_commands : bool, string) ->
source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.check_next
(of type((request) -> bool)?
, which defaults tonull
): Function used to filter next tracks. A candidate track is only validated if the function returns true on it. The function is called before resolution, hence metadata will only be available for requests corresponding to local files. This is typically used to avoid repetitions, but be careful: if the function rejects all attempts, the playlist will enter into a consuming loop and stop playing anything.prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.loop
(of typebool
, which defaults totrue
): Loop on the playlist.max_fail
(of typeint
, which defaults to10
): When this number of requests fail to resolve, the whole playlists is considered as failed andon_fail
is called.mime_type
(of typestring?
, which defaults tonull
): Default MIME type for the playlist.null
means automatic detection.mode
(of typestring
, which defaults to"randomize"
): Play the files in the playlist either in the order (“normal” mode), or shuffle the playlist each time it is loaded, and play it in this order for a whole round (“randomize” mode), or pick a random file in the playlist each time (“random” mode).native
(of typebool
, which defaults tofalse
): Use native implementation.on_done
(of type() -> unit
, which defaults to{()}
): Function executed when the playlist is finished.on_fail
(of type(() -> [string])?
, which defaults tonull
): Function executed when too many requests failed and returning the contents of a fixed playlist.on_reload
(of type(string) -> unit
, which defaults tofun (_) -> ()
): Callback called after playlist has reloaded.prefix
(of typestring
, which defaults to""
): Add a constant prefix to all requests. Useful for passing extra information using annotate, or for resolution through a particular protocol, such as replaygain.reload
(of typeint
, which defaults to0
): Amount of time (in seconds or rounds), when applicable, before which the playlist is reloaded; 0 means never.reload_mode
(of typestring
, which defaults to"seconds"
): Unit of the reload parameter, either “never” (never reload the playlist), “rounds”, “seconds” or “watch” (reload the file whenever it is changed).timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request. Defaults tosettings.request.timeout
whennull
.cue_in_metadata
(of typestring?
, which defaults to"liq_cue_in"
): Metadata for cue in points. Disabled ifnull
.cue_out_metadata
(of typestring?
, which defaults to"liq_cue_out"
): Metadata for cue out points. Disabled ifnull
.register_server_commands
(of typebool
, which defaults totrue
): Register corresponding server commands(unlabeled)
(of typestring
): Playlist URI.
Methods:
add
(of type(request) -> bool
): Add a request to the queue. Requests are resolved before being added. Returnstrue
if the request was successfully added.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockcurrent
(of type() -> request?
): Get the request currently being played.duration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.fetch
(of type() -> bool
): Try feeding the queue with a new request. Returnstrue
if successful. This method can take long to return and should usually be run in a separate thread.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.length
(of type() -> int
): Length of the of the playlist (the number of songs it contains).log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.queue
(of type() -> [request]
): Get the requests currently in the queue.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.reload
(of type(?empty_queue : bool, ?uri : string?) -> unit
): Reload the playlist.remaining
(of type() -> float
): Estimation of remaining time in the current track.remaining_files
(of type() -> [string]
): Songs remaining to be played.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_queue
(of type([request]) -> unit
): Set the queue of requests. Requests are resolved before being added to the queue. You are responsible for destroying the requests currently in the queue.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
playlist.list
Play a list of files.
Type:
(?id : string?, ?check_next : ((request) -> bool)?, ?prefetch : int?,
?loop : bool, ?mode : string, ?native : bool, ?on_loop : (() -> unit),
?on_done : (() -> unit), ?max_fail : int, ?on_fail : (() -> [string])?,
?timeout : float?, ?cue_in_metadata : string?, ?cue_out_metadata : string?,
[string]) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.check_next
(of type((request) -> bool)?
, which defaults tonull
): Function used to filter next tracks. A candidate track is only validated if the function returns true on it. The function is called before resolution, hence metadata will only be available for requests corresponding to local files. This is typically used to avoid repetitions, but be careful: if the function rejects all attempts, the playlist will enter into a consuming loop and stop playing anything.prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.loop
(of typebool
, which defaults totrue
): Loop on the playlist.mode
(of typestring
, which defaults to"normal"
): Play the files in the playlist either in the order (“normal” mode), or shuffle the playlist each time it is loaded, and play it in this order for a whole round (“randomize” mode), or pick a random file in the playlist each time (“random” mode).native
(of typebool
, which defaults tofalse
): Use native implementation, when available.on_loop
(of type() -> unit
, which defaults to{()}
): Function executed when the playlist is about to loop.on_done
(of type() -> unit
, which defaults to{()}
): Function executed when the playlist is finished.max_fail
(of typeint
, which defaults to10
): When this number of requests fail to resolve, the whole playlists is considered as failed andon_fail
is called.on_fail
(of type(() -> [string])?
, which defaults tonull
): Function executed when too many requests failed and returning the contents of a fixed playlist.timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request. Defaults tosettings.request.timeout
whennull
.cue_in_metadata
(of typestring?
, which defaults to"liq_cue_in"
): Metadata for cue in points. Disabled ifnull
.cue_out_metadata
(of typestring?
, which defaults to"liq_cue_out"
): Metadata for cue out points. Disabled ifnull
.(unlabeled)
(of type[string]
): Playlist.
Methods:
add
(of type(request) -> bool
): Add a request to the queue. Requests are resolved before being added. Returnstrue
if the request was successfully added.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockcurrent
(of type() -> request?
): Get the request currently being played.duration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.fetch
(of type() -> bool
): Try feeding the queue with a new request. Returnstrue
if successful. This method can take long to return and should usually be run in a separate thread.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.queue
(of type() -> [request]
): Get the requests currently in the queue.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.reload
(of type(?empty_queue : bool, [string]) -> unit
): Reload the playlist with given list of songs.remaining
(of type() -> float
): Estimation of remaining time in the current track.remaining_files
(of type() -> [string]
): Songs remaining to be played.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_queue
(of type([request]) -> unit
): Set the queue of requests. Requests are resolved before being added to the queue. You are responsible for destroying the requests currently in the queue.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
request.dynamic
Play request dynamically created by a given function.
Type:
(?id : string?, ?available : {bool}, ?prefetch : int?,
?retry_delay : {float}, ?synchronous : bool, ?timeout : float?,
?native : bool, (() -> request?)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.available
(of type{bool}
, which defaults totrue
): Whether some new requests are available (when set to false, it stops after current playing request).prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.retry_delay
(of type{float}
, which defaults to0.1
): Retry after a given time (in seconds) when callback returnsnull
or an error occurs while resolving a returned request.synchronous
(of typebool
, which defaults tofalse
): Iftrue
, new requests are prepared as needed instead of using an asynchronous queue.timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request. Defaults tosettings.request.timeout
whennull
.native
(of typebool
, which defaults tofalse
)(unlabeled)
(of type() -> request?
)
Methods:
add
(of type(request) -> bool
): Add a request to the queue. Requests are resolved before being added. Returnstrue
if the request was successfully added.buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockcurrent
(of type() -> request?
): Get the request currently being played.duration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.fetch
(of type() -> bool
): Try feeding the queue with a new request. Returnstrue
if successful. This method can take long to return and should usually be run in a separate thread.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.queue
(of type() -> [request]
): Get the requests currently in the queue.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.set_queue
(of type([request]) -> unit
): Set the queue of requests. Requests are resolved before being added to the queue. You are responsible for destroying the requests currently in the queue.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
request.once
Play a request once and become unavailable.
Type:
(?id : string?, ?timeout : float?, request) -> source('a)
Arguments:
id
(of typestring?
, which defaults to"request.once"
)timeout
(of typefloat?
, which defaults tonull
): Timeout in seconds for resolving the request.(unlabeled)
(of typerequest
): Request to play.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.request
(of typerequest
):reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.resolve
(of type() -> bool
):seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
request.single
Loop on a request. It never fails if the request is static, meaning that it can be fetched once. Typically, http, ftp, say requests are static, and time is not.
Type:
(?id : string?, ?prefetch : int?, ?timeout : float?, ?fallible : bool?,
{request}) -> source('a)
Arguments:
id
(of typestring?
, which defaults to"request.single"
)prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request.fallible
(of typebool?
, which defaults tonull
): Enforce fallibility of the request.(unlabeled)
(of type{request}
): Request
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
saw
Generate a saw wave.
Type:
(?id : string?, ?amplitude : {float}, ?duration : float?, ?{float}) ->
source(audio=pcm*)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.amplitude
(of type{float}
, which defaults to1.0
): Maximal value of the waveform.duration
(of typefloat?
, which defaults tonull
): Duration in seconds (null
means infinite).(unlabeled)
(of type{float}
, which defaults to440.0
): Frequency of the saw.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
sine
Generate a sine wave.
Type:
(?id : string?, ?amplitude : {float}, ?duration : float?, ?{float}) ->
source(audio=pcm*)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.amplitude
(of type{float}
, which defaults to1.0
): Maximal value of the waveform.duration
(of typefloat?
, which defaults tonull
): Duration in seconds (null
means infinite).(unlabeled)
(of type{float}
, which defaults to440.0
): Frequency of the sine.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
single
Loop on a URI. It never fails if the request is static, meaning that it can be fetched once. Typically, http, ftp, say requests are static, and time is not.
Type:
(?prefetch : int?, ?timeout : float?, ?id : string?, ?fallible : bool,
?cue_in_metadata : string?, ?cue_out_metadata : string?, string) ->
source('a)
Arguments:
prefetch
(of typeint?
, which defaults tonull
): How many requests should be queued in advance.timeout
(of typefloat?
, which defaults tonull
): Timeout (in sec.) to resolve the request.id
(of typestring?
, which defaults to"single"
)fallible
(of typebool
, which defaults tofalse
): Enforce fallibility of the request.cue_in_metadata
(of typestring?
, which defaults to"liq_cue_in"
): Metadata for cue in points. Disabled ifnull
.cue_out_metadata
(of typestring?
, which defaults to"liq_cue_out"
): Metadata for cue out points. Disabled ifnull
.(unlabeled)
(of typestring
): URI where to find the file
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
source
Create a source that muxes the given tracks.
Type:
(?id : string?, 'a.{metadata? : metadata, track_marks? : track_marks}) ->
source('a) where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of type'a.{metadata? : metadata, track_marks? : track_marks} where 'a is a set of tracks to be muxed into a source
): Tracks to mux
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
source.fail
A source that does not produce anything. No silence, no track at all.
Type:
(?id : string?) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
source.fail.init
A source that errors during its initialization phase, used for testing and debugging.
Type:
(?id : string?) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
square
Generate a square wave.
Type:
(?id : string?, ?amplitude : {float}, ?duration : float?, ?{float}) ->
source(audio=pcm*)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.amplitude
(of type{float}
, which defaults to1.0
): Maximal value of the waveform.duration
(of typefloat?
, which defaults tonull
): Duration in seconds (null
means infinite).(unlabeled)
(of type{float}
, which defaults to440.0
): Frequency of the square.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
video.testsrc
Generate a test video.
Type:
(?id : string?, ?height : int, ?width : int) -> source('a)
where 'a is a set of internal tracks
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.height
(of typeint
, which defaults to-1
)width
(of typeint
, which defaults to-1
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
Source / Liquidsoap
buffer
Create a buffer between two different clocks.
Type:
(?id : string?, ?buffer : float, ?fallible : bool, ?max : float,
?on_start : (() -> unit), ?on_stop : (() -> unit), ?register_telnet : bool,
?start : bool, source('a)) -> source('a)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer
(of typefloat
, which defaults to1.0
): Amount of data to pre-buffer, in seconds.fallible
(of typebool
, which defaults totrue
): Allow the child source to fail.max
(of typefloat
, which defaults to10.0
): Maximum amount of buffered data, in seconds.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource('a)
)
Methods:
buffer_length
(of type() -> int
): Buffer length, in main ticksbuffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
buffer.adaptative
Create a buffer between two different clocks. The speed of the output is adapted so that no buffer underrun or overrun occurs. This wonderful behavior has a cost: the pitch of the sound might be changed a little.
Type:
(?id : string?, ?averaging : float, ?buffer : float, ?fallible : bool,
?limit : float, ?max : float, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?resample : bool,
?reset : bool, ?start : bool, source(audio=pcm('a), 'b)) ->
source(audio=pcm('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.averaging
(of typefloat
, which defaults to30.0
): Length of the buffer averaging, in seconds (the time constant of the smoothing to be precise). The greater this is, the less reactive to local variations we are.buffer
(of typefloat
, which defaults to1.0
): Amount of data to prebuffer, in seconds.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.limit
(of typefloat
, which defaults to1.25
): Maximum acceleration or deceleration factor, ie how fast or slow we can be compared to realtime.max
(of typefloat
, which defaults to10.0
): Maximum amount of buffered data, in seconds.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.resample
(of typebool
, which defaults totrue
): Use proper resampling instead of simply duplicating samples.reset
(of typebool
, which defaults tofalse
): Reset speed estimation to 1 when the source becomes available again (resuming from a buffer underflow).start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Current buffer duration, in seconds.elapsed
(of type() -> float
): Elapsed time in the current track.estimated
(of type() -> float
): Current smoothed buffer duration, in seconds.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.ratio
(of type() -> float
): Get the current scaling ratio.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
request.dump
Immediately encode the whole contents of a request into a file.
Type:
(format('a), string, request, ?ratio : float, ?timeout : float,
?sleep_latency : float) -> unit
Arguments:
(unlabeled)
(of typeformat('a)
): Encoding format.(unlabeled)
(of typestring
): Name of the file.(unlabeled)
(of typerequest
): Request to encode.ratio
(of typefloat
, which defaults to50.0
): Time ratio. A value of50
means process data at50x
real rate, when possible.timeout
(of typefloat
, which defaults to1.0
): Stop processing the source if it has not started after the given timeout.sleep_latency
(of typefloat
, which defaults to0.1
): How much time ahead, in seconds, should we should be before pausing the processing.
This function is experimental.
request.process
Given a request and an optional function to process this request, animate the source as fast as possible until the request is fully processed.
Type:
(request, ?process : ((source('a)) -> source('b)), ?ratio : float,
?timeout : float, ?sleep_latency : float) -> unit
Arguments:
(unlabeled)
(of typerequest
): Request to processprocess
(of type(source('a)) -> source('b)
, which defaults to<fun>
): Callback to create the source to animate.ratio
(of typefloat
, which defaults to50.0
): Time ratio. A value of50
means process data at50x
real rate, when possible.timeout
(of typefloat
, which defaults to1.0
): Stop processing the source if it has not started after the given timeout.sleep_latency
(of typefloat
, which defaults to0.1
): How much time ahead, in seconds, should we should be before pausing the processing.
source.duration
Estimation of the duration in the current track.
Type:
(source('a)) -> float
Arguments:
(unlabeled)
(of typesource('a)
)
source.elapsed
Elapsed time in the current track.
Type:
(source('a)) -> float
Arguments:
(unlabeled)
(of typesource('a)
)
source.fallible
Indicate if a source may fail, i.e. may not be ready to stream.
Type:
(source('a)) -> bool
Arguments:
(unlabeled)
(of typesource('a)
)
source.id
Get the identifier of a source.
Type:
(source('a)) -> string
Arguments:
(unlabeled)
(of typesource('a)
)
source.is_ready
Indicate if a source is ready to stream (we also say that it is available), or currently streaming.
Type:
(source('a)) -> bool
Arguments:
(unlabeled)
(of typesource('a)
)
source.last_metadata
Return the last metadata from the source.
Type:
(source('a)) -> [string * string]?
Arguments:
(unlabeled)
(of typesource('a)
)
source.on_shutdown
Register a function to be called when source is not used anymore by another source.
Type:
(source('a), (() -> unit)) -> unit
Arguments:
(unlabeled)
(of typesource('a)
)(unlabeled)
(of type() -> unit
)
source.remaining
Estimation of remaining time in the current track.
Type:
(source('a)) -> float
Arguments:
(unlabeled)
(of typesource('a)
)
source.seek
Seek forward, in seconds. Returns the amount of time effectively seeked.
Type:
(source('a), float) -> float
Arguments:
(unlabeled)
(of typesource('a)
)(unlabeled)
(of typefloat
)
source.set_name
Set the name of an operator.
Type:
(source('a), string) -> unit
Arguments:
(unlabeled)
(of typesource('a)
)(unlabeled)
(of typestring
)
source.skip
Skip to the next track.
Type:
(source('a)) -> unit
Arguments:
(unlabeled)
(of typesource('a)
)
source.time
Get a source’s time, based on its assigned clock
Type:
(source('a)) -> float
Arguments:
(unlabeled)
(of typesource('a)
)
Source / MIDI processing
midi.chord
Generate a chord.
Type:
(?id : string?, ?metadata : string, source('a)) ->
source(midi=midi(channels=1), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.metadata
(of typestring
, which defaults to"chord"
): Name of the metadata containing the chords.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
midi.merge_all
Merge all MIDI tracks in one.
Type:
(?id : string?, ?track_out : int, source(midi=midi('a), 'b)) ->
source(midi=midi('a), 'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.track_out
(of typeint
, which defaults to0
): Destination track.(unlabeled)
(of typesource(midi=midi('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
midi.remove
Remove MIDI tracks.
Type:
(?id : string?, [int], source(midi=midi('a), 'b)) -> source(midi=midi('a),
'b)
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.(unlabeled)
(of type[int]
): Tracks to remove.(unlabeled)
(of typesource(midi=midi('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
Source / Output
ffmpeg.filter.audio_video.output
Return a source with audio and video from a filter’s output.
Type:
(?id : string?, ffmpeg.filter.graph, 'b
.{tracks : () -> 'a.{audio : ffmpeg.filter.audio}}, 'd
.{tracks : () -> 'c.{video : ffmpeg.filter.video}}) ->
source(audio=ffmpeg.audio.raw('e), video=ffmpeg.video.raw('f))
Arguments:
id
(of typestring?
, which defaults tonull
)(unlabeled)
(of typeffmpeg.filter.graph
): Force the value of the source ID.(unlabeled)
(of type'b.{tracks : () -> 'a.{audio : ffmpeg.filter.audio}}
)(unlabeled)
(of type'd.{tracks : () -> 'c.{video : ffmpeg.filter.video}}
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.skip
(of type() -> unit
): Skip to the next track.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output
Output a stream using the default operator. The input source does not need to be infallible, blank will just be played during failures.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?start : bool, source(audio=pcm('A))) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults totrue
): Allow the child source to fail, in which case the output will be (temporarily) stopped.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting stops.start
(of typebool
, which defaults totrue
): Automatically start outputting whenever possible. Iftrue
, an infallible (normal) output will start outputting as soon as it is created, and a fallible output will (re)start as soon as its source becomes available for streaming.(unlabeled)
(of typesource(audio=pcm('A))
): Source to play.
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.alsa
Output the source’s stream to an ALSA output device.
Type:
(?id : string?, ?buffer_size : float?, ?device : string, ?fallible : bool,
?on_start : (() -> unit), ?on_stop : (() -> unit), ?register_telnet : bool,
?self_sync : bool, ?start : bool, source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buffer_size
(of typefloat?
, which defaults tonull
): ALSA buffer size in seconds. Defaults to frame duration whennull
.device
(of typestring
, which defaults to"default"
): Alsa device to usefallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the ALSA driver.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.ao
Output stream to local sound card using libao.
Type:
(?id : string?, ?channels_matrix : string, ?driver : string,
?fallible : bool, ?on_start : (() -> unit), ?on_stop : (() -> unit),
?options : [string * string], ?register_telnet : bool, ?self_sync : bool,
?start : bool, source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.channels_matrix
(of typestring
, which defaults to""
): Output channels matrix, “” for AO’s default.driver
(of typestring
, which defaults to""
): Driver to be used, “” for AO’s default.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.options
(of type[string * string]
, which defaults to[]
): List of parameters, depends on the driver.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults totrue
): Use the dedicated AO clock.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.audio_video
Output a stream with audio and video using the default operator. The input source does not need to be infallible, blank will just be played during failures.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?start : bool, source(audio=pcm('A),
video=canvas('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults totrue
): Allow the child source to fail, in which case the output will be (temporarily) stopped.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when outputting stops.start
(of typebool
, which defaults totrue
): Automatically start outputting whenever possible. Iftrue
, an infallible (normal) output will start outputting as soon as it is created, and a fallible output will (re)start as soon as its source becomes available for streaming.(unlabeled)
(of typesource(audio=pcm('A), video=canvas('a), 'b)
): Source to play.
output.dummy
Dummy output: computes the stream, without actually using it.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?start : bool, source('a)) ->
unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.external
Send the stream to a process’ standard input.
Type:
(?id : string?, ?export_cover_metadata : bool, ?fallible : bool,
?flush : bool, ?on_reopen : (() -> unit), ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?reopen_delay : {float},
?reopen_on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}?) -> float?),
?reopen_on_metadata : (([string * string]) -> bool),
?reopen_when : (() -> bool), ?self_sync : bool, ?start : bool, format('a),
{string}, source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.export_cover_metadata
(of typebool
, which defaults totrue
): Export cover metadata.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.flush
(of typebool
, which defaults tofalse
): Perform a flush after each write.on_reopen
(of type() -> unit
, which defaults to{()}
): Callback executed when the output is reopened.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.reopen_delay
(of type{float}
, which defaults to120.0
): Prevent re-opening within that delay, in seconds. Only applies toreopen_when
.reopen_on_error
(of type(error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }?) -> float?
, which defaults to<fun>
): Callback called when there is an error. Error is raised when returningnull
. Otherwise, the file is reopened after the returned value, in seconds.reopen_on_metadata
(of type([string * string]) -> bool
, which defaults tofun (_) -> false
): Callback called on metadata. If returned value istrue
, the file is reopened.reopen_when
(of type() -> bool
, which defaults to{false}
): Callback called on each frame. If returned value istrue
, the file is reopened.self_sync
(of typebool
, which defaults tofalse
): Set totrue
if the process is expected to control the output’s latency. Typical example:ffmpeg
with the-re
command-line option.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typeformat('a)
): Process to pipe data to.(unlabeled)
(of type{string}
): Encoding format.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reopen
(of type() -> unit
): Reopen the output pipe. The actual reopening happens the next time the output has some data to output.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.file
Output the source stream to a file.
Type:
(?id : string?, ?append : bool, ?dir_perm : int,
?export_cover_metadata : bool, ?fallible : bool, ?flush : bool,
?on_close : ((string) -> unit), ?on_reopen : (() -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?perm : int,
?register_telnet : bool, ?reopen_delay : {float},
?reopen_on_error : ((error
.{
kind : string,
message : string,
trace : [
{
cstart : int,
cstop : int,
filename : string,
lstart : int,
lstop : int,
to_string : (?prefix : string) -> string
}]
}?) -> float?),
?reopen_on_metadata : (([string * string]) -> bool),
?reopen_when : (() -> bool), ?start : bool, format('a), {string},
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.append
(of typebool
, which defaults tofalse
): Do not truncate but append in the file if it exists.dir_perm
(of typeint
, which defaults to511
): Permission of the directories if some have to be created, up to umask. Although you can enter values in octal notation (0oXXX) they will be displayed in decimal (for instance, 0o777 = 7×8^2 + 7×8 + 7 = 511).export_cover_metadata
(of typebool
, which defaults totrue
): Export cover metadata.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.flush
(of typebool
, which defaults tofalse
): Perform a flush after each write.on_close
(of type(string) -> unit
, which defaults tofun (_) -> ()
): This function will be called for each file, after that it is finished and closed. The filename will be passed as argument.on_reopen
(of type() -> unit
, which defaults to{()}
): Callback executed when the output is reopened.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.perm
(of typeint
, which defaults to438
): Permission of the file if it has to be created, up to umask. You can and should write this number in octal notation: 0oXXX. The default value is however displayed in decimal (0o666 = 6×8^2 + 6×8 + 6 = 438).register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.reopen_delay
(of type{float}
, which defaults to120.0
): Prevent re-opening within that delay, in seconds. Only applies toreopen_when
.reopen_on_error
(of type(error .{ kind : string, message : string, trace : [ { cstart : int, cstop : int, filename : string, lstart : int, lstop : int, to_string : (?prefix : string) -> string }] }?) -> float?
, which defaults to<fun>
): Callback called when there is an error. Error is raised when returningnull
. Otherwise, the file is reopened after the returned value, in seconds.reopen_on_metadata
(of type([string * string]) -> bool
, which defaults tofun (_) -> false
): Callback called on metadata. If returned value istrue
, the file is reopened.reopen_when
(of type() -> bool
, which defaults to{false}
): Callback called on each frame. If returned value istrue
, the file is reopened.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typeformat('a)
): Encoding format.(unlabeled)
(of type{string}
): Filename where to output the stream.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reopen
(of type() -> unit
): Reopen the output pipe. The actual reopening happens the next time the output has some data to output.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.file.hls
Output the source stream to an HTTP live stream served from a local directory.
Type:
(?id : string?, ?dir_perm : int, ?extra_tags : [string], ?fallible : bool,
?on_file_change : ((state : string, string) -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?perm : int,
?persist_at : string?, ?playlist : string, ?prefix : string,
?register_telnet : bool, ?segment_duration : float,
?segment_name : ((
{
duration : float,
extname : string,
position : int,
stream_name : string,
ticks : int
}) -> string),
?segments : int, ?segments_overhead : int?, ?start : bool,
?strict_persist : bool, ?temp_dir : string?,
?main_playlist_writer : ((extra_tags : [string], prefix : string,
version : int,
[string
.{
bandwidth : int,
codecs : string,
video_size? : int * int
}]) -> string?)?,
string,
[string * format('a)
.{
bandwidth? : int,
codecs? : string,
extname? : string,
extra_tags? : [string],
id3? : bool,
id3_version? : int,
replay_id3? : bool,
video_size? : int * int
}],
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.dir_perm
(of typeint
, which defaults to511
): Permission of the directories if some have to be created, up to umask.extra_tags
(of type[string]
, which defaults to[]
): Extra tags to insert into the main playlist.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_file_change
(of type(state : string, string) -> unit
, which defaults tofun (~state=_,_) -> ()
): Callback executed when a file changes.state
is one of:"created"
,"updated"
or"deleted"
, second argument is file path. Typical use: sync file with a CDNon_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.perm
(of typeint
, which defaults to438
): Permission of the created files, up to umask.persist_at
(of typestring?
, which defaults tonull
): Location of the configuration file used to restart the output. Relative paths are assumed to be with regard to the directory for generated file.playlist
(of typestring
, which defaults to"stream.m3u8"
): Playlist name (m3u8 extension is recommended).prefix
(of typestring
, which defaults to""
): Prefix for each files in playlists.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.segment_duration
(of typefloat
, which defaults to10.0
): Segment duration (in seconds).segment_name
(of type( { duration : float, extname : string, position : int, stream_name : string, ticks : int }) -> string
, which defaults to<fun>
): Segment name. Default:fun (metadata) -> "#{metadata.stream_name}_#{metadata.position}.#{metadata.extname}"
segments
(of typeint
, which defaults to10
): Number of segments per playlist.segments_overhead
(of typeint?
, which defaults to5
): Number of segments to keep after they have been featured in the live playlist. Set tonull
to disable.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.strict_persist
(of typebool
, which defaults tofalse
): Fail if an invalid saved state exists.temp_dir
(of typestring?
, which defaults tonull
): Temporary directory used for writing files. This should be in the same partition or device as the final directory to guarantee atomic file operations. Use the same directory as the HLS files ifnull
.main_playlist_writer
(of type((extra_tags : [string], prefix : string, version : int, [string.{bandwidth : int, codecs : string, video_size? : int * int}]) -> string?)?
, which defaults to<fun>
): Main playlist writer. Main playlist writing is disabled whennull
or when returningnull
.(unlabeled)
(of typestring
): List of specifications for each stream: (name, format).(unlabeled)
(of type[string * format('a) .{ bandwidth? : int, codecs? : string, extname? : string, extra_tags? : [string], id3? : bool, id3_version? : int, replay_id3? : bool, video_size? : int * int }]
): Directory for generated files.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.insert_tag
(of type(string) -> unit
): Insert the same tag into all the streamsis_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.streams
(of type() -> [ { bandwidth : int, codecs : string, discontinuity_count : int, encoder : format('A), extname : string, extra_tags : [string], id3_enabled : bool, insert_tag : (string) -> unit, name : string, replay_id3 : bool, video_size : {height : int, width : int }? }]
): Output streamstime
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.harbor
Encode and output the stream using the harbor server.
Type:
(?id : string?, ?auth : ((address : string, string, string) -> bool)?,
?buffer : int, ?burst : int, ?chunk : int, ?dumpfile : string?,
?encoding : string, ?fallible : bool, ?format : string,
?headers : [string * string], ?metaint : int, mount : string,
?on_connect : ((headers : [string * string], uri : string,
protocol : string, string) -> unit),
?on_disconnect : ((string) -> unit), ?on_start : (() -> unit),
?on_stop : (() -> unit), ?password : string?, ?port : int,
?register_telnet : bool, ?start : bool, ?timeout : float,
?transport : http_transport, ?url : string?, ?user : string?, format('a),
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.auth
(of type((address : string, string, string) -> bool)?
, which defaults tonull
): Authentication function.f(~address,login,password)
returnstrue
if the user should be granted access for this login. When defined,user
andpassword
arguments are not taken in account.buffer
(of typeint
, which defaults to327675
): Maximum buffer per-client.burst
(of typeint
, which defaults to65534
): Initial burst of data sent to the client.chunk
(of typeint
, which defaults to4096
): Send data to clients using chunks of at least this length.dumpfile
(of typestring?
, which defaults tonull
): Dump stream to file, for debugging purpose. Disabled if null.encoding
(of typestring
, which defaults to""
): Encoding used to send metadata. If empty, defaults to “UTF-8”fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.format
(of typestring
, which defaults to""
): Format, e.g. “audio/ogg”. When empty, the encoder is used to guess.headers
(of type[string * string]
, which defaults to[]
): Additional headers.metaint
(of typeint
, which defaults to8192
): Interval used to send ICY metadatamount
(of typestring
)on_connect
(of type(headers : [string * string], uri : string, protocol : string, string) -> unit
, which defaults tofun (~headers=_,~uri=_,~protocol=_,_) -> ()
): Callback executed when connection is established (takes headers, connection uri, protocol and client’s IP as arguments).on_disconnect
(of type(string) -> unit
, which defaults tofun (_) -> ()
): Callback executed when connection stops (takes client’s IP as argument).on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.password
(of typestring?
, which defaults tonull
): Password for client connection. Auser
must also be set. We check for this password is checked unless anauth
function is defined, which is used in this case.port
(of typeint
, which defaults to8000
)register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.timeout
(of typefloat
, which defaults to30.0
): Timeout for network operations (in seconds).transport
(of typehttp_transport
, which defaults to<unix_transport>
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputurl
(of typestring?
, which defaults tonull
)user
(of typestring?
, which defaults tonull
): User for client connection. You also need to setup apassword
.(unlabeled)
(of typeformat('a)
): Encoding format.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.harbor.hls
Output the source stream to an HTTP live stream served from the harbor HTTP server.
Type:
(?id : string?, ?dir_perm : int, ?extra_tags : [string], ?fallible : bool,
?on_file_change : ((state : string, string) -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?perm : int,
?persist_at : string?, ?playlist : string, ?prefix : string,
?register_telnet : bool, ?segment_duration : float, ?segments : int,
?segments_overhead : int?, ?start : bool, ?strict_persist : bool,
?temp_dir : string?,
?main_playlist_writer : ((extra_tags : [string], prefix : string,
version : int,
[string
.{
bandwidth : int,
codecs : string,
video_size? : int * int
}]) -> string?)?,
?segment_name : ((
{
duration : float,
extname : string,
position : int,
stream_name : string,
ticks : int
}) -> string),
?headers : [string * string], ?port : int, ?path : string,
?tmpdir : string?, ?transport : http_transport
.{default_port : int, name : string, protocol : string},
[string * format('a)], source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.dir_perm
(of typeint
, which defaults to511
): Permission of the directories if some have to be created, up to umask.extra_tags
(of type[string]
, which defaults to[]
): Extra tags to insert into the main playlist.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_file_change
(of type(state : string, string) -> unit
, which defaults tofun (~state=_,_) -> ()
): Callback executed when a file changes.state
is one of:"created"
,"updated"
or"deleted"
, second argument is file path. Typical use: sync file with a CDNon_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.perm
(of typeint
, which defaults to438
): Permission of the created files, up to umask.persist_at
(of typestring?
, which defaults tonull
): Location of the configuration file used to restart the output. Relative paths are assumed to be with regard to the directory for generated file.playlist
(of typestring
, which defaults to"stream.m3u8"
): Playlist name (m3u8 extension is recommended).prefix
(of typestring
, which defaults to""
): Prefix for each files in playlists.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.segment_duration
(of typefloat
, which defaults to10.0
): Segment duration (in seconds).segments
(of typeint
, which defaults to10
): Number of segments per playlist.segments_overhead
(of typeint?
, which defaults to5
): Number of segments to keep after they have been featured in the live playlist. Set tonull
to disable.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.strict_persist
(of typebool
, which defaults tofalse
): Fail if an invalid saved state exists.temp_dir
(of typestring?
, which defaults tonull
): Temporary directory used for writing files. This should be in the same partition or device as the final directory to guarantee atomic file operations. Use the same directory as the HLS files ifnull
.main_playlist_writer
(of type((extra_tags : [string], prefix : string, version : int, [string.{bandwidth : int, codecs : string, video_size? : int * int}]) -> string?)?
, which defaults to<fun>
): Main playlist writer. Main playlist writing is disabled whennull
or when returningnull
.segment_name
(of type( { duration : float, extname : string, position : int, stream_name : string, ticks : int }) -> string
, which defaults to<fun>
): Segment name. Default:fun (metadata) -> "#{metadata.stream_name}_#{metadata.position}.#{metadata.extname}"
headers
(of type[string * string]
, which defaults to[("Access-Control-Allow-Origin", "*")]
): Default response headers.port
(of typeint
, which defaults to8000
): Port for incoming harbor (http) connections.path
(of typestring
, which defaults to"/"
): Base path for hls URIs.tmpdir
(of typestring?
, which defaults tonull
): Directory for generated files.transport
(of typehttp_transport.{default_port : int, name : string, protocol : string}
, which defaults to<unix_transport>.{default_port=80, protocol="http", name="unix"}
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS output(unlabeled)
(of type[string * format('a)]
): List of specifications for each stream: (name, format).(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.insert_tag
(of type(string) -> unit
): Insert the same tag into all the streamsis_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.streams
(of type() -> [ { bandwidth : int, codecs : string, discontinuity_count : int, encoder : format('A), extname : string, extra_tags : [string], id3_enabled : bool, insert_tag : (string) -> unit, name : string, replay_id3 : bool, video_size : {height : int, width : int }? }]
): Output streamstime
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.icecast
Encode and output the stream to an icecast server.
Type:
(?id : string?, ?chunked : bool, ?connection_timeout : float,
?description : string?, ?dumpfile : string?, ?encoding : string?,
?fallible : bool, ?format : string, ?genre : string?,
?headers : [string * string], ?host : string, ?icy_metadata : [string],
?icy_song : (([string * string]) -> string?), ?method : string,
mount : string, ?name : string?, ?on_connect : (() -> unit),
?on_disconnect : (() -> unit), ?on_error : ((string) -> float),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?password : string,
?port : int, ?prefer_address : string?, ?public : bool,
?register_telnet : bool, ?send_icy_metadata : bool?,
?send_last_metadata_on_connect : bool, ?start : bool, ?timeout : float,
?transport : http_transport, ?url : string?, ?user : string?, format('a),
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.chunked
(of typebool
, which defaults tofalse
): Used chunked transfer with the ‘http(s)’ protocol.connection_timeout
(of typefloat
, which defaults to5.0
): Timeout for establishing network connections (disabled is negative).description
(of typestring?
, which defaults tonull
)dumpfile
(of typestring?
, which defaults tonull
): Dump stream to file, for debugging purpose. Disabled if null.encoding
(of typestring?
, which defaults tonull
): Encoding used to send metadata and stream info (name, genre and description). If null, defaults to “UTF-8”.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.format
(of typestring
, which defaults to""
): Format, e.g. “audio/ogg”. When empty, the encoder is used to guess.genre
(of typestring?
, which defaults tonull
)headers
(of type[string * string]
, which defaults to[("User-Agent", "Liquidsoap/2.3.1+git@f51e9681e (Unix; OCaml 4.14.2)")]
): Additional headers.host
(of typestring
, which defaults to"localhost"
)icy_metadata
(of type[string]
, which defaults to["song", "title", "artist", "genre", "date", "album", "tracknum", "comment", "dj", "next"]
): List of metadata to send with ICY metadata updateicy_song
(of type([string * string]) -> string?
, which defaults to<fun>
): Function used to generate the default icy “song” metadata. Metadata is not added when returningnull
. Default:$(artist) - $(title)
if both are defined, otherwiseartist
ortitle
if either is defined ornull
.method
(of typestring
, which defaults to"source"
): Method to use with the ‘http(s)’ protocol. One of: ‘source’, ‘put’ or ‘post’.mount
(of typestring
): Source mount point.name
(of typestring?
, which defaults tonull
)on_connect
(of type() -> unit
, which defaults to{()}
): Callback executed when connection is established.on_disconnect
(of type() -> unit
, which defaults to{()}
): Callback executed when connection stops.on_error
(of type(string) -> float
, which defaults tofun (_) -> 3.0
): Callback executed when an error happens. The callback receives a string representation of the error that occurred and returns a float. If returned value is positive, connection will be tried again after this amount of time (in seconds).on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.password
(of typestring
, which defaults to"hackme"
)port
(of typeint
, which defaults to8000
)prefer_address
(of typestring?
, which defaults tonull
): Preferred address type when resolving hostnames. One of:"system"
,"ipv4"
or"ipv6"
. Defaults tosettings.icecast.prefer_address
whennull
.public
(of typebool
, which defaults totrue
)register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.send_icy_metadata
(of typebool?
, which defaults tonull
): Send new metadata using the ICY protocol. Guessed whennull
send_last_metadata_on_connect
(of typebool
, which defaults totrue
): Send the source’s last metadata when connecting to the remote icecast server.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.timeout
(of typefloat
, which defaults to30.0
): Timeout for network read and write.transport
(of typehttp_transport
, which defaults to<unix_transport>
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputurl
(of typestring?
, which defaults tonull
)user
(of typestring?
, which defaults tonull
): User for shout source connection. Defaults to “source” for icecast connections. Useful only in special cases, like with per-mountpoint users.(unlabeled)
(of typeformat('a)
): Encoding format.(unlabeled)
(of typesource('a)
): The source to output
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.jack
Output stream to jack.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?self_sync : bool,
?server : string, ?start : bool, source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults totrue
): Force the use of the dedicated bjack clock.server
(of typestring
, which defaults to""
): Jack server to connect to.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.ndi
Output stream to NDI
Type:
(?id : string?, ?fallible : bool, ?groups : string?, library_file : string,
?name : string?, ?on_start : (() -> unit), ?on_stop : (() -> unit),
?register_telnet : bool, ?self_sync : bool, ?start : bool, format('a),
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.groups
(of typestring?
, which defaults tonull
): NDI sender groupslibrary_file
(of typestring
): Path to the shared library file.name
(of typestring?
, which defaults tonull
): NDI sender nameon_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults tofalse
): Use the dedicated NDI clock.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typeformat('a)
): Encoding format. Only the%ndi
encoder is allowed here!(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
This function is experimental.
output.oss
Output the source’s stream to an OSS output device.
Type:
(?id : string?, ?device : string, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?self_sync : bool,
?start : bool, source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.device
(of typestring
, which defaults to"/dev/dsp"
): OSS device to use.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the OSS driver.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.portaudio
Output the source’s stream to a portaudio output device.
Type:
(?id : string?, ?buflen : int, ?device_id : int?, ?fallible : bool,
?latency : float?, ?on_start : (() -> unit), ?on_stop : (() -> unit),
?register_telnet : bool, ?self_sync : bool, ?start : bool,
source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.buflen
(of typeint
, which defaults to256
): Length of a buffer in samples.device_id
(of typeint?
, which defaults tonull
): Device ID. Uses default device ifnull
.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.latency
(of typefloat?
, which defaults tonull
): Device latency. Only used when specifying device ID.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the portaudio driver.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.pulseaudio
Output the source’s stream to a pulseaudio output device.
Type:
(?id : string?, ?client : string, ?device : string?, ?fallible : bool,
?on_error : ((string) -> unit), ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?retry_delay : float,
?self_sync : bool, ?start : bool, source(audio=pcm('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.client
(of typestring
, which defaults to"liquidsoap"
)device
(of typestring?
, which defaults tonull
): Device to use. Uses default if set tonull
.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_error
(of type(string) -> unit
, which defaults tofun (_) -> ()
): Function executed when an operation with the pulseaudio server returns an error.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.retry_delay
(of typefloat
, which defaults to1.0
): When fallible, time to wait before trying to connect again.self_sync
(of typebool
, which defaults totrue
): Mark the source as being synchronized by the pulseaudio driver.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(audio=pcm('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.sdl
Display a video using SDL.
Type:
(?id : string?, ?fallible : bool, ?on_start : (() -> unit),
?on_stop : (() -> unit), ?register_telnet : bool, ?start : bool,
source(video=canvas('a), 'b)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.(unlabeled)
(of typesource(video=canvas('a), 'b)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.sdl.has_video
Check whether video output is available with SDL.
Type:
() -> bool
output.shoutcast
Encode and output the stream to a shoutcast server.
Type:
(?id : string?, ?chunked : bool, ?connection_timeout : float,
?dumpfile : string?, ?encoding : string?, ?fallible : bool,
?format : string, ?genre : string?, ?headers : [string * string],
?host : string, ?icy_id : int, ?icy_metadata : [string],
?icy_song : (([string * string]) -> string?), ?name : string?,
?on_connect : (() -> unit), ?on_disconnect : (() -> unit),
?on_error : ((string) -> float), ?on_start : (() -> unit),
?on_stop : (() -> unit), ?password : string, ?port : int,
?prefer_address : string?, ?public : bool, ?register_telnet : bool,
?send_icy_metadata : bool?, ?send_last_metadata_on_connect : bool,
?start : bool, ?timeout : float, ?transport : http_transport,
?url : string?, ?user : string?, ?icy_reset : bool, ?dj : (() -> string),
?aim : string, ?icq : string, ?irc : string, format('a), source('a)) -> unit
where 'a is a set of tracks to be muxed into a source
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.chunked
(of typebool
, which defaults tofalse
): Used chunked transfer with the ‘http(s)’ protocol.connection_timeout
(of typefloat
, which defaults to5.0
): Timeout for establishing network connections (disabled is negative).dumpfile
(of typestring?
, which defaults tonull
): Dump stream to file, for debugging purpose. Disabled if null.encoding
(of typestring?
, which defaults tonull
): Encoding used to send metadata and stream info (name, genre and description). If null, defaults to “UTF-8”.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.format
(of typestring
, which defaults to""
): Format, e.g. “audio/ogg”. When empty, the encoder is used to guess.genre
(of typestring?
, which defaults tonull
)headers
(of type[string * string]
, which defaults to[("User-Agent", "Liquidsoap/2.3.1+git@f51e9681e (Unix; OCaml 4.14.2)")]
): Additional headers.host
(of typestring
, which defaults to"localhost"
)icy_id
(of typeint
, which defaults to1
): Shoutcast source ID.icy_metadata
(of type[string]
, which defaults to["song", "title", "artist", "genre", "date", "album", "tracknum", "comment", "dj", "next"]
): List of metadata to send with ICY metadata updateicy_song
(of type([string * string]) -> string?
, which defaults to<fun>
): Function used to generate the default icy “song” metadata. Metadata is not added when returningnull
. Default:$(artist) - $(title)
if both are defined, otherwiseartist
ortitle
if either is defined ornull
.name
(of typestring?
, which defaults tonull
)on_connect
(of type() -> unit
, which defaults to{()}
): Callback executed when connection is established.on_disconnect
(of type() -> unit
, which defaults to{()}
): Callback executed when connection stops.on_error
(of type(string) -> float
, which defaults tofun (_) -> 3.0
): Callback executed when an error happens. The callback receives a string representation of the error that occurred and returns a float. If returned value is positive, connection will be tried again after this amount of time (in seconds).on_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.password
(of typestring
, which defaults to"hackme"
)port
(of typeint
, which defaults to8000
)prefer_address
(of typestring?
, which defaults tonull
): Preferred address type when resolving hostnames. One of:"system"
,"ipv4"
or"ipv6"
. Defaults tosettings.icecast.prefer_address
whennull
.public
(of typebool
, which defaults totrue
)register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.send_icy_metadata
(of typebool?
, which defaults tonull
): Send new metadata using the ICY protocol. Guessed whennull
send_last_metadata_on_connect
(of typebool
, which defaults totrue
): Send the source’s last metadata when connecting to the remote icecast server.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.timeout
(of typefloat
, which defaults to30.0
): Timeout for network read and write.transport
(of typehttp_transport
, which defaults to<unix_transport>
): Http transport. Usehttp.transport.ssl
orhttp.transport.secure_transport
, when available, to enable HTTPS outputurl
(of typestring?
, which defaults tonull
)user
(of typestring?
, which defaults tonull
): User for shout source connection. Defaults to “source” for icecast connections. Useful only in special cases, like with per-mountpoint users.icy_reset
(of typebool
, which defaults totrue
): Reset shoutcast source buffer upon connecting (necessary for NSV).dj
(of type() -> string
, which defaults to{""}
): Callback to set dj name.aim
(of typestring
, which defaults to""
)icq
(of typestring
, which defaults to""
)irc
(of typestring
, which defaults to""
)(unlabeled)
(of typeformat('a) where 'a is a set of tracks to be muxed into a source
): Encoding format. Should be mp3 or AAC(+).(unlabeled)
(of typesource('a) where 'a is a set of tracks to be muxed into a source
): The source to output
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.start
(of type() -> unit
): Ask the source or output to start.stop
(of type() -> unit
): Ask the source or output to stop.time
(of type() -> float
): Get a source’s time, based on its assigned clock.
output.srt
Send a SRT stream to a distant agent.
Type:
(?id : string?, ?bind_address : string, ?connection_timeout : float?,
?enforced_encryption : bool?, ?fallible : bool, ?host : string,
?ipv6only : bool?,
?listen_callback : ((hs_version : int, peeraddr : string,
streamid : string?, srt_socket
.{
bistats : (?clear : bool?, ?instantaneous : bool?) ->
{
byteAvailRcvBuf : int,
byteAvailSndBuf : int,
byteMSS : int,
byteRcvBuf : int,
byteRcvDrop : int,
byteRcvDropTotal : int,
byteRcvUndecrypt : int,
byteRcvUndecryptTotal : int,
byteRecv : int,
byteRecvTotal : int,
byteRetrans : int,
byteRetransTotal : int,
byteSent : int,
byteSentTotal : int,
byteSndBuf : int,
byteSndDrop : int,
byteSndDropTotal : int,
mbpsBandwidth : float,
mbpsMaxBW : float,
mbpsRecvRate : float,
mbpsSendRate : float,
msRTT : float,
msRcvBuf : int,
msRcvTsbPdDelay : int,
msSndBuf : int,
msSndTsbPdDelay : int,
msTimeStamp : int,
pktCongestionWindow : int,
pktFlightSize : int,
pktFlowWindow : int,
pktRcvAvgBelatedTime : float,
pktRcvBelated : int,
pktRcvBuf : int,
pktRcvDrop : int,
pktRcvDropTotal : int,
pktRcvFilterExtra : int,
pktRcvFilterExtraTotal : int,
pktRcvFilterLoss : int,
pktRcvFilterLossTotal : int,
pktRcvFilterSupply : int,
pktRcvFilterSupplyTotal : int,
pktRcvLoss : int,
pktRcvLossTotal : int,
pktRcvRetrans : int,
pktRcvUndecrypt : int,
pktRcvUndecryptTotal : int,
pktRecv : int,
pktRecvACK : int,
pktRecvACKTotal : int,
pktRecvNAK : int,
pktRecvNAKTotal : int,
pktRecvTotal : int,
pktReorderDistance : int,
pktRetrans : int,
pktRetransTotal : int,
pktSent : int,
pktSentACK : int,
pktSentACKTotal : int,
pktSentNAK : int,
pktSentNAKTotal : int,
pktSentTotal : int,
pktSndBuf : int,
pktSndDrop : int,
pktSndDropTotal : int,
pktSndFilterExtra : int,
pktSndFilterExtraTotal : int,
pktSndLoss : int,
pktSndLossTotal : int,
usPktSndPeriod : float,
usSndDuration : int,
usSndDurationTotal : int},
bstats : (?clear : bool?) ->
{
byteAvailRcvBuf : int,
byteAvailSndBuf : int,
byteMSS : int,
byteRcvBuf : int,
byteRcvDrop : int,
byteRcvDropTotal : int,
byteRcvUndecrypt : int,
byteRcvUndecryptTotal : int,
byteRecv : int,
byteRecvTotal : int,
byteRetrans : int,
byteRetransTotal : int,
byteSent : int,
byteSentTotal : int,
byteSndBuf : int,
byteSndDrop : int,
byteSndDropTotal : int,
mbpsBandwidth : float,
mbpsMaxBW : float,
mbpsRecvRate : float,
mbpsSendRate : float,
msRTT : float,
msRcvBuf : int,
msRcvTsbPdDelay : int,
msSndBuf : int,
msSndTsbPdDelay : int,
msTimeStamp : int,
pktCongestionWindow : int,
pktFlightSize : int,
pktFlowWindow : int,
pktRcvAvgBelatedTime : float,
pktRcvBelated : int,
pktRcvBuf : int,
pktRcvDrop : int,
pktRcvDropTotal : int,
pktRcvFilterExtra : int,
pktRcvFilterExtraTotal : int,
pktRcvFilterLoss : int,
pktRcvFilterLossTotal : int,
pktRcvFilterSupply : int,
pktRcvFilterSupplyTotal : int,
pktRcvLoss : int,
pktRcvLossTotal : int,
pktRcvRetrans : int,
pktRcvUndecrypt : int,
pktRcvUndecryptTotal : int,
pktRecv : int,
pktRecvACK : int,
pktRecvACKTotal : int,
pktRecvNAK : int,
pktRecvNAKTotal : int,
pktRecvTotal : int,
pktReorderDistance : int,
pktRetrans : int,
pktRetransTotal : int,
pktSent : int,
pktSentACK : int,
pktSentACKTotal : int,
pktSentNAK : int,
pktSentNAKTotal : int,
pktSentTotal : int,
pktSndBuf : int,
pktSndDrop : int,
pktSndDropTotal : int,
pktSndFilterExtra : int,
pktSndFilterExtraTotal : int,
pktSndLoss : int,
pktSndLossTotal : int,
usPktSndPeriod : float,
usSndDuration : int,
usSndDurationTotal : int},
close : () -> unit,
pbkeylen : () -> int,
read_data : () -> int,
read_latency : () -> int,
read_timeout : () -> int,
status : () -> string,
streamid : () -> string,
write_timeout : () -> int
}) -> bool)?,
?max_clients : int?, ?messageapi : bool, ?mode : string,
?on_connect : (() -> unit), ?on_disconnect : (() -> unit),
?on_start : (() -> unit), ?on_stop : (() -> unit), ?passphrase : string?,
?payload_size : int, ?pbkeylen : int?, ?polling_delay : float, ?port : int,
?prefer_address : string?, ?read_timeout : float?, ?register_telnet : bool,
?start : bool, ?streamid : string?, ?write_timeout : float?, format('a),
source('a)) -> unit
Arguments:
id
(of typestring?
, which defaults tonull
): Force the value of the source ID.bind_address
(of typestring
, which defaults to"0.0.0.0"
): Address to bind on the local machine. Used only in listener modeconnection_timeout
(of typefloat?
, which defaults tonull
): Timeout, in seconds, after which initial connection operations are aborted if no data was received. Uses library’s default ifnull
. Used only inclient
mode.enforced_encryption
(of typebool?
, which defaults tonull
): Enforces that both connection parties have the same passphrase set, or both do not set the passphrase, otherwise the connection is rejected.fallible
(of typebool
, which defaults tofalse
): Allow the child source to fail, in which case the output will be stopped until the source is available again.host
(of typestring
, which defaults to"localhost"
): Address to connect to. Used only in caller mode.ipv6only
(of typebool?
, which defaults tonull
): Iftrue
, binding to the ipv6 wildcard address::
will bind to both IPv6 and IPv4 wildcard address. Defaults to system default whennull
.listen_callback
(of type((hs_version : int, peeraddr : string, streamid : string?, srt_socket .{ bistats : (?clear : bool?, ?instantaneous : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, bstats : (?clear : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, close : () -> unit, pbkeylen : () -> int, read_data : () -> int, read_latency : () -> int, read_timeout : () -> int, status : () -> string, streamid : () -> string, write_timeout : () -> int }) -> bool)?
, which defaults tonull
): Callback used to decide whether to accept new incoming connections. Used in listener mode only.max_clients
(of typeint?
, which defaults tonull
): Max number of connected clients (listener mode only)messageapi
(of typebool
, which defaults totrue
): Use message apimode
(of typestring
, which defaults to"caller"
): Mode to operate on. One of:"listener"
(waits for connection to come in) or"caller"
(initiate connection to a remote server)on_connect
(of type() -> unit
, which defaults to{()}
): Function to execute when connected.on_disconnect
(of type() -> unit
, which defaults to{()}
): Function to execute when disconnectedon_start
(of type() -> unit
, which defaults to{()}
): Callback executed when output starts.on_stop
(of type() -> unit
, which defaults to{()}
): Callback executed when output stops.passphrase
(of typestring?
, which defaults tonull
): When set to a non-empty string, this option enables encryption and sets the passphrase for it. Seelibsrt
documentation for more details.payload_size
(of typeint
, which defaults to1316
): Payload size.pbkeylen
(of typeint?
, which defaults tonull
): Set encryption key length. Seelibsrt
documentation for more details.polling_delay
(of typefloat
, which defaults to2.0
): Delay between connection attempts. Used only in caller mode.port
(of typeint
, which defaults to8000
): Port to bind on the local machine (listener mode) or to connect to (caller mode). The termport
as used in SRT is occasionally identical to the termUDP port
. However SRT offers more flexibility than UDP because it manages ports as its own resources. For example, one port may be shared between various services.prefer_address
(of typestring?
, which defaults tonull
): Preferred address type when resolving hostnames. One of:"system"
,"ipv4"
or"ipv6"
. Defaults to globalsrt.prefer_connection
settings whennull
.read_timeout
(of typefloat?
, which defaults to1.0
): Timeout, in seconds, after which read operations are aborted if no data was received, indefinite ifnull
.register_telnet
(of typebool
, which defaults totrue
): Register telnet commands for this output.start
(of typebool
, which defaults totrue
): Start output as soon as it is available.streamid
(of typestring?
, which defaults tonull
): Setstreamid
. This value can be retrieved by the listener side when connecting to it. Used in caller mode only.write_timeout
(of typefloat?
, which defaults to1.0
): Timeout, in seconds, after which write operations are aborted if no data was received, indefinite ifnull
.(unlabeled)
(of typeformat('a)
): Encoding format.(unlabeled)
(of typesource('a)
)
Methods:
buffered
(of type() -> [string * float]
): Length of buffered data.clock
(of typeclock
): The source’s clockduration
(of type() -> float
): Estimation of the duration of the current track.elapsed
(of type() -> float
): Elapsed time in the current track.fallible
(of typebool
): Indicate if a source may fail, i.e. may not be ready to stream.id
(of type() -> string
): Identifier of the source.is_active
(of type() -> bool
):true
if the source is active, i.e. it is continuously animated by its own clock whenever it is ready. Typically,true
for outputs and sources such asinput.http
.is_ready
(of type() -> bool
): Indicate if a source is ready to stream. This does not mean that the source is currently streaming, just that its resources are all properly initialized.is_started
(of type() -> bool
):true
if the output or source is started.is_up
(of type() -> bool
): Indicate that the source can be asked to produce some data at any time. This istrue
when the source is currently being used or if it could be used at any time, typically inside aswitch
orfallback
.last_metadata
(of type() -> [string * string]?
): Return the last metadata from the source.log
(of type{level : (() -> int?).{set : (int) -> unit}}
): Get or set the source’s log level, from1
to5
.on_metadata
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on metadata packets.on_shutdown
(of type((() -> unit)) -> unit
): Register a function to be called when source shuts down.on_track
(of type((([string * string]) -> unit)) -> unit
): Call a given handler on new tracks.on_wake_up
(of type((() -> unit)) -> unit
): Register a function to be called after the source is asked to get ready. This is when, for instance, the source’s final ID is set.register_command
(of type(?usage : string?, description : string, string, ((string) -> string)) -> unit
): Register a server command for this source. Command is registered under the source’s id namespace when it gets up and de-registered when it gets down.remaining
(of type() -> float
): Estimation of remaining time in the current track.reset_last_metadata_on_track
(of type(() -> bool).{set : (bool) -> unit}
): Iftrue
, the source’slast_metadata
is reset on each new track. If a metadata is present along with the track mark, then it becomes the newlast_metadata
, otherwise,last_metadata becomes
null`.seek
(of type(float) -> float
): Seek forward, in seconds (returns the amount of time effectively seeked).self_sync
(of type() -> bool
): Is the source currently controlling its own real-time loop.shutdown
(of type() -> unit
): Shutdown the output or source.skip
(of type() -> unit
): Skip to the next track.sockets
(of type() -> [string * srt_socket .{ bistats : (?clear : bool?, ?instantaneous : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int, pktRecvACKTotal : int, pktRecvNAK : int, pktRecvNAKTotal : int, pktRecvTotal : int, pktReorderDistance : int, pktRetrans : int, pktRetransTotal : int, pktSent : int, pktSentACK : int, pktSentACKTotal : int, pktSentNAK : int, pktSentNAKTotal : int, pktSentTotal : int, pktSndBuf : int, pktSndDrop : int, pktSndDropTotal : int, pktSndFilterExtra : int, pktSndFilterExtraTotal : int, pktSndLoss : int, pktSndLossTotal : int, usPktSndPeriod : float, usSndDuration : int, usSndDurationTotal : int}, bstats : (?clear : bool?) -> { byteAvailRcvBuf : int, byteAvailSndBuf : int, byteMSS : int, byteRcvBuf : int, byteRcvDrop : int, byteRcvDropTotal : int, byteRcvUndecrypt : int, byteRcvUndecryptTotal : int, byteRecv : int, byteRecvTotal : int, byteRetrans : int, byteRetransTotal : int, byteSent : int, byteSentTotal : int, byteSndBuf : int, byteSndDrop : int, byteSndDropTotal : int, mbpsBandwidth : float, mbpsMaxBW : float, mbpsRecvRate : float, mbpsSendRate : float, msRTT : float, msRcvBuf : int, msRcvTsbPdDelay : int, msSndBuf : int, msSndTsbPdDelay : int, msTimeStamp : int, pktCongestionWindow : int, pktFlightSize : int, pktFlowWindow : int, pktRcvAvgBelatedTime : float, pktRcvBelated : int, pktRcvBuf : int, pktRcvDrop : int, pktRcvDropTotal : int, pktRcvFilterExtra : int, pktRcvFilterExtraTotal : int, pktRcvFilterLoss : int, pktRcvFilterLossTotal : int, pktRcvFilterSupply : int, pktRcvFilterSupplyTotal : int, pktRcvLoss : int, pktRcvLossTotal : int, pktRcvRetrans : int, pktRcvUndecrypt : int, pktRcvUndecryptTotal : int, pktRecv : int, pktRecvACK : int,