source: multimedia/libdriv/pipewire.xml@ bfdae5fd

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since bfdae5fd was bfdae5fd, checked in by Bruce Dubbs <bdubbs@…>, 17 months ago

pipewire is now version 0.3.63.

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