source: multimedia/libdriv/pipewire.xml@ f7f5c13

12.1 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 f7f5c13 was dd12785c, checked in by Bruce Dubbs <bdubbs@…>, 9 months ago

Update to pipewire-0.3.81.

  • Property mode set to 100644
File size: 18.9 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 "24d7545f908e2932a95b63947e67d508">
10 <!ENTITY pipewire-size "2.1 MB">
11 <!ENTITY pipewire-buildsize "67 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 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="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.
166 We specify an empty list to prevent <command>meson</command> from
167 downloading any external copy of the session managers. A Pipewire
168 session manager recommended by the PipeWire developers for general
169 use, <xref linkend="wireplumber" role="nodep"/>, is available as a
170 separate BLFS package. Build it after installing Pipewire if you
171 need to run the Pipewire daemon (for example in order to support
172 <xref linkend="snapshot" role="nodep"/>).
173 </para>
174
175 <para>
176 <option>-Ddocs=true</option>: This switch enables the generation of HTML
177 documentation. The optional dependencies for documentation need to be
178 installed for this to work.
179 </para>
180
181 <para>
182 <option>-Dman=true</option>: This switch enables the generation of manual
183 pages. The optional dependencies for documentation need to be installed
184 for this to work.
185 </para>
186
187 <para>
188 <option>-Dffmpeg=enabled</option>: This switch enables using ffmpeg for
189 audio conversion as a SPA backend.
190 </para>
191 </sect2>
192
193 <sect2 role="content">
194 <title>Contents</title>
195
196 <segmentedlist>
197 <segtitle>Installed Programs</segtitle>
198 <segtitle>Installed Libraries</segtitle>
199 <segtitle>Installed Directories</segtitle>
200
201 <seglistitem>
202 <seg>
203 pipewire,
204 pw-cat,
205 pw-cli,
206 pw-config,
207 pw-dot,
208 pw-dump,
209 pw-jack,
210 pw-link,
211 pw-loopback,
212 pw-metadata,
213 pw-mididump,
214 pw-mon,
215 pw-profiler,
216 pw-reserve,
217 pw-top,
218 pw-v4l2,
219 spa-acp-tool,
220 spa-inspect,
221 spa-json-dump,
222 spa-monitor,
223 spa-resample, and
224 pipewire-aes67, pipewire-avb, pipewire-pulse (symlinks to pipewire),
225 pw-dsdplay, pw-encplay, pw-midiplay, pw-midirecord, pw-play,
226 pw-record (symlinks to pw-cat)
227 </seg>
228 <seg>
229 libpipewire-0.3.so and
230 60 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2
231 </seg>
232 <seg>
233 /usr/include/pipewire-0.3,
234 /usr/include/spa-0.2,
235 /usr/lib/alsa-lib,
236 <!--/usr/lib/gstreamer-1.0, already installed by gstreamer-->
237 /usr/lib/pipewire-0.3,
238 /usr/lib/spa-0.2,
239 /usr/share/alsa-card-profile,
240 /usr/share/pipewire, and
241 /usr/share/spa-0.2
242 </seg>
243 </seglistitem>
244 </segmentedlist>
245
246 <variablelist>
247 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
248 <?dbfo list-presentation="list"?>
249 <?dbhtml list-presentation="table"?>
250
251 <varlistentry id="pipewire-prog">
252 <term><command>pipewire</command></term>
253 <listitem>
254 <para>
255 is a service that allows access to multimedia devices and allows
256 sharing of multimedia files between applications
257 </para>
258 <indexterm zone="pipewire pipewire-prog">
259 <primary sortas="b-pipewire">pipewire</primary>
260 </indexterm>
261 </listitem>
262 </varlistentry>
263 <!-- not installed now: deprecated
264 <varlistentry id="pipewire-media-session">
265 <term><command>pipewire-media-session</command></term>
266 <listitem>
267 <para>
268 is a service that allows a desktop environment to know when media
269 files are being played through pipewire
270 </para>
271 <indexterm zone="pipewire pipewire-media-session">
272 <primary sortas="b-pipewire-media-session">pipewire-media-session</primary>
273 </indexterm>
274 </listitem>
275 </varlistentry>
276 -->
277 <varlistentry id="pipewire-pulse">
278 <term><command>pipewire-pulse</command></term>
279 <listitem>
280 <para>
281 starts a Pulseaudio-compatible version of
282 the pipewire service
283 </para>
284 <indexterm zone="pipewire pipewire-pulse">
285 <primary sortas="b-pipewire-pulse">pipewire-pulse</primary>
286 </indexterm>
287 </listitem>
288 </varlistentry>
289
290 <varlistentry id="pw-cat">
291 <term><command>pw-cat</command></term>
292 <listitem>
293 <para>
294 allows you to play or record media using a pipewire instance
295 </para>
296 <indexterm zone="pipewire pw-cat">
297 <primary sortas="b-pw-cat">pw-cat</primary>
298 </indexterm>
299 </listitem>
300 </varlistentry>
301
302 <varlistentry id="pw-cli">
303 <term><command>pw-cli</command></term>
304 <listitem>
305 <para>
306 allows you to interact with a pipewire instance
307 </para>
308 <indexterm zone="pipewire pw-cli">
309 <primary sortas="b-pw-cli">pw-cli</primary>
310 </indexterm>
311 </listitem>
312 </varlistentry>
313
314 <varlistentry id="pw-config">
315 <term><command>pw-config</command></term>
316 <listitem>
317 <para>
318 allows you to interact with pipewire's configuration system
319 for debugging purposes or syntax checking
320 </para>
321 <indexterm zone="pipewire pw-config">
322 <primary sortas="b-pw-config">pw-config</primary>
323 </indexterm>
324 </listitem>
325 </varlistentry>
326
327 <varlistentry id="pw-dot">
328 <term><command>pw-dot</command></term>
329 <listitem>
330 <para>
331 lists all of the daemons and objects in use by pipewire
332 </para>
333 <indexterm zone="pipewire pw-dot">
334 <primary sortas="b-pw-dot">pw-dot</primary>
335 </indexterm>
336 </listitem>
337 </varlistentry>
338
339 <varlistentry id="pw-dump">
340 <term><command>pw-dump</command></term>
341 <listitem>
342 <para>
343 dumps debug messages from a local or remote pipewire instance to
344 the console
345 </para>
346 <indexterm zone="pipewire pw-dump">
347 <primary sortas="b-pw-dump">pw-dump</primary>
348 </indexterm>
349 </listitem>
350 </varlistentry>
351
352 <varlistentry id="pw-jack">
353 <term><command>pw-jack</command></term>
354 <listitem>
355 <para>
356 runs JACK applications on a pipewire instance
357 </para>
358 <indexterm zone="pipewire pw-jack">
359 <primary sortas="b-pw-jack">pw-jack</primary>
360 </indexterm>
361 </listitem>
362 </varlistentry>
363
364 <varlistentry id="pw-link">
365 <term><command>pw-link</command></term>
366 <listitem>
367 <para>
368 links pipewire ports together
369 </para>
370 <indexterm zone="pipewire pw-link">
371 <primary sortas="b-pw-link">pw-link</primary>
372 </indexterm>
373 </listitem>
374 </varlistentry>
375
376 <varlistentry id="pw-loopback">
377 <term><command>pw-loopback</command></term>
378 <listitem>
379 <para>
380 initializes a loopback link between two different pipewire ports.
381 This is useful for testing and debugging
382 </para>
383 <indexterm zone="pipewire pw-loopback">
384 <primary sortas="b-pw-loopback">pw-loopback</primary>
385 </indexterm>
386 </listitem>
387 </varlistentry>
388
389 <varlistentry id="pw-metadata">
390 <term><command>pw-metadata</command></term>
391 <listitem>
392 <para>
393 inspects, adds, and removes metadata for objects
394 </para>
395 <indexterm zone="pipewire pw-metadata">
396 <primary sortas="b-pw-metadata">pw-metadata</primary>
397 </indexterm>
398 </listitem>
399 </varlistentry>
400
401 <varlistentry id="pw-mididump">
402 <term><command>pw-mididump</command></term>
403 <listitem>
404 <para>
405 dumps MIDI messages from a file to the screen
406 </para>
407 <indexterm zone="pipewire pw-mididump">
408 <primary sortas="b-pw-mididump">pw-mididump</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="pw-mon">
414 <term><command>pw-mon</command></term>
415 <listitem>
416 <para>
417 allows you to monitor pipewire instances
418 </para>
419 <indexterm zone="pipewire pw-mon">
420 <primary sortas="b-pw-mon">pw-mon</primary>
421 </indexterm>
422 </listitem>
423 </varlistentry>
424
425 <varlistentry id="pw-profiler">
426 <term><command>pw-profiler</command></term>
427 <listitem>
428 <para>
429 tracks memory usage and API calls used by pipewire
430 </para>
431 <indexterm zone="pipewire pw-profiler">
432 <primary sortas="b-pw-profiler">pw-profiler</primary>
433 </indexterm>
434 </listitem>
435 </varlistentry>
436
437 <varlistentry id="pw-reserve">
438 <term><command>pw-reserve</command></term>
439 <listitem>
440 <para>
441 reserves or monitors a device via D-Bus
442 </para>
443 <indexterm zone="pipewire pw-reserve">
444 <primary sortas="b-pw-reserve">pw-reserve</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449 <varlistentry id="pw-top">
450 <term><command>pw-top</command></term>
451 <listitem>
452 <para>
453 displays real-time performance information from pipewire
454 </para>
455 <indexterm zone="pipewire pw-top">
456 <primary sortas="b-pw-top">pw-top</primary>
457 </indexterm>
458 </listitem>
459 </varlistentry>
460
461 <varlistentry id="pw-v4l2">
462 <term><command>pw-v4l2</command></term>
463 <listitem>
464 <para>
465 runs v4l2 applications on a pipewire instance
466 </para>
467 <indexterm zone="pipewire pw-v4l2">
468 <primary sortas="b-pw-v4l2">pw-v4l2</primary>
469 </indexterm>
470 </listitem>
471 </varlistentry>
472
473 <varlistentry id="spa-acp-tool">
474 <term><command>spa-acp-tool</command></term>
475 <listitem>
476 <para>
477 inspects the card profile of a given sound card
478 </para>
479 <indexterm zone="pipewire spa-acp-tool">
480 <primary sortas="b-spa-acp-tool">spa-acp-tool</primary>
481 </indexterm>
482 </listitem>
483 </varlistentry>
484
485 <varlistentry id="spa-inspect">
486 <term><command>spa-inspect</command></term>
487 <listitem>
488 <para>
489 allows you to inspect pipewire plugins
490 </para>
491 <indexterm zone="pipewire spa-inspect">
492 <primary sortas="b-spa-inspect">spa-inspect</primary>
493 </indexterm>
494 </listitem>
495 </varlistentry>
496
497 <varlistentry id="spa-json-dump">
498 <term><command>spa-json-dump</command></term>
499 <listitem>
500 <para>
501 dumps the current pipewire configuration in JSON format.
502 </para>
503 <indexterm zone="pipewire spa-json-dump">
504 <primary sortas="b-spa-json-dump">spa-json-dump</primary>
505 </indexterm>
506 </listitem>
507 </varlistentry>
508
509 <varlistentry id="spa-monitor">
510 <term><command>spa-monitor</command></term>
511 <listitem>
512 <para>
513 allows you to monitor pipewire plugins
514 </para>
515 <indexterm zone="pipewire spa-monitor">
516 <primary sortas="b-spa-monitor">spa-monitor</primary>
517 </indexterm>
518 </listitem>
519 </varlistentry>
520
521 <varlistentry id="spa-resample">
522 <term><command>spa-resample</command></term>
523 <listitem>
524 <para>
525 resamples a given file
526 </para>
527 <indexterm zone="pipewire spa-resample">
528 <primary sortas="b-spa-resample">spa-resample</primary>
529 </indexterm>
530 </listitem>
531 </varlistentry>
532
533 <varlistentry id="libpipewire">
534 <term><filename class="libraryfile">libpipewire-0.3.so</filename></term>
535 <listitem>
536 <para>
537 contains API functions for handling multimedia pipelines
538 </para>
539 <indexterm zone="pipewire libpipewire">
540 <primary sortas="c-libpipewire">libpipewire-0.3.so</primary>
541 </indexterm>
542 </listitem>
543 </varlistentry>
544 <!-- not in /usr/lib
545 <varlistentry id="libpulse">
546 <term><filename class="libraryfile">libpulse.so</filename></term>
547 <listitem>
548 <para>
549 is a pipewire plugin for pulseaudio.
550 </para>
551 <indexterm zone="pipewire libpulse">
552 <primary sortas="c-libpulse">libpulse.so</primary>
553 </indexterm>
554 </listitem>
555 </varlistentry>
556
557 <varlistentry id="libpulse-simple">
558 <term><filename class="libraryfile">libpulse-simple.so</filename></term>
559 <listitem>
560 <para>
561 is a simplified version of the pulseaudio plugin for pipewire.
562 </para>
563 <indexterm zone="pipewire libpulse-simple">
564 <primary sortas="c-libpulse-simple">libpulse-simple.so</primary>
565 </indexterm>
566 </listitem>
567 </varlistentry>
568
569 <varlistentry id="libasound_module_pcm_pipewire">
570 <term><filename class="libraryfile">libasound_module_pcm_pipewire.so</filename></term>
571 <listitem>
572 <para>
573 is an ALSA plugin for pipewire.
574 </para>
575 <indexterm zone="pipewire libasound_module_pcm_pipewire">
576 <primary sortas="c-libasound_module_pcm_pipewire">libasound_module_pcm_pipewire.so</primary>
577 </indexterm>
578 </listitem>
579 </varlistentry>
580
581 <varlistentry id="libgstpipewire">
582 <term><filename class="libraryfile">libgstpipewire.so</filename></term>
583 <listitem>
584 <para>
585 is a Gstreamer plugin for pipewire.
586 </para>
587 <indexterm zone="pipewire libgstpipewire">
588 <primary sortas="c-libgstpipewire">libgstpipewire.so</primary>
589 </indexterm>
590 </listitem>
591 </varlistentry>-->
592 </variablelist>
593 </sect2>
594
595</sect1>
Note: See TracBrowser for help on using the repository browser.