source: multimedia/libdriv/pipewire.xml@ 8f410c7

12.1 gimp3 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since 8f410c7 was 63b3f5fe, checked in by Douglas R. Reno <renodr@…>, 10 months ago

Add Wireplumber to the book in support of Snapshot.

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