source: multimedia/libdriv/pipewire.xml@ 767636d

12.1 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 767636d was 767636d, checked in by Pierre Labastie <pierre.labastie@…>, 9 months ago

piepwire-0.3.79

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