source: multimedia/libdriv/pipewire.xml@ 141e4450

12.0 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 141e4450 was 26760ad, checked in by Pierre Labastie <pierre.labastie@…>, 12 months ago

Update to pipewire-0.3.74

Fix building instructions (make them more correct). Clean up
COntent.

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