source: multimedia/libdriv/pipewire.xml@ fa859b5

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

Update to pipewire-1.2.5

  • Property mode set to 100644
File size: 19.2 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 " ">
[74fc04a]9 <!ENTITY pipewire-md5sum "61f8d627b740e04c8234da6870799673">
[46038cfd]10 <!ENTITY pipewire-size "1.7 MB">
[74fc04a]11 <!ENTITY pipewire-buildsize "77 MB (with tests)">
[46038cfd]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
[c36ca685]35 &lfs122_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
[8ad99f0f]71<!--
[711e854]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>
[8ad99f0f]83-->
[711e854]84
[dcea4e3]85 <bridgehead renderas="sect3">Pipewire Dependencies</bridgehead>
86
[dab0680]87 <bridgehead renderas="sect4">Recommended</bridgehead>
88 <para role="recommended">
[9bd10279]89 <xref linkend="bluez"/>,
[5dcac01]90 <phrase revision="sysv"><xref linkend="dbus"/>,</phrase>
[dcea4e3]91 <xref linkend="gstreamer10"/>,
92 <xref linkend="gst10-plugins-base"/>,
[42e419b5]93 <xref linkend="pulseaudio"/>,
[63b3f5fe]94 <xref linkend="sbc"/>,
95 <xref linkend="v4l-utils"/>, and
[60bcd9c2]96 <xref role="runtime" linkend="wireplumber"/> (runtime)
[dcea4e3]97 </para>
98
99 <bridgehead renderas="sect4">Optional</bridgehead>
100 <para role="optional">
[febfc1e]101 <xref linkend="alsa-lib"/>,
102 <xref linkend="avahi"/>,
103 <xref linkend="fdk-aac"/>,
[e07baac6]104 <xref linkend="ffmpeg"/>,
[febfc1e]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),
[dcea4e3]112 <xref linkend="valgrind"/>,
[0b570f57]113 <xref linkend="vulkan-loader"/>,
[febfc1e]114 <xref linkend="xorg7-lib"/>,
[dcea4e3]115 <xref linkend="doxygen"/> and
[9bd10279]116 <xref linkend="graphviz"/> (for documentation),
[74fc04a]117 <ulink url="https://ffado.org/">ffado</ulink>,
[9bd10279]118 <ulink url="https://jackaudio.org/">JACK</ulink>,
[74fc04a]119 <ulink url="https://github.com/arkq/LC3plus">LC3plus</ulink>,
[73fb07ad]120 <ulink url="https://github.com/EHfive/ldacBT">ldacBT</ulink>,
[a4586ac9]121 <ulink url="https://libcamera.org/">libcamera</ulink>,
[74fc04a]122 <ulink url="https://github.com/hoene/libmysofa">libmysofa</ulink>,
123 <ulink url="https://drobilla.net/software/lilv.html">lilv</ulink>, and
[9bd10279]124 <ulink url="https://sourceforge.net/projects/xmltoman/">xmltoman</ulink>
[dcea4e3]125 </para>
[2a2bb77]126
[dcea4e3]127 <para condition="html" role="usernotes">
[42ddc30]128 Editor Notes: <ulink url="&blfs-wiki;/pipewire"/>
[dcea4e3]129 </para>
[2a2bb77]130
[dcea4e3]131 </sect2>
132
133 <sect2 role="installation">
134 <title>Installation of Pipewire</title>
135
[8ad99f0f]136<!--
[711e854]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>
[8ad99f0f]144-->
[711e854]145
[dcea4e3]146 <para>
147 Install <application>pipewire</application> by running the following
148 commands:
149 </para>
150
151<screen><userinput>mkdir build &amp;&amp;
[aa17ca8]152cd build &amp;&amp;
[dcea4e3]153
[8167f15a]154meson setup .. \
155 --prefix=/usr \
156 --buildtype=release \
157 -D session-managers="[]" &amp;&amp;
[dcea4e3]158ninja</userinput></screen>
159
160 <para>
[82a9ecf]161 To test the result, issue: <command>ninja test</command>.
[dcea4e3]162 </para>
[3ef294d]163 <!--
[7087a34]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>
[e440af5]169
[7087a34]170<screen role='root'><userinput>rm -vf /usr/bin/pipewire-*</userinput></screen>
[3ef294d]171-->
[dcea4e3]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
[20f070d8]182 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
183 href="../../xincludes/meson-buildtype-release.xml"/>
184
[9bd10279]185 <para>
[8167f15a]186 <parameter>-D session-managers="[]"</parameter>: This switch
[60bcd9c2]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"/>).
[9bd10279]195 </para>
196
[dcea4e3]197 <para>
[8167f15a]198 <option>-D docs=true</option>: This switch enables the generation of HTML
[dcea4e3]199 documentation. The optional dependencies for documentation need to be
200 installed for this to work.
201 </para>
202
203 <para>
[8167f15a]204 <option>-D man=true</option>: This switch enables the generation of manual
[dcea4e3]205 pages. The optional dependencies for documentation need to be installed
206 for this to work.
207 </para>
[e1af972]208
209 <para>
[8167f15a]210 <option>-D ffmpeg=enabled</option>: This switch enables using ffmpeg for
[e1af972]211 audio conversion as a SPA backend.
212 </para>
[0b570f57]213
214 <para>
[8167f15a]215 <option>-D vulkan=enabled</option>: This switch enables using Vulkan for
[0b570f57]216 video rendering as a SPA backend.
217 </para>
218
[dcea4e3]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,
[9bd10279]232 pw-cat,
233 pw-cli,
[bf0d7e6]234 pw-config,
[9bd10279]235 pw-dot,
[7c9ae62]236 pw-dump,
[cceceaaf]237 pw-jack,
[0ec63138]238 pw-link,
239 pw-loopback,
[42e419b5]240 pw-metadata,
241 pw-mididump,
[9bd10279]242 pw-mon,
243 pw-profiler,
[fa0bead]244 pw-reserve,
[7c9ae62]245 pw-top,
[59f6a1f]246 pw-v4l2,
[fa0bead]247 spa-acp-tool,
[9bd10279]248 spa-inspect,
[5d69f635]249 spa-json-dump,
[8558044]250 spa-monitor,
[fa0bead]251 spa-resample, and
[26760ad]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)
[dcea4e3]255 </seg>
256 <seg>
[fa0bead]257 libpipewire-0.3.so and
[767636d]258 60 modules below /usr/lib/pipewire-0.3 and /usr/lib/spa-0.2
[dcea4e3]259 </seg>
260 <seg>
[8558044]261 /usr/include/pipewire-0.3,
[9bd10279]262 /usr/include/spa-0.2,
[fa0bead]263 /usr/lib/alsa-lib,
[1e2d824d]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
[dcea4e3]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
[4c24eb0a]284 sharing of multimedia files between applications
[dcea4e3]285 </para>
286 <indexterm zone="pipewire pipewire-prog">
287 <primary sortas="b-pipewire">pipewire</primary>
288 </indexterm>
289 </listitem>
290 </varlistentry>
[3ef294d]291
[7a96e1b]292 <varlistentry id="pipewire-pulse">
293 <term><command>pipewire-pulse</command></term>
294 <listitem>
295 <para>
[8558044]296 starts a Pulseaudio-compatible version of
[4c24eb0a]297 the pipewire service
[7a96e1b]298 </para>
299 <indexterm zone="pipewire pipewire-pulse">
300 <primary sortas="b-pipewire-pulse">pipewire-pulse</primary>
301 </indexterm>
302 </listitem>
303 </varlistentry>
304
[9bd10279]305 <varlistentry id="pw-cat">
306 <term><command>pw-cat</command></term>
307 <listitem>
308 <para>
[4c24eb0a]309 allows you to play or record media using a pipewire instance
[9bd10279]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>
[dcea4e3]319 <listitem>
320 <para>
[4c24eb0a]321 allows you to interact with a pipewire instance
[dcea4e3]322 </para>
[9bd10279]323 <indexterm zone="pipewire pw-cli">
324 <primary sortas="b-pw-cli">pw-cli</primary>
325 </indexterm>
326 </listitem>
327 </varlistentry>
328
[bf0d7e6]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
[9bd10279]342 <varlistentry id="pw-dot">
343 <term><command>pw-dot</command></term>
344 <listitem>
345 <para>
[4c24eb0a]346 lists all of the daemons and objects in use by pipewire
[9bd10279]347 </para>
348 <indexterm zone="pipewire pw-dot">
349 <primary sortas="b-pw-dot">pw-dot</primary>
[dcea4e3]350 </indexterm>
351 </listitem>
352 </varlistentry>
353
[7c9ae62]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
[4c24eb0a]359 the console
[7c9ae62]360 </para>
361 <indexterm zone="pipewire pw-dump">
362 <primary sortas="b-pw-dump">pw-dump</primary>
363 </indexterm>
364 </listitem>
365 </varlistentry>
366
[cceceaaf]367 <varlistentry id="pw-jack">
368 <term><command>pw-jack</command></term>
369 <listitem>
370 <para>
[0ec63138]371 runs JACK applications on a pipewire instance
[cceceaaf]372 </para>
373 <indexterm zone="pipewire pw-jack">
374 <primary sortas="b-pw-jack">pw-jack</primary>
375 </indexterm>
376 </listitem>
377 </varlistentry>
378
[0ec63138]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
[42e419b5]404 <varlistentry id="pw-metadata">
405 <term><command>pw-metadata</command></term>
406 <listitem>
407 <para>
[4c24eb0a]408 inspects, adds, and removes metadata for objects
[42e419b5]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>
[4c24eb0a]420 dumps MIDI messages from a file to the screen
[42e419b5]421 </para>
422 <indexterm zone="pipewire pw-mididump">
423 <primary sortas="b-pw-mididump">pw-mididump</primary>
424 </indexterm>
425 </listitem>
426 </varlistentry>
427
[9bd10279]428 <varlistentry id="pw-mon">
429 <term><command>pw-mon</command></term>
[dcea4e3]430 <listitem>
431 <para>
[4c24eb0a]432 allows you to monitor pipewire instances
[dcea4e3]433 </para>
[9bd10279]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>
[4c24eb0a]444 tracks memory usage and API calls used by pipewire
[9bd10279]445 </para>
446 <indexterm zone="pipewire pw-profiler">
447 <primary sortas="b-pw-profiler">pw-profiler</primary>
[dcea4e3]448 </indexterm>
449 </listitem>
450 </varlistentry>
451
[fa0bead]452 <varlistentry id="pw-reserve">
453 <term><command>pw-reserve</command></term>
454 <listitem>
455 <para>
[4c24eb0a]456 reserves or monitors a device via D-Bus
[fa0bead]457 </para>
458 <indexterm zone="pipewire pw-reserve">
459 <primary sortas="b-pw-reserve">pw-reserve</primary>
460 </indexterm>
461 </listitem>
462 </varlistentry>
463
[7c9ae62]464 <varlistentry id="pw-top">
465 <term><command>pw-top</command></term>
466 <listitem>
467 <para>
[4c24eb0a]468 displays real-time performance information from pipewire
[7c9ae62]469 </para>
470 <indexterm zone="pipewire pw-top">
471 <primary sortas="b-pw-top">pw-top</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
475
[59f6a1f]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
[fa0bead]488 <varlistentry id="spa-acp-tool">
489 <term><command>spa-acp-tool</command></term>
490 <listitem>
491 <para>
[4c24eb0a]492 inspects the card profile of a given sound card
[fa0bead]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
[dcea4e3]500 <varlistentry id="spa-inspect">
501 <term><command>spa-inspect</command></term>
502 <listitem>
503 <para>
[4c24eb0a]504 allows you to inspect pipewire plugins
[dcea4e3]505 </para>
506 <indexterm zone="pipewire spa-inspect">
507 <primary sortas="b-spa-inspect">spa-inspect</primary>
508 </indexterm>
509 </listitem>
510 </varlistentry>
511
[5d69f635]512 <varlistentry id="spa-json-dump">
513 <term><command>spa-json-dump</command></term>
514 <listitem>
515 <para>
[46038cfd]516 dumps the current pipewire configuration in JSON format
[5d69f635]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
[dcea4e3]524 <varlistentry id="spa-monitor">
525 <term><command>spa-monitor</command></term>
526 <listitem>
527 <para>
[4c24eb0a]528 allows you to monitor pipewire plugins
[dcea4e3]529 </para>
530 <indexterm zone="pipewire spa-monitor">
531 <primary sortas="b-spa-monitor">spa-monitor</primary>
532 </indexterm>
533 </listitem>
534 </varlistentry>
535
[fa0bead]536 <varlistentry id="spa-resample">
537 <term><command>spa-resample</command></term>
538 <listitem>
539 <para>
[4c24eb0a]540 resamples a given file
[fa0bead]541 </para>
542 <indexterm zone="pipewire spa-resample">
543 <primary sortas="b-spa-resample">spa-resample</primary>
544 </indexterm>
545 </listitem>
546 </varlistentry>
547
[dcea4e3]548 <varlistentry id="libpipewire">
[9bd10279]549 <term><filename class="libraryfile">libpipewire-0.3.so</filename></term>
[dcea4e3]550 <listitem>
551 <para>
[4c24eb0a]552 contains API functions for handling multimedia pipelines
[dcea4e3]553 </para>
554 <indexterm zone="pipewire libpipewire">
[9bd10279]555 <primary sortas="c-libpipewire">libpipewire-0.3.so</primary>
556 </indexterm>
557 </listitem>
558 </varlistentry>
[26760ad]559 <!-- not in /usr/lib
[11eb3ae5]560 <varlistentry id="libpulse">
561 <term><filename class="libraryfile">libpulse.so</filename></term>
[9bd10279]562 <listitem>
563 <para>
564 is a pipewire plugin for pulseaudio.
565 </para>
[11eb3ae5]566 <indexterm zone="pipewire libpulse">
567 <primary sortas="c-libpulse">libpulse.so</primary>
[9bd10279]568 </indexterm>
569 </listitem>
570 </varlistentry>
571
[11eb3ae5]572 <varlistentry id="libpulse-simple">
573 <term><filename class="libraryfile">libpulse-simple.so</filename></term>
[9bd10279]574 <listitem>
575 <para>
576 is a simplified version of the pulseaudio plugin for pipewire.
577 </para>
[11eb3ae5]578 <indexterm zone="pipewire libpulse-simple">
579 <primary sortas="c-libpulse-simple">libpulse-simple.so</primary>
[9bd10279]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>
[dcea4e3]604 </indexterm>
605 </listitem>
[da1575a]606 </varlistentry>-->
[dcea4e3]607 </variablelist>
608 </sect2>
[4c24eb0a]609
[dcea4e3]610</sect1>
Note: See TracBrowser for help on using the repository browser.