source: multimedia/libdriv/pipewire.xml@ 032cdc3

12.2 gimp3 lazarus trunk xry111/for-12.3 xry111/spidermonkey128
Last change on this file since 032cdc3 was 711e854, checked in by Xi Ruoyao <xry111@…>, 5 months ago

pipewire: Add a patch to unbreak snapshot

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