source: multimedia/libdriv/pipewire.xml@ 99b309f8

trunk
Last change on this file since 99b309f8 was 74fc04a, checked in by Douglas R. Reno <renodr@…>, 2 days ago

Update to pipewire-1.2.5

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