source: multimedia/libdriv/pipewire.xml@ 36eff21

gimp3 lazarus trunk
Last change on this file since 36eff21 was 8ad99f0f, checked in by Douglas R. Reno <renodr@…>, 4 months ago

Update to pipewire-1.0.5

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