diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:28:17 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:28:17 +0000 |
commit | 7a46c07230b8d8108c0e8e80df4522d0ac116538 (patch) | |
tree | d483300dab478b994fe199a5d19d18d74153718a /man | |
parent | Initial commit. (diff) | |
download | pipewire-7a46c07230b8d8108c0e8e80df4522d0ac116538.tar.xz pipewire-7a46c07230b8d8108c0e8e80df4522d0ac116538.zip |
Adding upstream version 0.3.65.upstream/0.3.65upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | man/meson.build | 44 | ||||
-rw-r--r-- | man/pipewire-pulse.1.rst.in | 48 | ||||
-rw-r--r-- | man/pipewire.1.rst.in | 54 | ||||
-rw-r--r-- | man/pipewire.conf.5.rst.in | 113 | ||||
-rw-r--r-- | man/pw-cat.1.rst.in | 174 | ||||
-rw-r--r-- | man/pw-cli.1.rst.in | 190 | ||||
-rw-r--r-- | man/pw-dot.1.rst.in | 65 | ||||
-rw-r--r-- | man/pw-jack.1.rst.in | 65 | ||||
-rw-r--r-- | man/pw-link.1.rst.in | 139 | ||||
-rw-r--r-- | man/pw-metadata.1.rst.in | 67 | ||||
-rw-r--r-- | man/pw-mididump.1.rst.in | 49 | ||||
-rw-r--r-- | man/pw-mon.1.rst.in | 46 | ||||
-rw-r--r-- | man/pw-profiler.1.rst.in | 57 | ||||
-rw-r--r-- | man/pw-top.1.rst.in | 178 |
14 files changed, 1289 insertions, 0 deletions
diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 0000000..a262fb8 --- /dev/null +++ b/man/meson.build @@ -0,0 +1,44 @@ +manpage_conf = configuration_data() +manpage_conf.set('PACKAGE_NAME', meson.project_name()) +manpage_conf.set('PACKAGE_VERSION', meson.project_version()) +manpage_conf.set('PACKAGE_URL', 'https://pipewire.org') +manpage_conf.set('PACKAGE_BUGREPORT', 'https://gitlab.freedesktop.org/pipewire/pipewire/issues') +manpage_conf.set('PIPEWIRE_CONFIG_DIR', pipewire_configdir) +manpage_conf.set('PIPEWIRE_CONFDATADIR', pipewire_confdatadir) + +manpages = [ + 'pipewire.1.rst.in', + 'pipewire-pulse.1.rst.in', + 'pipewire.conf.5.rst.in', + 'pw-cat.1.rst.in', + 'pw-cli.1.rst.in', + 'pw-dot.1.rst.in', + 'pw-link.1.rst.in', + 'pw-metadata.1.rst.in', + 'pw-mididump.1.rst.in', + 'pw-mon.1.rst.in', + 'pw-profiler.1.rst.in', + 'pw-top.1.rst.in', +] + +if get_option('pipewire-jack').allowed() + manpages += 'pw-jack.1.rst.in' +endif + +if not generate_manpages + subdir_done() +endif + +foreach m : manpages + file = m.split('.rst.in').get(0) + rst = configure_file(input : m, + output : file + '.rst', + configuration : manpage_conf) + section = file.split('.').get(-1) + custom_target(file + '.target', + output : file, + input : rst, + command : [rst2man, '@INPUT@', '@OUTPUT@'], + install : true, + install_dir : get_option('mandir') / 'man' + section) +endforeach diff --git a/man/pipewire-pulse.1.rst.in b/man/pipewire-pulse.1.rst.in new file mode 100644 index 0000000..eed994b --- /dev/null +++ b/man/pipewire-pulse.1.rst.in @@ -0,0 +1,48 @@ +pipewire-pulse +############## + +----------------------------------- +The PipeWire PulseAudio replacement +----------------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pipewire-pulse** [*options*] + +DESCRIPTION +=========== + +**pipewire-pulse** starts a PulseAudio-compatible daemon that integrates with +the PipeWire media server. This daemon is a drop-in replacement for the +PulseAudio daemon. + +OPTIONS +======= + +-h | --help + Show help. + +-v | --verbose + Increase the verbosity by one level. This option may be specified multiple + times. + +--version + Show version information. + +-c | --config=FILE + Load the given config file (Default: pipewire-pulse.conf). + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; +PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)`` diff --git a/man/pipewire.1.rst.in b/man/pipewire.1.rst.in new file mode 100644 index 0000000..8b63839 --- /dev/null +++ b/man/pipewire.1.rst.in @@ -0,0 +1,54 @@ +pipewire +######## + +------------------------- +The PipeWire media server +------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pipewire** [*options*] + +DESCRIPTION +=========== + +PipeWire is a service that facilitates sharing of multimedia content +between devices and applications. + +The **pipewire** daemon reads a config file that is further documented in +``pipewire.conf(5)`` manual page. + +OPTIONS +======= + +-h | --help + Show help. + +-v | --verbose + Increase the verbosity by one level. This option may be specified multiple + times. + +--version + Show version information. + +-c | --config=FILE + Load the given config file (Default: pipewire.conf). + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; +PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pw-top(1)``, +``pw-dump(1)``, +``pw-mon(1)``, +``pw-cat(1)``, +``pw-cli(1)``, diff --git a/man/pipewire.conf.5.rst.in b/man/pipewire.conf.5.rst.in new file mode 100644 index 0000000..3e3a954 --- /dev/null +++ b/man/pipewire.conf.5.rst.in @@ -0,0 +1,113 @@ +pipewire.conf +############# + +-------------------------------------- +The PipeWire server configuration file +-------------------------------------- + +:Manual section: 5 +:Manual group: File Formats Manual + +.. _synopsis: + +SYNOPSIS +======== + +*$XDG_CONFIG_HOME/pipewire/pipewire.conf* + +*@PIPEWIRE_CONFIG_DIR@/pipewire.conf* + +*@PIPEWIRE_CONFDATADIR@/pipewire.conf* + +*@PIPEWIRE_CONFDATADIR@/pipewire.conf.d/* + +*@PIPEWIRE_CONFIG_DIR@/pipewire.conf.d/* + +*$XDG_CONFIG_HOME/pipewire/pipewire.conf.d/* + +DESCRIPTION +=========== + +PipeWire is a service that facilitates sharing of multimedia content +between devices and applications. + +On startup, the daemon reads a main configuration file to configure +itself. It executes a series of commands listed in the config +file. + +The config files are loaded in the order listed in the SYNOPSIS_. +The environment variables ``PIPEWIRE_CONFIG_DIR``, ``PIPEWIRE_CONFIG_PREFIX`` +and ``PIPEWIRE_CONFIG_NAME`` can be used to specify an alternative config +directory, subdirectory and file respectively. + +Next to the configuration file can be a directory with the same name as +the file with a ``.d/`` suffix. All directories in the SYNOPSIS_ directory +search paths are traversed in the listed order and the contents of the +``*.conf`` files inside them are appended to the main configuration file +as overrides. Object sections are merged and array sections are appended. + + +CONFIGURATION FILE FORMAT +========================= + +The configuration file format is grouped into sections. A section +is either a dictionary, {}, or an array, []. Dictionary and array +entries are separated by whitespace and may be simple value +assignment, an array or a dictionary. For example: + +name = value # simple assignment + +name = { key1 = value1 key2 = value2 } # a dictionary with two +entries + +name = [ value1 value2 ] # an array with two entries + +name = [ { k = v1 } { k = v2 } ] # an array of dictionaries + + +The configuration files can be expressed in full JSON syntax but for ease +of use, a relaxed format may be used where: + + * ``:`` to delimit keys and values can be substuted by ``=`` or a space. + * ``"`` around keys and string can be omited as long as no special characters + are used in the strings. + * ``,`` to separate objects can be replaced with a whitespace character. + * ``#`` can be used to start a comment until the line end + + +CONFIGURATION FILE SECTIONS +=========================== + +context.properties + Dictionary. These properties configure the PipeWire instance. + +context.spa-libs + Dictionary. Maps plugin features with globs to a spa library. + +context.modules + Array of dictionaries. Each entry in the array is a dictionary with the *name* of the module to load, + including optional *args* and *flags*. Most modules support being loaded + multiple times. + +context.objects + Array of dictionaries. Each entry in the array is a dictionary containing the *factory* to create an + object from and optional extra arguments specific to that factory. + +context.exec + Array of dictionaries. Each entry in the array is dictionary containing the *path* of a program to + execute on startup and optional *args*. + + This array used to contain an entry to start the session manager but this mode + of operation has since been demoted to development aid. Avoid starting a + session manager in this way in production environment. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-mon(1)``, diff --git a/man/pw-cat.1.rst.in b/man/pw-cat.1.rst.in new file mode 100644 index 0000000..f8df95d --- /dev/null +++ b/man/pw-cat.1.rst.in @@ -0,0 +1,174 @@ +pw-cat +###### + +----------------------------------- +Play and record media with PipeWire +----------------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-cat** [*options*] [*FILE* \| -] +| **pw-play** [*options*] [*FILE* \| -] +| **pw-record** [*options*] [*FILE* \| -] +| **pw-midiplay** [*options*] [*FILE* \| -] +| **pw-midirecord** [*options*] [*FILE* \| -] +| **pw-dsdplay** [*options*] [*FILE* \| -] + +DESCRIPTION +=========== + +**pw-cat** is a simple tool for playing back or +capturing raw or encoded media files on a PipeWire +server. It understands all audio file formats supported by +``libsndfile`` for PCM capture and playback. + +It understands standard MIDI files for playback and recording. This tool +will not render MIDI files, it will simply make the MIDI events available +to the graph. You need a MIDI renderer such as qsynth, timidity or a hardware +MIDI rendered to hear the MIDI. + +DSD playback is supported with the DSF file format. This tool will only work +with native DSD capable hardware and will produce an error when no such +hardware was found. + +When the *FILE* is - input and output will be from STDIN and +STDOUT respectively. + +OPTIONS +======= + +-h | --help + Show help. + +--version + Show version information. + +-v | --verbose + Verbose operation. + +-R | --remote=NAME + The name the *remote* instance to connect to. If left unspecified, + a connection is made to the default PipeWire instance. + +-p | --playback + Playback mode. Read data from the specified file, and play it back. If the tool + is called under the name **pw-play** or **pw-midiplay** this is the default. + +-r | --record + Recording mode. Capture data and write it to the specified file. If the tool is + called under the name **pw-record** or **pw-midirecord** this is the default. + +-m | --midi + MIDI mode. *FILE* is a MIDI file. If the tool is called under the name + **pw-midiplay** or **pw-midirecord** this is the default. + Note that this program will *not* render the MIDI events into audible samples, + it will simply provide the MIDI events in the graph. You need a separate + MIDI renderer such as qsynth, timidity or a hardware renderer to hear the MIDI. + +-d | --dsd + DSD mode. *FILE* is a DSF file. If the tool is called under the name + **pw-dsdplay** this is the default. + Note that this program will *not* render the DSD audio. You need a DSD capable + device to play DSD content or this program will exit with an error. + +--media-type=VALUE + Set the media type property (default Audio/Midi depending on mode). + The media type is used by the session manager to select a suitable target + to link to. + +--media-category=VALUE + Set the media category property (default Playback/Capture depending on mode). + The media type is used by the session manager to select a suitable target + to link to. + +--media-role=VALUE + Set the media role property (default Music). + The media type is used by the session manager to select a suitable target + to link to. + +--target=VALUE + Set a node target (default auto). The value can be: + + auto + Automatically select (Default) + + 0 + Don't try to link this node + + <id> + The object.serial or the node.name of a target node + +--latency=VALUE[*units*] + Set the node latency (default 100ms) + + The latency determines the minimum amount of time it takes + for a sample to travel from application to device (playback) and + from device to application (capture). + + The latency determines the size of the buffers that the + application will be able to fill. Lower latency means smaller + buffers but higher overhead. Higher latency means larger buffers + and lower overhead. + + Units can be **s** for seconds, **ms** for milliseconds, + **us** for microseconds, **ns** for nanoseconds. + If no units are given, the latency value is samples with the samplerate + of the file. + +-P | --properties=VALUE + Set extra stream properties as a JSON object. + +-q | --quality=VALUE + Resampler quality. When the samplerate of the source or + destination file does not match the samplerate of the server, the + data will be resampled. Higher quality uses more CPU. Values between 0 and 15 are + allowed, the default quality is 4. + +--rate=VALUE + The sample rate, default 48000. + +--channels=VALUE + The number of channels, default 2. + +--channel-map=VALUE + The channelmap. Possible values include: + **mono**, **stereo**, **surround-21**, + **quad**, **surround-22**, **surround-40**, + **surround-31**, **surround-41**, + **surround-50**, **surround-51**, + **surround-51r**, **surround-70**, + **surround-71** or a comma separated list of channel names: + **FL**, **FR**, **FC**, **LFE**, + **SL**, **SR**, **FLC**, **FRC**, + **RC**, **RL**, **RR**, **TC**, + **TFL**, **TFC**, **TFR**, **TRL**, + **TRC**, **TRR**, **RLC**, **RRC**, + **FLW**, **FRW**, **LFE2**, **FLH**, + **FCH**, **FRH**, **TFLC**, **TFRC**, + **TSL**, **TSR**, **LLFR**, **RLFE**, + **BC**, **BLC**, **BRC** + +--format=VALUE + The sample format to use. One of: + **u8**, **s8**, **s16** (default), **s24**, **s32**, + **f32**, **f64**. + +--volume=VALUE + The stream volume, default 1.000. + Depending on the locale you have configured, "," or "." may be + used as a decimal separator. Check with **locale** command. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``PipeWire(1)``, +``pw-mon(1)``, diff --git a/man/pw-cli.1.rst.in b/man/pw-cli.1.rst.in new file mode 100644 index 0000000..ca0a2e8 --- /dev/null +++ b/man/pw-cli.1.rst.in @@ -0,0 +1,190 @@ +pw-cli +###### + +----------------------------------- +The PipeWire Command Line Interface +----------------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-cli** [*command*] + +DESCRIPTION +=========== + +Interact with a PipeWire instance. + +When a command is given, **pw-cli** +will execute the command and exit + +When no command is given, **pw-cli** +starts an interactive session with the default PipeWire instance +*pipewire-0*. + +Connections to other, remote instances can be made. The current instance +name is displayed at the prompt. Some commands operate on the current +instance and some on the local instance. + +Use the 'help' command to list the available commands. + +GENERAL COMMANDS +================ + +help | h + Show a quick help on the commands available. It also lists the aliases + for many commands. + +quit | q + Exit from **pw-cli** + +MODULE MANAGEMENT +================= + +| Modules are loaded and unloaded in the local instance, thus the pw-cli +| binary itself and can add functionality or objects to the local +| instance. It is not possible in PipeWire to load modules in another +| instance. + +load-module *name* [*arguments...*] + Load a module specified by its name and arguments. For most + modules it is OK to be loaded more than once. + + This command returns a module variable that can be used + to unload the module. + +unload-module *module-var* + Unload a module, specified either by its variable. + +OBJECT INTROSPECTION +==================== + +list-objects + List the objects of the current instance. + + Objects are listed with their *id*, *type* and *version*. + +info *id* | *all* + Get information about a specific object or *all* objects. + + Requesting info about an object will also notify you of changes. + +WORKING WITH REMOTES +==================== + +connect [*remote-name*] + Connect to a remote instance and make this the new current + instance. + + If no remote name is specified, a connection is made to + the default remote instance, usually *pipewire-0*. + + This command returns a remote var that can be used to disconnect or + switch remotes. + +disconnect [*remote-var*] + Disconnect from a *remote instance*. + + If no remote name is specified, the current instance is disconnected. + +list-remotes + List all *remote instances*. + +switch-remote [*remote-var*] + Make the specified *remote* the current instance. + + If no remote name is specified, the local instance is made current. + +NODE MANAGEMENT +=============== + +create-node *factory-name* [*properties...*] + Create a node from a factory in the current instance. + + Properties are key=value pairs separated by whitespace. + + This command returns a *node variable*. + +export-node *node-id* [*remote-var*] + Export a node from the local instance to the specified instance. + When no instance is specified, the node will be exported to the current + instance. + +DEVICE MANAGEMENT +================= + +create-device *factory-name* [*properties...*] + Create a device from a factory in the current instance. + + Properties are key=value pairs separated by whitespace. + + This command returns a *device variable*. + + +LINK MANAGEMENT +=============== + +create-link *node-id* *port-id* *node-id* *port-id* [*properties...*] + Create a link between 2 nodes and ports. + + Port *ids* can be *-1* to automatically select an available port. + + Properties are key=value pairs separated by whitespace. + + This command returns a *link variable*. + +GLOBALS MANAGEMENT +================== + +destroy *object-id* + Destroy a global object. + + +PARAMETER MANAGEMENT +==================== + +enum-params *object-id* *param-id* + Enumerate params of an object. + + *param-id* can also be given as the param short name. + +set-param *object-id* *param-id* *param-json* + Set param of an object. + + *param-id* can also be given as the param short name. + +PERMISSION MANAGEMENT +===================== + +permissions *client-id* *object-id* *permission* + Set permissions for a client. + + *object-id* can be *-1* to set the default permissions. + +get-permissions *client-id* + Get permissions of a client. + + +COMMAND MANAGEMENT +================== + +send-command *object-id* + Send a command to an object. + + +EXAMPLES +======== + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-mon(1)``, diff --git a/man/pw-dot.1.rst.in b/man/pw-dot.1.rst.in new file mode 100644 index 0000000..4599539 --- /dev/null +++ b/man/pw-dot.1.rst.in @@ -0,0 +1,65 @@ +pw-dot +###### + +--------------------------- +The PipeWire dot graph dump +--------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-dot** [*options*] + +DESCRIPTION +=========== + +Create a .dot file of the PipeWire graph. + +The .dot file can then be visualized with a tool like **dotty** +or rendered to a PNG file with ``dot -Tpng pw.dot -o pw.png``. + +OPTIONS +======= + +-r | --remote=NAME + The name the remote instance to connect to. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +-a | --all + Show all object types. + +-s | --smart + Show linked objects only. + +-d | --detail + Show all object properties. + +-o FILE | --output=FILE + Output file name (Default pw.dot). Use - for stdout. + +-L | --lr + Lay the graph from left to right, instead of dot's default top to bottom. + +-9 | --90 + Lay the graph using 90-degree angles in edges. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-cli(1)``, +``pw-mon(1)``, diff --git a/man/pw-jack.1.rst.in b/man/pw-jack.1.rst.in new file mode 100644 index 0000000..0781b3d --- /dev/null +++ b/man/pw-jack.1.rst.in @@ -0,0 +1,65 @@ +pw-jack +####### + +---------------------------- +Use PipeWire instead of JACK +---------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-jack** [*options*] *COMMAND* [*FILE*] + +DESCRIPTION +=========== + +**pw-jack** modifies the ``LD_LIBRARY_PATH`` environment +variable so that applications will load PipeWire's reimplementation +of the JACK client libraries instead of JACK's own +libraries. This results in JACK clients being redirected to +PipeWire. + +If PipeWire's reimplementation of the JACK client libraries +has been installed as a system-wide replacement for JACK's +own libraries, then the whole system already behaves in that way, +in which case **pw-jack** has no practical effect. + +OPTIONS +======= + +-h + Show help. + +-r NAME + The name of the remote instance to connect to. If left + unspecified, a connection is made to the default PipeWire + instance. + +-v + Verbose operation. + +EXAMPLES +======== + +| **pw-jack** sndfile-jackplay /usr/share/sounds/freedesktop/stereo/bell.oga + +NOTES +===== + +Using PipeWire for audio is currently considered to be +experimental. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; +PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``jackd(1)``, diff --git a/man/pw-link.1.rst.in b/man/pw-link.1.rst.in new file mode 100644 index 0000000..7d1001c --- /dev/null +++ b/man/pw-link.1.rst.in @@ -0,0 +1,139 @@ +pw-link +####### + +------------------------- +The PipeWire Link Command +------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-link** [*options*] -o|-i|-l [*out-pattern*] [*in-pattern*] + +| **pw-link** [*options*] *output* *input* + +| **pw-link** [*options*] -d *output* *input* + +| **pw-link** [*options*] -d *link-id* + +DESCRIPTION +=========== + +List, create and destroy links between PipeWire ports. + +COMMON OPTIONS +============== + +-r | --remote=NAME + The name the *remote* instance to monitor. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +LISTING PORTS AND LINKS +======================= + +Specify one of -o, -i or -l to list the matching optional input and +output ports and their links. + +-o | --output + List output ports + +-i | --input + List output ports + +-l | --links + List links + +-m | --monitor + Monitor links and ports. **pw-link** will not exit but monitor and + print new and destroyed ports or links. + +-I | --id + List IDs. Also list the unique link and port ids. + +-v | --verbose + Verbose port properties. Also list the port-object-path and the port-alias. + +CONNECTING PORTS +================ + +Without any list option (-i, -o or -l), the given ports will be linked. +Valid port specifications are: + +*port-id* + As obtained with the -I option when listing ports. + +*node-name:port-name* + As obtained when listing ports. + +*port-object-path* + As obtained from the first alternative name for the port when listing + them with the -v option. + +*port-alias* + As obtained from the second alternative name for the ports when listing + them with the -v option. + +Extra options when linking can be given: + +-L | --linger + Linger. Will create a link that exists after **pw-link** is destroyed. + This is the default behaviour, unless the -m option is given. + +-P | --passive + Passive link. A passive link will keep both nodes it links inactive + unless another non-passive link is activating the nodes. You can use this + to link a sink to a filter and have them both suspended when nothing else + is linked to either of them. + +-p | --props=PROPS + Properties as JSON object. Give extra properties when creaing the link. + +DISCONNECTING PORTS +=================== + +When the -d option is given, an existing link between port is destroyed. + +To disconnect port, a single *link-id*, as obtained when listing links with +the -I option, or two port specifications can be given. See the connecting +ports section for valid port specifications. + +-d | --disconnect + Disconnect ports + +EXAMPLES +======== + +**pw-link** -iol + List all port and their links. + +**pw-link** -lm + List all links and monitor changes until **pw-link** is stopped. + +**pw-link** paplay:output_FL alsa_output.pci-0000_00_1b.0.analog-stereo:playback_FL + Link the given output port to the input port. + +**pw-link** -lI + List links and their Id. + +**pw-link** -d 89 + Destroy the link with id 89. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-cli(1)``, diff --git a/man/pw-metadata.1.rst.in b/man/pw-metadata.1.rst.in new file mode 100644 index 0000000..f83618b --- /dev/null +++ b/man/pw-metadata.1.rst.in @@ -0,0 +1,67 @@ +pw-metadata +########### + +--------------------- +The PipeWire metadata +--------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-metadata** [*options*] [*id* [*key* [*value* [*type* ] ] ] ] + +DESCRIPTION +=========== + +Monitor, set and delete metadata on PipeWire objects. + +Metadata are key/type/value triplets attached to objects identified +by *id*. The metadata is shared between all applications +binding to the same metadata object. When an object is destroyed, all its +metadata is automatically removed. + +When no *value* is given, **pw-metadata** will query and +log the metadata matching the optional arguments *id* +and *key*. Without any arguments, all metadata is displayed. + +When *value* is given, **pw-metadata** will set the +metadata for *id* and *key* to *value* and +an optional *type*. + +OPTIONS +======= + +-r | --remote=NAME + The name the remote instance to use. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +-m | --monitor + Keeps running and log the changes to the metadata. + +-d | --delete + + Delete all metadata for *id* or for the + specified *key* of object *id* + + Without any option, all metadata is removed + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-mon(1)``, +``pw-cli(1)``, diff --git a/man/pw-mididump.1.rst.in b/man/pw-mididump.1.rst.in new file mode 100644 index 0000000..bb56ec6 --- /dev/null +++ b/man/pw-mididump.1.rst.in @@ -0,0 +1,49 @@ +pw-mididump +########### + +---------------------- +The PipeWire MIDI dump +---------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-mididump** [*options*] [*FILE*] + +DESCRIPTION +=========== + +Dump MIDI messages to stdout. + +When a MIDI file is given, the events inside the file are printed. + +When no file is given, **pw-mididump** creates a PipeWire +MIDI input stream and will print all MIDI events received on the port to +stdout. + +OPTIONS +======= + +-r | --remote=NAME + The name the remote instance to monitor. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-cat(1)``, diff --git a/man/pw-mon.1.rst.in b/man/pw-mon.1.rst.in new file mode 100644 index 0000000..775de0a --- /dev/null +++ b/man/pw-mon.1.rst.in @@ -0,0 +1,46 @@ +pw-mon +###### + +-------------------- +The PipeWire monitor +-------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-mon** [*options*] + +DESCRIPTION +=========== + +Monitor objects on the PipeWire instance. + +OPTIONS +======= + +-r | --remote=NAME + The name the *remote* instance to monitor. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +-N | --color=WHEN + Whether to use color, one of 'never', 'always', or 'auto'. The + default is 'auto'. **-N** is equivalent to **--color=never**. + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, diff --git a/man/pw-profiler.1.rst.in b/man/pw-profiler.1.rst.in new file mode 100644 index 0000000..6fb57c8 --- /dev/null +++ b/man/pw-profiler.1.rst.in @@ -0,0 +1,57 @@ +pw-profiler +########### + +--------------------- +The PipeWire profiler +--------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-profiler** [*options*] + +DESCRIPTION +=========== + +Start profiling a PipeWire instance. + +If the server has the profiler module loaded, this program will +connect to it and log the profiler data. Profiler data contains +times and durations when processing nodes and devices started and +completed. + +When this program is stopped, a set of **gnuplot** files and a script to generate +SVG files from the .plot files is generated, along with a .html file to +visualize the profiling results in a browser. + +This function uses the same data used by *pw-top*. + +OPTIONS +======= + +-r | --remote=NAME + The name the remote instance to monitor. If left unspecified, + a connection is made to the default PipeWire instance. + +-h | --help + Show help. + +--version + Show version information. + +-o | --output=FILE + Profiler output name (default "profiler.log"). + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-top(1)``, diff --git a/man/pw-top.1.rst.in b/man/pw-top.1.rst.in new file mode 100644 index 0000000..ab8569b --- /dev/null +++ b/man/pw-top.1.rst.in @@ -0,0 +1,178 @@ +pw-top +###### + +--------------------------- +The PipeWire process viewer +--------------------------- + +:Manual section: 1 +:Manual group: General Commands Manual + +SYNOPSIS +======== + +| **pw-top** [*options*] + +DESCRIPTION +=========== + +The *pw-top* program provides a dynamic real-time view of the pipewire +node and device statistics. + +A hierarchical view is shown of Driver nodes and follower nodes. The Driver +nodes are actively using a timer to schedule dataflow in the followers. The +followers of a driver node as shown below their driver with a + sign in +a tree-like representation. + +The columns presented are as follows: + +S + Node status. + E = ERROR + C = CREATING + S = SUSPENDED + I = IDLE + R = RUNNING + +ID + The ID of the pipewire node/device, as found in *pw-dump* and *pw-cli* + +QUANT + The current quantum (for drivers) and the suggested quantum for follower + nodes. + + The quantum by itself needs to be divided by the RATE column to calculate + the duration of a scheduling period in fractions of a second. + + For a QUANT of 1024 and a RATE of 48000, the duration of one period in the + graph is 1024/48000 or 21.3 milliseconds. + + Follower nodes can have a 0 QUANT field, which means that the node does not + have a suggestion for the quantum and thus uses what the driver selected. + + The driver will use the lowest quantum of any of the followers. If none of + the followers select a quantum, the default quantum in the pipewire configuration + file will be used. + + The QUANT on the drivers usually translates directly into the number of audio + samples processed per processing cycle of the graph. + + See also https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/FAQ#pipewire-buffering-explained + +RATE + The current rate (for drivers) and the suggested rate for follower + nodes. + + This is the rate at which the *graph* processes data and needs to be combined with + the QUANT value to derive the duration of a processing cycle in the graph. + + Some nodes can have a 0 RATE, which means that they don't have any rate + suggestion for the graph. Nodes that suggest a rate can make the graph switch + rates if the graph is otherwise idle and the new rate is allowed as + a possible graph rate (see the pipewire configuration file). + + The RATE on (audio) driver nodes usually also translates directly to the + samplerate used by the device. Although some devices might not be able to + operate at the given samplerate, in which case resampling will need to be + done. The negotiated samplerate with the device and stream can be found in + the FORMAT column. + +WAIT + The waiting time of a node is the elapsed time between when the node + is ready to start processing and when it actually started processing. + + For Driver nodes, this is the time between when the node wakes up to + start processing the graph and when the driver (and thus also the graph) + completes a cycle. The WAIT time for driver is thus the elapsed time + processing the graph. + + For follower nodes, it is the time spent between being woken up (when all + dependencies of the node are satisfied) and when processing starts. The + WAIT time for follower nodes is thus mostly caused by context switching. + + A value of --- means that the node was not signaled. A value of +++ + means that the node was signaled but not awake. + +BUSY + The processing time is started when the node starts processing until it + completes and wakes up the next nodes in the graph. + + A value of --- means that the node was not started. A value of +++ + means that the node was started but did not complete. + +W/Q + Ratio of WAIT / QUANT. + + The W/Q time of the driver node is a good measure of the graph + load. The running averages of the driver W/Q ratios are used as the DSP + load in other (JACK) tools. + + Values of --- and +++ are copied from the WAIT column. + +B/Q + Ratio of BUSY / QUANT + + This is a good measure of the load of a particular driver or follower + node. + + Values of --- and +++ are copied from the BUSY column. + +ERR + Total of Xruns and Errors + + Xruns for drivers are when the graph did not complete a cycle. This can + be because a node in the graph also has an Xrun. It can also be caused when + scheduling delays cause a deadline to be missed, causing a hardware + Xrun. + + Xruns for followers are incremented when the node started processing but + did not complete before the end of the graph cycle deadline. + +FORMAT + The format used by the driver node or the stream. This is the hardware format + negotiated with the device or stream. + + If the stream of driver has a different rate than the graph, resampling will + be done. + + For raw audio formats, the layout is <sampleformat> <channels> <samplerate>. + + For IEC958 passthrough audio formats, the layout is IEC958 <codec> <samplerate>. + + For DSD formats, the layout is <dsd-rate> <channels>. + + For Video formats, the layout is <pixelformat> <width>x<height>. + +NAME + Name assigned to the device/node, as found in *pw-dump* node.name + + Names are prefixed by *+* when they are linked to a driver (entry above with no +) + + +OPTIONS +======= + +-h | --help + Show help. + +-r | --remote=NAME + The name the *remote* instance to monitor. If left unspecified, + a connection is made to the default PipeWire instance. + +--version + Show version information. + + +AUTHORS +======= + +The PipeWire Developers <@PACKAGE_BUGREPORT@>; PipeWire is available from @PACKAGE_URL@ + +SEE ALSO +======== + +``pipewire(1)``, +``pw-dump(1)``, +``pw-cli(1)``, +``pw-profiler(1)``, + |