source: multimedia/libdriv/pipewire.xml@ e8074fd2

12.1 ken/TL2024 lazarus rahul/power-profiles-daemon trunk xry111/llvm18
Last change on this file since e8074fd2 was e8074fd2, checked in by Bruce Dubbs <bdubbs@…>, 3 months ago

Update to pipewire-1.0.3.

  • Property mode set to 100644
File size: 18.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
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://gitlab.freedesktop.org/pipewire/pipewire/-/archive/&pipewire-version;/pipewire-&pipewire-version;.tar.bz2">
8 <!ENTITY pipewire-download-ftp " ">
9 <!ENTITY pipewire-md5sum "92eb16fb925aa9dc9191d8ef7b04687d">
10 <!ENTITY pipewire-size "1.6 MB">
11 <!ENTITY pipewire-buildsize "67 MB (with tests)">
12 <!ENTITY pipewire-time "0.6 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 role="runtime" linkend="wireplumber"/> (runtime)
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="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="vulkan-loader"/>,
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>, and
107 <!--<ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>, and-->
108 <ulink url="https://sourceforge.net/projects/xmltoman/">xmltoman</ulink>
109 </para>
110
111 <para condition="html" role="usernotes">
112 Editor Notes: <ulink url="&blfs-wiki;/pipewire"/>
113 </para>
114
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;
126cd build &amp;&amp;
127
128meson setup .. \
129 --prefix=/usr \
130 --buildtype=release \
131 -Dsession-managers="[]" &amp;&amp;
132ninja</userinput></screen>
133
134 <para>
135 To test the result, issue: <command>ninja test</command>.
136 </para>
137 <!--
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-->
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
156 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
157 href="../../xincludes/meson-buildtype-release.xml"/>
158
159 <para>
160 <parameter>-Dsession-managers="[]"</parameter>: This switch
161 allows specifying the session managers to build as subprojects.
162 We specify an empty list to prevent <command>meson</command> from
163 downloading any external copy of the session managers. A Pipewire
164 session manager recommended by the PipeWire developers for general
165 use, <xref linkend="wireplumber" role="nodep"/>, is available as a
166 separate BLFS package. Build it after installing Pipewire if you
167 need to run the Pipewire daemon (for example in order to support
168 <xref linkend="snapshot" role="nodep"/>).
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
188 <para>
189 <option>-Dvulkan=enabled</option>: This switch enables using Vulkan for
190 video rendering as a SPA backend.
191 </para>
192
193 </sect2>
194
195 <sect2 role="content">
196 <title>Contents</title>
197
198 <segmentedlist>
199 <segtitle>Installed Programs</segtitle>
200 <segtitle>Installed Libraries</segtitle>
201 <segtitle>Installed Directories</segtitle>
202
203 <seglistitem>
204 <seg>
205 pipewire,
206 pw-cat,
207 pw-cli,
208 pw-config,
209 pw-dot,
210 pw-dump,
211 pw-jack,
212 pw-link,
213 pw-loopback,
214 pw-metadata,
215 pw-mididump,
216 pw-mon,
217 pw-profiler,
218 pw-reserve,
219 pw-top,
220 pw-v4l2,
221 spa-acp-tool,
222 spa-inspect,
223 spa-json-dump,
224 spa-monitor,
225 spa-resample, and
226 pipewire-aes67, pipewire-avb, pipewire-pulse (symlinks to pipewire),
227 pw-dsdplay, pw-encplay, pw-midiplay, pw-midirecord, pw-play,
228 pw-record (symlinks to pw-cat)
229 </seg>
230 <seg>
231 libpipewire-0.3.so and
232 60 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2
233 </seg>
234 <seg>
235 /usr/include/pipewire-0.3,
236 /usr/include/spa-0.2,
237 /usr/lib/alsa-lib,
238 <!--/usr/lib/gstreamer-1.0, already installed by gstreamer-->
239 /usr/lib/pipewire-0.3,
240 /usr/lib/spa-0.2,
241 /usr/share/alsa-card-profile,
242 /usr/share/pipewire, and
243 /usr/share/spa-0.2
244 </seg>
245 </seglistitem>
246 </segmentedlist>
247
248 <variablelist>
249 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
250 <?dbfo list-presentation="list"?>
251 <?dbhtml list-presentation="table"?>
252
253 <varlistentry id="pipewire-prog">
254 <term><command>pipewire</command></term>
255 <listitem>
256 <para>
257 is a service that allows access to multimedia devices and allows
258 sharing of multimedia files between applications
259 </para>
260 <indexterm zone="pipewire pipewire-prog">
261 <primary sortas="b-pipewire">pipewire</primary>
262 </indexterm>
263 </listitem>
264 </varlistentry>
265
266 <varlistentry id="pipewire-pulse">
267 <term><command>pipewire-pulse</command></term>
268 <listitem>
269 <para>
270 starts a Pulseaudio-compatible version of
271 the pipewire service
272 </para>
273 <indexterm zone="pipewire pipewire-pulse">
274 <primary sortas="b-pipewire-pulse">pipewire-pulse</primary>
275 </indexterm>
276 </listitem>
277 </varlistentry>
278
279 <varlistentry id="pw-cat">
280 <term><command>pw-cat</command></term>
281 <listitem>
282 <para>
283 allows you to play or record media using a pipewire instance
284 </para>
285 <indexterm zone="pipewire pw-cat">
286 <primary sortas="b-pw-cat">pw-cat</primary>
287 </indexterm>
288 </listitem>
289 </varlistentry>
290
291 <varlistentry id="pw-cli">
292 <term><command>pw-cli</command></term>
293 <listitem>
294 <para>
295 allows you to interact with a pipewire instance
296 </para>
297 <indexterm zone="pipewire pw-cli">
298 <primary sortas="b-pw-cli">pw-cli</primary>
299 </indexterm>
300 </listitem>
301 </varlistentry>
302
303 <varlistentry id="pw-config">
304 <term><command>pw-config</command></term>
305 <listitem>
306 <para>
307 allows you to interact with pipewire's configuration system
308 for debugging purposes or syntax checking
309 </para>
310 <indexterm zone="pipewire pw-config">
311 <primary sortas="b-pw-config">pw-config</primary>
312 </indexterm>
313 </listitem>
314 </varlistentry>
315
316 <varlistentry id="pw-dot">
317 <term><command>pw-dot</command></term>
318 <listitem>
319 <para>
320 lists all of the daemons and objects in use by pipewire
321 </para>
322 <indexterm zone="pipewire pw-dot">
323 <primary sortas="b-pw-dot">pw-dot</primary>
324 </indexterm>
325 </listitem>
326 </varlistentry>
327
328 <varlistentry id="pw-dump">
329 <term><command>pw-dump</command></term>
330 <listitem>
331 <para>
332 dumps debug messages from a local or remote pipewire instance to
333 the console
334 </para>
335 <indexterm zone="pipewire pw-dump">
336 <primary sortas="b-pw-dump">pw-dump</primary>
337 </indexterm>
338 </listitem>
339 </varlistentry>
340
341 <varlistentry id="pw-jack">
342 <term><command>pw-jack</command></term>
343 <listitem>
344 <para>
345 runs JACK applications on a pipewire instance
346 </para>
347 <indexterm zone="pipewire pw-jack">
348 <primary sortas="b-pw-jack">pw-jack</primary>
349 </indexterm>
350 </listitem>
351 </varlistentry>
352
353 <varlistentry id="pw-link">
354 <term><command>pw-link</command></term>
355 <listitem>
356 <para>
357 links pipewire ports together
358 </para>
359 <indexterm zone="pipewire pw-link">
360 <primary sortas="b-pw-link">pw-link</primary>
361 </indexterm>
362 </listitem>
363 </varlistentry>
364
365 <varlistentry id="pw-loopback">
366 <term><command>pw-loopback</command></term>
367 <listitem>
368 <para>
369 initializes a loopback link between two different pipewire ports.
370 This is useful for testing and debugging
371 </para>
372 <indexterm zone="pipewire pw-loopback">
373 <primary sortas="b-pw-loopback">pw-loopback</primary>
374 </indexterm>
375 </listitem>
376 </varlistentry>
377
378 <varlistentry id="pw-metadata">
379 <term><command>pw-metadata</command></term>
380 <listitem>
381 <para>
382 inspects, adds, and removes metadata for objects
383 </para>
384 <indexterm zone="pipewire pw-metadata">
385 <primary sortas="b-pw-metadata">pw-metadata</primary>
386 </indexterm>
387 </listitem>
388 </varlistentry>
389
390 <varlistentry id="pw-mididump">
391 <term><command>pw-mididump</command></term>
392 <listitem>
393 <para>
394 dumps MIDI messages from a file to the screen
395 </para>
396 <indexterm zone="pipewire pw-mididump">
397 <primary sortas="b-pw-mididump">pw-mididump</primary>
398 </indexterm>
399 </listitem>
400 </varlistentry>
401
402 <varlistentry id="pw-mon">
403 <term><command>pw-mon</command></term>
404 <listitem>
405 <para>
406 allows you to monitor pipewire instances
407 </para>
408 <indexterm zone="pipewire pw-mon">
409 <primary sortas="b-pw-mon">pw-mon</primary>
410 </indexterm>
411 </listitem>
412 </varlistentry>
413
414 <varlistentry id="pw-profiler">
415 <term><command>pw-profiler</command></term>
416 <listitem>
417 <para>
418 tracks memory usage and API calls used by pipewire
419 </para>
420 <indexterm zone="pipewire pw-profiler">
421 <primary sortas="b-pw-profiler">pw-profiler</primary>
422 </indexterm>
423 </listitem>
424 </varlistentry>
425
426 <varlistentry id="pw-reserve">
427 <term><command>pw-reserve</command></term>
428 <listitem>
429 <para>
430 reserves or monitors a device via D-Bus
431 </para>
432 <indexterm zone="pipewire pw-reserve">
433 <primary sortas="b-pw-reserve">pw-reserve</primary>
434 </indexterm>
435 </listitem>
436 </varlistentry>
437
438 <varlistentry id="pw-top">
439 <term><command>pw-top</command></term>
440 <listitem>
441 <para>
442 displays real-time performance information from pipewire
443 </para>
444 <indexterm zone="pipewire pw-top">
445 <primary sortas="b-pw-top">pw-top</primary>
446 </indexterm>
447 </listitem>
448 </varlistentry>
449
450 <varlistentry id="pw-v4l2">
451 <term><command>pw-v4l2</command></term>
452 <listitem>
453 <para>
454 runs v4l2 applications on a pipewire instance
455 </para>
456 <indexterm zone="pipewire pw-v4l2">
457 <primary sortas="b-pw-v4l2">pw-v4l2</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="spa-acp-tool">
463 <term><command>spa-acp-tool</command></term>
464 <listitem>
465 <para>
466 inspects the card profile of a given sound card
467 </para>
468 <indexterm zone="pipewire spa-acp-tool">
469 <primary sortas="b-spa-acp-tool">spa-acp-tool</primary>
470 </indexterm>
471 </listitem>
472 </varlistentry>
473
474 <varlistentry id="spa-inspect">
475 <term><command>spa-inspect</command></term>
476 <listitem>
477 <para>
478 allows you to inspect pipewire plugins
479 </para>
480 <indexterm zone="pipewire spa-inspect">
481 <primary sortas="b-spa-inspect">spa-inspect</primary>
482 </indexterm>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry id="spa-json-dump">
487 <term><command>spa-json-dump</command></term>
488 <listitem>
489 <para>
490 dumps the current pipewire configuration in JSON format.
491 </para>
492 <indexterm zone="pipewire spa-json-dump">
493 <primary sortas="b-spa-json-dump">spa-json-dump</primary>
494 </indexterm>
495 </listitem>
496 </varlistentry>
497
498 <varlistentry id="spa-monitor">
499 <term><command>spa-monitor</command></term>
500 <listitem>
501 <para>
502 allows you to monitor pipewire plugins
503 </para>
504 <indexterm zone="pipewire spa-monitor">
505 <primary sortas="b-spa-monitor">spa-monitor</primary>
506 </indexterm>
507 </listitem>
508 </varlistentry>
509
510 <varlistentry id="spa-resample">
511 <term><command>spa-resample</command></term>
512 <listitem>
513 <para>
514 resamples a given file
515 </para>
516 <indexterm zone="pipewire spa-resample">
517 <primary sortas="b-spa-resample">spa-resample</primary>
518 </indexterm>
519 </listitem>
520 </varlistentry>
521
522 <varlistentry id="libpipewire">
523 <term><filename class="libraryfile">libpipewire-0.3.so</filename></term>
524 <listitem>
525 <para>
526 contains API functions for handling multimedia pipelines
527 </para>
528 <indexterm zone="pipewire libpipewire">
529 <primary sortas="c-libpipewire">libpipewire-0.3.so</primary>
530 </indexterm>
531 </listitem>
532 </varlistentry>
533 <!-- not in /usr/lib
534 <varlistentry id="libpulse">
535 <term><filename class="libraryfile">libpulse.so</filename></term>
536 <listitem>
537 <para>
538 is a pipewire plugin for pulseaudio.
539 </para>
540 <indexterm zone="pipewire libpulse">
541 <primary sortas="c-libpulse">libpulse.so</primary>
542 </indexterm>
543 </listitem>
544 </varlistentry>
545
546 <varlistentry id="libpulse-simple">
547 <term><filename class="libraryfile">libpulse-simple.so</filename></term>
548 <listitem>
549 <para>
550 is a simplified version of the pulseaudio plugin for pipewire.
551 </para>
552 <indexterm zone="pipewire libpulse-simple">
553 <primary sortas="c-libpulse-simple">libpulse-simple.so</primary>
554 </indexterm>
555 </listitem>
556 </varlistentry>
557
558 <varlistentry id="libasound_module_pcm_pipewire">
559 <term><filename class="libraryfile">libasound_module_pcm_pipewire.so</filename></term>
560 <listitem>
561 <para>
562 is an ALSA plugin for pipewire.
563 </para>
564 <indexterm zone="pipewire libasound_module_pcm_pipewire">
565 <primary sortas="c-libasound_module_pcm_pipewire">libasound_module_pcm_pipewire.so</primary>
566 </indexterm>
567 </listitem>
568 </varlistentry>
569
570 <varlistentry id="libgstpipewire">
571 <term><filename class="libraryfile">libgstpipewire.so</filename></term>
572 <listitem>
573 <para>
574 is a Gstreamer plugin for pipewire.
575 </para>
576 <indexterm zone="pipewire libgstpipewire">
577 <primary sortas="c-libgstpipewire">libgstpipewire.so</primary>
578 </indexterm>
579 </listitem>
580 </varlistentry>-->
581 </variablelist>
582 </sect2>
583
584</sect1>
Note: See TracBrowser for help on using the repository browser.