source: multimedia/libdriv/pipewire.xml@ fcce6f36

12.0 12.1 12.2 gimp3 kea ken/TL2024 ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/for-12.3 xry111/llvm18 xry111/spidermonkey128 xry111/xf86-video-removal
Last change on this file since fcce6f36 was 8fbcec3, checked in by Bruce Dubbs <bdubbs@…>, 17 months ago

Update to pipewire-0.3.70.

  • Property mode set to 100644
File size: 19.5 KB
RevLine 
[dcea4e3]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY pipewire-download-http "https://github.com/PipeWire/pipewire/archive/&pipewire-version;/pipewire-&pipewire-version;.tar.gz">
8 <!ENTITY pipewire-download-ftp " ">
[8fbcec3]9 <!ENTITY pipewire-md5sum "3abd73b1b925e34799f0d1dcf51b1dcd">
[6e1854e9]10 <!ENTITY pipewire-size "2.0 MB">
11 <!ENTITY pipewire-buildsize "63 MB (with tests)">
[49b8f58]12 <!ENTITY pipewire-time "0.5 SBU (with tests, both using parallelism=4)">
[dcea4e3]13]>
14
15<sect1 id="pipewire" xreflabel="pipewire-&pipewire-version;">
16 <?dbhtml filename="pipewire.html"?>
17
18
19 <title>Pipewire-&pipewire-version;</title>
20
21 <indexterm zone="pipewire">
22 <primary sortas="a-pipewire">pipewire</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Pipewire</title>
27
28 <para>
29 The <application>pipewire</application> package contains a server and
[a0e08b2]30 userspace API to handle multimedia pipelines. This includes a universal
[dcea4e3]31 API to connect to multimedia devices, as well as sharing multimedia
32 files between applications.
33 </para>
34
[2df0265d]35 &lfs113_checked;
[dcea4e3]36
37 <bridgehead renderas="sect3">Package Information</bridgehead>
38 <itemizedlist spacing="compact">
39 <listitem>
40 <para>
41 Download (HTTP): <ulink url="&pipewire-download-http;"/>
42 </para>
43 </listitem>
44 <listitem>
45 <para>
46 Download (FTP): <ulink url="&pipewire-download-ftp;"/>
47 </para>
48 </listitem>
49 <listitem>
50 <para>
51 Download MD5 sum: &pipewire-md5sum;
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 Download size: &pipewire-size;
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Estimated disk space required: &pipewire-buildsize;
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Estimated build time: &pipewire-time;
67 </para>
68 </listitem>
69 </itemizedlist>
70
71 <bridgehead renderas="sect3">Pipewire Dependencies</bridgehead>
72
[dab0680]73 <bridgehead renderas="sect4">Recommended</bridgehead>
74 <para role="recommended">
[9bd10279]75 <xref linkend="bluez"/>,
[5dcac01]76 <phrase revision="sysv"><xref linkend="dbus"/>,</phrase>
[dcea4e3]77 <xref linkend="gstreamer10"/>,
78 <xref linkend="gst10-plugins-base"/>,
[42e419b5]79 <xref linkend="pulseaudio"/>,
[febfc1e]80 <xref linkend="sbc"/>, and
[9bd10279]81 <xref linkend="v4l-utils"/>
[dcea4e3]82 </para>
83
84 <bridgehead renderas="sect4">Optional</bridgehead>
85 <para role="optional">
[febfc1e]86 <xref linkend="alsa-lib"/>,
87 <xref linkend="avahi"/>,
88 <xref linkend="bluez"/>,
89 <xref linkend="fdk-aac"/>,
[e07baac6]90 <xref linkend="ffmpeg"/>,
[febfc1e]91 <xref linkend="libcanberra"/>,
92 <xref linkend="libdrm"/> (for one example and libcamera support),
93 <xref linkend="libxcb"/>,
94 <xref linkend="libsndfile"/>,
95 <xref linkend="libusb"/>,
96 <xref linkend="opus"/>,
97 <xref linkend="sdl2"/> (for some examples),
[dcea4e3]98 <xref linkend="valgrind"/>,
[febfc1e]99 <xref linkend="xorg7-lib"/>,
[dcea4e3]100 <xref linkend="doxygen"/> and
[9bd10279]101 <xref linkend="graphviz"/> (for documentation),
102 <ulink url="https://jackaudio.org/">JACK</ulink>,
[73fb07ad]103 <ulink url="https://github.com/EHfive/ldacBT">ldacBT</ulink>,
[a4586ac9]104 <ulink url="https://libcamera.org/">libcamera</ulink>,
[4ae96f8]105 <ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>,
106 <ulink url="https://gitlab.freedesktop.org/pipewire/wireplumber/">WirePlumber</ulink>
107 (runtime, for running Pipewire daemon), and
[9bd10279]108 <ulink url="https://sourceforge.net/projects/xmltoman/">xmltoman</ulink>
[dcea4e3]109 </para>
[6e1854e9]110<!--
[dcea4e3]111 <para condition="html" role="usernotes">
112 User Notes: <ulink url="&blfs-wiki;/pipewire"/>
113 </para>
[6e1854e9]114-->
[dcea4e3]115 </sect2>
116
117 <sect2 role="installation">
118 <title>Installation of Pipewire</title>
119
120 <para>
121 Install <application>pipewire</application> by running the following
122 commands:
123 </para>
124
125<screen><userinput>mkdir build &amp;&amp;
[aa17ca8]126cd build &amp;&amp;
[dcea4e3]127
[91318eb]128meson setup --prefix=/usr \
129 --buildtype=release \
130 -Dsession-managers= \
131 .. &amp;&amp;
[dcea4e3]132ninja</userinput></screen>
133
134 <para>
[82a9ecf]135 To test the result, issue: <command>ninja test</command>.
[dcea4e3]136 </para>
137
[7087a34]138 <para>
139 If upgrading from an earlier release of Pipewire, it's needed to
140 remove any old binary executables that interfere with the
141 installation. As the &root; user:
142 </para>
143
144<screen role='root'><userinput>rm -vf /usr/bin/pipewire-*</userinput></screen>
145
[dcea4e3]146 <para>
147 Now, as the <systemitem class="username">root</systemitem> user:
148 </para>
149
150<screen role="root"><userinput>ninja install</userinput></screen>
151 </sect2>
152
153 <sect2 role="commands">
154 <title>Command Explanations</title>
155
[20f070d8]156 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
157 href="../../xincludes/meson-buildtype-release.xml"/>
158
[9bd10279]159 <para>
[7a9a7b26]160 <parameter>-Dsession-managers=</parameter>: This switch
[7fa5ff6]161 prevents automatic downloading external dependencies.
[9bd10279]162 </para>
163
[dcea4e3]164 <para>
165 <option>-Ddocs=true</option>: This switch enables the generation of HTML
166 documentation. The optional dependencies for documentation need to be
167 installed for this to work.
168 </para>
169
170 <para>
171 <option>-Dman=true</option>: This switch enables the generation of manual
172 pages. The optional dependencies for documentation need to be installed
173 for this to work.
174 </para>
[e1af972]175
176 <para>
177 <option>-Dffmpeg=enabled</option>: This switch enables using ffmpeg for
178 audio conversion as a SPA backend.
179 </para>
[dcea4e3]180 </sect2>
181
182 <sect2 role="content">
183 <title>Contents</title>
184
185 <segmentedlist>
186 <segtitle>Installed Programs</segtitle>
187 <segtitle>Installed Libraries</segtitle>
188 <segtitle>Installed Directories</segtitle>
189
190 <seglistitem>
191 <seg>
192 pipewire,
[0f8c7d1a]193 pipewire-avb,
[7a96e1b]194 pipewire-pulse,
[9bd10279]195 pw-cat,
196 pw-cli,
197 pw-dot,
[7c9ae62]198 pw-dump,
[cceceaaf]199 pw-jack,
[0ec63138]200 pw-link,
201 pw-loopback,
[42e419b5]202 pw-metadata,
203 pw-mididump,
[9bd10279]204 pw-mon,
205 pw-profiler,
[fa0bead]206 pw-reserve,
[7c9ae62]207 pw-top,
[59f6a1f]208 pw-v4l2,
[fa0bead]209 spa-acp-tool,
[9bd10279]210 spa-inspect,
[5d69f635]211 spa-json-dump,
[8558044]212 spa-monitor,
[fa0bead]213 spa-resample, and
[59f6a1f]214 pw-dsdplay, pw-midiplay, pw-midirecord, pw-play, and pw-record
215 (symlinks to pw-cat)
[dcea4e3]216 </seg>
217 <seg>
[fa0bead]218 libpipewire-0.3.so and
[4b39826]219 56 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2<!--,
[da1575a]220 [pierre July 29th, 2020]: all the following libs are in subdirectories
221 of /usr/lib. I'm not sure they should appear. But if they should, there
[8558044]222 are many more libs to list...
[9bd10279]223 libpulse-mainloop-glib-pw.so,
[11eb3ae5]224 libpulse.so,
225 libpulse-simple.so,
[9bd10279]226 libasound_module_pcm_pipewire.so, and
[8558044]227 libgstpipewire.so
[fa0bead]228 [bdubbs Sep 29th, 2020]: add
229 libpipewire-module-{access,adapter,client-device,client-node,
230 link-factory,metadata,portal,profiler,protocol-native,
231 rtkit,session-manager,spa-device,spa-device-factory,spa-node,
232 spa-node-factory}.so
233 libasound_module_ctl_pipewire.so
234 libasound_module_pcm_pipewire.so
235 libspa-{alsa,audioconvert,audiomixer,bluez5,control,dbus,support
236 v4l2,videoconvert}.so
237 -->
[dcea4e3]238 </seg>
239 <seg>
[1e2d824d]240 <!--/etc/pipewire,-->
[8558044]241 /usr/include/pipewire-0.3,
[9bd10279]242 /usr/include/spa-0.2,
[fa0bead]243 /usr/lib/alsa-lib,
[1e2d824d]244 <!--/usr/lib/gstreamer-1.0, already installed by gstreamer-->
245 /usr/lib/pipewire-0.3,
246 /usr/lib/spa-0.2,
247 /usr/share/alsa-card-profile,
248 /usr/share/pipewire, and
249 /usr/share/spa-0.2
[dcea4e3]250 </seg>
251 </seglistitem>
252 </segmentedlist>
253
254 <variablelist>
255 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
256 <?dbfo list-presentation="list"?>
257 <?dbhtml list-presentation="table"?>
258
259 <varlistentry id="pipewire-prog">
260 <term><command>pipewire</command></term>
261 <listitem>
262 <para>
263 is a service that allows access to multimedia devices and allows
[4c24eb0a]264 sharing of multimedia files between applications
[dcea4e3]265 </para>
266 <indexterm zone="pipewire pipewire-prog">
267 <primary sortas="b-pipewire">pipewire</primary>
268 </indexterm>
269 </listitem>
270 </varlistentry>
271
[9bd10279]272 <varlistentry id="pipewire-media-session">
273 <term><command>pipewire-media-session</command></term>
274 <listitem>
275 <para>
276 is a service that allows a desktop environment to know when media
[4c24eb0a]277 files are being played through pipewire
[9bd10279]278 </para>
279 <indexterm zone="pipewire pipewire-media-session">
280 <primary sortas="b-pipewire-media-session">pipewire-media-session</primary>
281 </indexterm>
282 </listitem>
283 </varlistentry>
284
[7a96e1b]285 <varlistentry id="pipewire-pulse">
286 <term><command>pipewire-pulse</command></term>
287 <listitem>
288 <para>
[8558044]289 starts a Pulseaudio-compatible version of
[4c24eb0a]290 the pipewire service
[7a96e1b]291 </para>
292 <indexterm zone="pipewire pipewire-pulse">
293 <primary sortas="b-pipewire-pulse">pipewire-pulse</primary>
294 </indexterm>
295 </listitem>
296 </varlistentry>
297
[9bd10279]298 <varlistentry id="pw-cat">
299 <term><command>pw-cat</command></term>
300 <listitem>
301 <para>
[4c24eb0a]302 allows you to play or record media using a pipewire instance
[9bd10279]303 </para>
304 <indexterm zone="pipewire pw-cat">
305 <primary sortas="b-pw-cat">pw-cat</primary>
306 </indexterm>
307 </listitem>
308 </varlistentry>
309
310 <varlistentry id="pw-cli">
311 <term><command>pw-cli</command></term>
[dcea4e3]312 <listitem>
313 <para>
[4c24eb0a]314 allows you to interact with a pipewire instance
[dcea4e3]315 </para>
[9bd10279]316 <indexterm zone="pipewire pw-cli">
317 <primary sortas="b-pw-cli">pw-cli</primary>
318 </indexterm>
319 </listitem>
320 </varlistentry>
321
322 <varlistentry id="pw-dot">
323 <term><command>pw-dot</command></term>
324 <listitem>
325 <para>
[4c24eb0a]326 lists all of the daemons and objects in use by pipewire
[9bd10279]327 </para>
328 <indexterm zone="pipewire pw-dot">
329 <primary sortas="b-pw-dot">pw-dot</primary>
[dcea4e3]330 </indexterm>
331 </listitem>
332 </varlistentry>
333
[7c9ae62]334 <varlistentry id="pw-dump">
335 <term><command>pw-dump</command></term>
336 <listitem>
337 <para>
338 dumps debug messages from a local or remote pipewire instance to
[4c24eb0a]339 the console
[7c9ae62]340 </para>
341 <indexterm zone="pipewire pw-dump">
342 <primary sortas="b-pw-dump">pw-dump</primary>
343 </indexterm>
344 </listitem>
345 </varlistentry>
346
[cceceaaf]347 <varlistentry id="pw-jack">
348 <term><command>pw-jack</command></term>
349 <listitem>
350 <para>
[0ec63138]351 runs JACK applications on a pipewire instance
[cceceaaf]352 </para>
353 <indexterm zone="pipewire pw-jack">
354 <primary sortas="b-pw-jack">pw-jack</primary>
355 </indexterm>
356 </listitem>
357 </varlistentry>
358
[0ec63138]359 <varlistentry id="pw-link">
360 <term><command>pw-link</command></term>
361 <listitem>
362 <para>
363 links pipewire ports together
364 </para>
365 <indexterm zone="pipewire pw-link">
366 <primary sortas="b-pw-link">pw-link</primary>
367 </indexterm>
368 </listitem>
369 </varlistentry>
370
371 <varlistentry id="pw-loopback">
372 <term><command>pw-loopback</command></term>
373 <listitem>
374 <para>
375 initializes a loopback link between two different pipewire ports.
376 This is useful for testing and debugging
377 </para>
378 <indexterm zone="pipewire pw-loopback">
379 <primary sortas="b-pw-loopback">pw-loopback</primary>
380 </indexterm>
381 </listitem>
382 </varlistentry>
383
[42e419b5]384 <varlistentry id="pw-metadata">
385 <term><command>pw-metadata</command></term>
386 <listitem>
387 <para>
[4c24eb0a]388 inspects, adds, and removes metadata for objects
[42e419b5]389 </para>
390 <indexterm zone="pipewire pw-metadata">
391 <primary sortas="b-pw-metadata">pw-metadata</primary>
392 </indexterm>
393 </listitem>
394 </varlistentry>
395
396 <varlistentry id="pw-mididump">
397 <term><command>pw-mididump</command></term>
398 <listitem>
399 <para>
[4c24eb0a]400 dumps MIDI messages from a file to the screen
[42e419b5]401 </para>
402 <indexterm zone="pipewire pw-mididump">
403 <primary sortas="b-pw-mididump">pw-mididump</primary>
404 </indexterm>
405 </listitem>
406 </varlistentry>
407
[9bd10279]408 <varlistentry id="pw-mon">
409 <term><command>pw-mon</command></term>
[dcea4e3]410 <listitem>
411 <para>
[4c24eb0a]412 allows you to monitor pipewire instances
[dcea4e3]413 </para>
[9bd10279]414 <indexterm zone="pipewire pw-mon">
415 <primary sortas="b-pw-mon">pw-mon</primary>
416 </indexterm>
417 </listitem>
418 </varlistentry>
419
420 <varlistentry id="pw-profiler">
421 <term><command>pw-profiler</command></term>
422 <listitem>
423 <para>
[4c24eb0a]424 tracks memory usage and API calls used by pipewire
[9bd10279]425 </para>
426 <indexterm zone="pipewire pw-profiler">
427 <primary sortas="b-pw-profiler">pw-profiler</primary>
[dcea4e3]428 </indexterm>
429 </listitem>
430 </varlistentry>
431
[7a96e1b]432<!--
[11eb3ae5]433 <varlistentry id="pw-pulse">
434 <term><command>pw-pulse</command></term>
435 <listitem>
436 <para>
[c0221530]437 runs Pulseaudio applications on pipewire.
[11eb3ae5]438 </para>
439 <indexterm zone="pipewire pw-pulse">
440 <primary sortas="b-pw-pulse">pw-pulse</primary>
441 </indexterm>
442 </listitem>
443 </varlistentry>
[7a96e1b]444-->
[11eb3ae5]445
[fa0bead]446 <varlistentry id="pw-reserve">
447 <term><command>pw-reserve</command></term>
448 <listitem>
449 <para>
[4c24eb0a]450 reserves or monitors a device via D-Bus
[fa0bead]451 </para>
452 <indexterm zone="pipewire pw-reserve">
453 <primary sortas="b-pw-reserve">pw-reserve</primary>
454 </indexterm>
455 </listitem>
456 </varlistentry>
457
[7c9ae62]458 <varlistentry id="pw-top">
459 <term><command>pw-top</command></term>
460 <listitem>
461 <para>
[4c24eb0a]462 displays real-time performance information from pipewire
[7c9ae62]463 </para>
464 <indexterm zone="pipewire pw-top">
465 <primary sortas="b-pw-top">pw-top</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469
[59f6a1f]470 <varlistentry id="pw-v4l2">
471 <term><command>pw-v4l2</command></term>
472 <listitem>
473 <para>
474 runs v4l2 applications on a pipewire instance
475 </para>
476 <indexterm zone="pipewire pw-v4l2">
477 <primary sortas="b-pw-v4l2">pw-v4l2</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
[fa0bead]482 <varlistentry id="spa-acp-tool">
483 <term><command>spa-acp-tool</command></term>
484 <listitem>
485 <para>
[4c24eb0a]486 inspects the card profile of a given sound card
[fa0bead]487 </para>
488 <indexterm zone="pipewire spa-acp-tool">
489 <primary sortas="b-spa-acp-tool">spa-acp-tool</primary>
490 </indexterm>
491 </listitem>
492 </varlistentry>
493
[dcea4e3]494 <varlistentry id="spa-inspect">
495 <term><command>spa-inspect</command></term>
496 <listitem>
497 <para>
[4c24eb0a]498 allows you to inspect pipewire plugins
[dcea4e3]499 </para>
500 <indexterm zone="pipewire spa-inspect">
501 <primary sortas="b-spa-inspect">spa-inspect</primary>
502 </indexterm>
503 </listitem>
504 </varlistentry>
505
[5d69f635]506 <varlistentry id="spa-json-dump">
507 <term><command>spa-json-dump</command></term>
508 <listitem>
509 <para>
510 dumps the current pipewire configuration in JSON format.
511 </para>
512 <indexterm zone="pipewire spa-json-dump">
513 <primary sortas="b-spa-json-dump">spa-json-dump</primary>
514 </indexterm>
515 </listitem>
516 </varlistentry>
517
[dcea4e3]518 <varlistentry id="spa-monitor">
519 <term><command>spa-monitor</command></term>
520 <listitem>
521 <para>
[4c24eb0a]522 allows you to monitor pipewire plugins
[dcea4e3]523 </para>
524 <indexterm zone="pipewire spa-monitor">
525 <primary sortas="b-spa-monitor">spa-monitor</primary>
526 </indexterm>
527 </listitem>
528 </varlistentry>
529
[fa0bead]530 <varlistentry id="spa-resample">
531 <term><command>spa-resample</command></term>
532 <listitem>
533 <para>
[4c24eb0a]534 resamples a given file
[fa0bead]535 </para>
536 <indexterm zone="pipewire spa-resample">
537 <primary sortas="b-spa-resample">spa-resample</primary>
538 </indexterm>
539 </listitem>
540 </varlistentry>
541
[dcea4e3]542 <varlistentry id="libpipewire">
[9bd10279]543 <term><filename class="libraryfile">libpipewire-0.3.so</filename></term>
[dcea4e3]544 <listitem>
545 <para>
[4c24eb0a]546 contains API functions for handling multimedia pipelines
[dcea4e3]547 </para>
548 <indexterm zone="pipewire libpipewire">
[9bd10279]549 <primary sortas="c-libpipewire">libpipewire-0.3.so</primary>
550 </indexterm>
551 </listitem>
552 </varlistentry>
[da1575a]553<!--
[9bd10279]554 <varlistentry id="libpulse-mainloop-glib-pw">
555 <term><filename class="libraryfile">libpulse-mainloop-glib-pw.so</filename></term>
556 <listitem>
557 <para>
558 provides a glib main() loop for pulseaudio to route media through
559 pipewire.
560 </para>
561 <indexterm zone="pipewire libpulse-mainloop-glib-pw">
562 <primary sortas="c-libpulse-mainloop-glib-pw">libpulse-mainloop-glib-pw.so</primary>
563 </indexterm>
564 </listitem>
565 </varlistentry>
566
[11eb3ae5]567 <varlistentry id="libpulse">
568 <term><filename class="libraryfile">libpulse.so</filename></term>
[9bd10279]569 <listitem>
570 <para>
571 is a pipewire plugin for pulseaudio.
572 </para>
[11eb3ae5]573 <indexterm zone="pipewire libpulse">
574 <primary sortas="c-libpulse">libpulse.so</primary>
[9bd10279]575 </indexterm>
576 </listitem>
577 </varlistentry>
578
[11eb3ae5]579 <varlistentry id="libpulse-simple">
580 <term><filename class="libraryfile">libpulse-simple.so</filename></term>
[9bd10279]581 <listitem>
582 <para>
583 is a simplified version of the pulseaudio plugin for pipewire.
584 </para>
[11eb3ae5]585 <indexterm zone="pipewire libpulse-simple">
586 <primary sortas="c-libpulse-simple">libpulse-simple.so</primary>
[9bd10279]587 </indexterm>
588 </listitem>
589 </varlistentry>
590
591 <varlistentry id="libasound_module_pcm_pipewire">
592 <term><filename class="libraryfile">libasound_module_pcm_pipewire.so</filename></term>
593 <listitem>
594 <para>
595 is an ALSA plugin for pipewire.
596 </para>
597 <indexterm zone="pipewire libasound_module_pcm_pipewire">
598 <primary sortas="c-libasound_module_pcm_pipewire">libasound_module_pcm_pipewire.so</primary>
599 </indexterm>
600 </listitem>
601 </varlistentry>
602
603 <varlistentry id="libgstpipewire">
604 <term><filename class="libraryfile">libgstpipewire.so</filename></term>
605 <listitem>
606 <para>
607 is a Gstreamer plugin for pipewire.
608 </para>
609 <indexterm zone="pipewire libgstpipewire">
610 <primary sortas="c-libgstpipewire">libgstpipewire.so</primary>
[dcea4e3]611 </indexterm>
612 </listitem>
[da1575a]613 </varlistentry>-->
[dcea4e3]614 </variablelist>
615 </sect2>
[4c24eb0a]616
[dcea4e3]617</sect1>
Note: See TracBrowser for help on using the repository browser.