source: multimedia/libdriv/pipewire.xml@ 9706fa99

11.0 ken/refactor-virt lazarus qt5new trunk
Last change on this file since 9706fa99 was 9706fa99, checked in by Bruce Dubbs <bdubbs@…>, 3 months ago

Fix pipewire stats

  • Property mode set to 100644
File size: 18.6 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 "a2b97e7c57f8098bdb15c7121633cf0e">
10 <!ENTITY pipewire-size "1.5 MB">
11 <!ENTITY pipewire-buildsize "59 MB (with tests)">
12 <!ENTITY pipewire-time "0.4 SBU (Using parallelism=4; with tests)">
13]>
14
15<sect1 id="pipewire" xreflabel="pipewire-&pipewire-version;">
16 <?dbhtml filename="pipewire.html"?>
17
18 <sect1info>
19 <date>$Date$</date>
20 </sect1info>
21
22 <title>Pipewire-&pipewire-version;</title>
23
24 <indexterm zone="pipewire">
25 <primary sortas="a-pipewire">pipewire</primary>
26 </indexterm>
27
28 <sect2 role="package">
29 <title>Introduction to Pipewire</title>
30
31 <para>
32 The <application>pipewire</application> package contains a server and
33 user-space API to handle multimedia pipelines. This includes a universal
34 API to connect to multimedia devices, as well as sharing multimedia
35 files between applications.
36 </para>
37
38 &lfs101_checked;
39
40 <bridgehead renderas="sect3">Package Information</bridgehead>
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>
44 Download (HTTP): <ulink url="&pipewire-download-http;"/>
45 </para>
46 </listitem>
47 <listitem>
48 <para>
49 Download (FTP): <ulink url="&pipewire-download-ftp;"/>
50 </para>
51 </listitem>
52 <listitem>
53 <para>
54 Download MD5 sum: &pipewire-md5sum;
55 </para>
56 </listitem>
57 <listitem>
58 <para>
59 Download size: &pipewire-size;
60 </para>
61 </listitem>
62 <listitem>
63 <para>
64 Estimated disk space required: &pipewire-buildsize;
65 </para>
66 </listitem>
67 <listitem>
68 <para>
69 Estimated build time: &pipewire-time;
70 </para>
71 </listitem>
72 </itemizedlist>
73
74 <bridgehead renderas="sect3">Pipewire Dependencies</bridgehead>
75
76 <bridgehead renderas="sect4">Required</bridgehead>
77 <para role="required">
78 <xref linkend="bluez"/>,
79 <xref linkend="ffmpeg"/>,
80 <xref linkend="gstreamer10"/>,
81 <xref linkend="gst10-plugins-base"/>,
82 <xref linkend="libva"/>,
83 <xref linkend="pulseaudio"/>,
84 <xref linkend="sbc"/>,
85 <xref linkend="sdl2"/>, and
86 <xref linkend="v4l-utils"/>
87 </para>
88
89 <bridgehead renderas="sect4">Optional</bridgehead>
90 <para role="optional">
91 <xref linkend="valgrind"/>,
92 <xref linkend="doxygen"/> and
93 <xref linkend="graphviz"/> (for documentation),
94 <ulink url="https://jackaudio.org/">JACK</ulink>,
95 <ulink url="https://github.com/EHfive/ldacBT">ldacBT</ulink>,
96 <ulink url="https://libcamera.org/">libcamera</ulink>,
97 <ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>, and
98 <ulink url="https://sourceforge.net/projects/xmltoman/">xmltoman</ulink>
99 </para>
100
101 <para condition="html" role="usernotes">
102 User Notes: <ulink url="&blfs-wiki;/pipewire"/>
103 </para>
104 </sect2>
105
106 <sect2 role="installation">
107 <title>Installation of Pipewire</title>
108
109 <para>
110 Install <application>pipewire</application> by running the following
111 commands:
112 </para>
113
114<screen><userinput>mkdir build &amp;&amp;
115cd build &amp;&amp;
116
117meson --prefix=/usr --buildtype=release .. &amp;&amp;
118ninja</userinput></screen>
119
120 <para>
121 To test the result, issue: <command>ninja test</command>.
122 </para>
123
124 <para>
125 Now, as the <systemitem class="username">root</systemitem> user:
126 </para>
127
128<screen role="root"><userinput>ninja install</userinput></screen>
129 </sect2>
130
131 <sect2 role="commands">
132 <title>Command Explanations</title>
133
134 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
135 href="../../xincludes/meson-buildtype-release.xml"/>
136
137 <!-- Without these three parameters, Meson fails to run. -->
138 <!-- Not true anymore, commenting out as of 0.3.24
139 <para>
140 <parameter>-Djack=false</parameter>: This switch prevents building the
141 <application>JACK</application> plugin since
142 <application>JACK</application> is not in BLFS.
143 </para>
144
145 <para>
146 <parameter>-Dpipewire-jack=false</parameter>: This switch prevents
147 building <application>JACK</application> support into pipewire since
148 <application>JACK</application> is not in BLFS.
149 </para>
150
151 <para>
152 <parameter>-Dvulkan=false</parameter>: This switch prevents building
153 <application>Vulkan</application> API support into pipewire since
154 <application>Vulkan</application> is not in BLFS.
155 </para>
156 -->
157
158 <para>
159 <option>-Ddocs=true</option>: This switch enables the generation of HTML
160 documentation. The optional dependencies for documentation need to be
161 installed for this to work.
162 </para>
163
164 <para>
165 <option>-Dman=true</option>: This switch enables the generation of manual
166 pages. The optional dependencies for documentation need to be installed
167 for this to work.
168 </para>
169 </sect2>
170
171 <sect2 role="content">
172 <title>Contents</title>
173
174 <segmentedlist>
175 <segtitle>Installed Programs</segtitle>
176 <segtitle>Installed Libraries</segtitle>
177 <segtitle>Installed Directories</segtitle>
178
179 <seglistitem>
180 <seg>
181 pipewire,
182 pipewire-media-session,
183 pipewire-pulse,
184 pw-cat,
185 pw-cli,
186 pw-dot,
187 pw-dump,
188 pw-jack,
189 pw-link,
190 pw-loopback,
191 pw-metadata,
192 pw-mididump,
193 pw-mon,
194 pw-profiler,
195 <!--pw-pulse,-->
196 pw-reserve,
197 pw-top,
198 spa-acp-tool,
199 spa-inspect,
200 spa-json-dump,
201 spa-monitor,
202 spa-resample, and
203 pw-midiplay, pw-midirecord, pw-play, and pw-record (symlinks to pw-cat)
204 </seg>
205 <seg>
206 libpipewire-0.3.so and
207 30 modules below /usr/lib/pipewire-0.3<!--,
208 [pierre July 29th, 2020]: all the following libs are in subdirectories
209 of /usr/lib. I'm not sure they should appear. But if they should, there
210 are many more libs to list...
211 libpulse-mainloop-glib-pw.so,
212 libpulse.so,
213 libpulse-simple.so,
214 libasound_module_pcm_pipewire.so, and
215 libgstpipewire.so
216 [bdubbs Sep 29th, 2020]: add
217 libpipewire-module-{access,adapter,client-device,client-node,
218 link-factory,metadata,portal,profiler,protocol-native,
219 rtkit,session-manager,spa-device,spa-device-factory,spa-node,
220 spa-node-factory}.so
221 libasound_module_ctl_pipewire.so
222 libasound_module_pcm_pipewire.so
223 libspa-{alsa,audioconvert,audiomixer,bluez5,control,dbus,support
224 v4l2,videoconvert}.so
225 -->
226 </seg>
227 <seg>
228 /etc/pipewire,
229 /usr/include/pipewire-0.3,
230 /usr/include/spa-0.2,
231 /usr/lib/alsa-lib,
232 /usr/lib/gstreamer-1.0,
233 /usr/lib/pipewire-0.3, and
234 /usr/lib/spa-0.2
235 </seg>
236 </seglistitem>
237 </segmentedlist>
238
239 <variablelist>
240 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
241 <?dbfo list-presentation="list"?>
242 <?dbhtml list-presentation="table"?>
243
244 <varlistentry id="pipewire-prog">
245 <term><command>pipewire</command></term>
246 <listitem>
247 <para>
248 is a service that allows access to multimedia devices and allows
249 sharing of multimedia files between applications
250 </para>
251 <indexterm zone="pipewire pipewire-prog">
252 <primary sortas="b-pipewire">pipewire</primary>
253 </indexterm>
254 </listitem>
255 </varlistentry>
256
257 <varlistentry id="pipewire-media-session">
258 <term><command>pipewire-media-session</command></term>
259 <listitem>
260 <para>
261 is a service that allows a desktop environment to know when media
262 files are being played through pipewire
263 </para>
264 <indexterm zone="pipewire pipewire-media-session">
265 <primary sortas="b-pipewire-media-session">pipewire-media-session</primary>
266 </indexterm>
267 </listitem>
268 </varlistentry>
269
270 <varlistentry id="pipewire-pulse">
271 <term><command>pipewire-pulse</command></term>
272 <listitem>
273 <para>
274 starts a Pulseaudio-compatible version of
275 the pipewire service
276 </para>
277 <indexterm zone="pipewire pipewire-pulse">
278 <primary sortas="b-pipewire-pulse">pipewire-pulse</primary>
279 </indexterm>
280 </listitem>
281 </varlistentry>
282
283 <varlistentry id="pw-cat">
284 <term><command>pw-cat</command></term>
285 <listitem>
286 <para>
287 allows you to play or record media using a pipewire instance
288 </para>
289 <indexterm zone="pipewire pw-cat">
290 <primary sortas="b-pw-cat">pw-cat</primary>
291 </indexterm>
292 </listitem>
293 </varlistentry>
294
295 <varlistentry id="pw-cli">
296 <term><command>pw-cli</command></term>
297 <listitem>
298 <para>
299 allows you to interact with a pipewire instance
300 </para>
301 <indexterm zone="pipewire pw-cli">
302 <primary sortas="b-pw-cli">pw-cli</primary>
303 </indexterm>
304 </listitem>
305 </varlistentry>
306
307 <varlistentry id="pw-dot">
308 <term><command>pw-dot</command></term>
309 <listitem>
310 <para>
311 lists all of the daemons and objects in use by pipewire
312 </para>
313 <indexterm zone="pipewire pw-dot">
314 <primary sortas="b-pw-dot">pw-dot</primary>
315 </indexterm>
316 </listitem>
317 </varlistentry>
318
319 <varlistentry id="pw-dump">
320 <term><command>pw-dump</command></term>
321 <listitem>
322 <para>
323 dumps debug messages from a local or remote pipewire instance to
324 the console
325 </para>
326 <indexterm zone="pipewire pw-dump">
327 <primary sortas="b-pw-dump">pw-dump</primary>
328 </indexterm>
329 </listitem>
330 </varlistentry>
331
332 <varlistentry id="pw-jack">
333 <term><command>pw-jack</command></term>
334 <listitem>
335 <para>
336 runs JACK applications on a pipewire instance
337 </para>
338 <indexterm zone="pipewire pw-jack">
339 <primary sortas="b-pw-jack">pw-jack</primary>
340 </indexterm>
341 </listitem>
342 </varlistentry>
343
344 <varlistentry id="pw-link">
345 <term><command>pw-link</command></term>
346 <listitem>
347 <para>
348 links pipewire ports together
349 </para>
350 <indexterm zone="pipewire pw-link">
351 <primary sortas="b-pw-link">pw-link</primary>
352 </indexterm>
353 </listitem>
354 </varlistentry>
355
356 <varlistentry id="pw-loopback">
357 <term><command>pw-loopback</command></term>
358 <listitem>
359 <para>
360 initializes a loopback link between two different pipewire ports.
361 This is useful for testing and debugging
362 </para>
363 <indexterm zone="pipewire pw-loopback">
364 <primary sortas="b-pw-loopback">pw-loopback</primary>
365 </indexterm>
366 </listitem>
367 </varlistentry>
368
369 <varlistentry id="pw-metadata">
370 <term><command>pw-metadata</command></term>
371 <listitem>
372 <para>
373 inspects, adds, and removes metadata for objects
374 </para>
375 <indexterm zone="pipewire pw-metadata">
376 <primary sortas="b-pw-metadata">pw-metadata</primary>
377 </indexterm>
378 </listitem>
379 </varlistentry>
380
381 <varlistentry id="pw-mididump">
382 <term><command>pw-mididump</command></term>
383 <listitem>
384 <para>
385 dumps MIDI messages from a file to the screen
386 </para>
387 <indexterm zone="pipewire pw-mididump">
388 <primary sortas="b-pw-mididump">pw-mididump</primary>
389 </indexterm>
390 </listitem>
391 </varlistentry>
392
393 <varlistentry id="pw-mon">
394 <term><command>pw-mon</command></term>
395 <listitem>
396 <para>
397 allows you to monitor pipewire instances
398 </para>
399 <indexterm zone="pipewire pw-mon">
400 <primary sortas="b-pw-mon">pw-mon</primary>
401 </indexterm>
402 </listitem>
403 </varlistentry>
404
405 <varlistentry id="pw-profiler">
406 <term><command>pw-profiler</command></term>
407 <listitem>
408 <para>
409 tracks memory usage and API calls used by pipewire
410 </para>
411 <indexterm zone="pipewire pw-profiler">
412 <primary sortas="b-pw-profiler">pw-profiler</primary>
413 </indexterm>
414 </listitem>
415 </varlistentry>
416
417<!--
418 <varlistentry id="pw-pulse">
419 <term><command>pw-pulse</command></term>
420 <listitem>
421 <para>
422 runs Pulseaudio applications on pipewire.
423 </para>
424 <indexterm zone="pipewire pw-pulse">
425 <primary sortas="b-pw-pulse">pw-pulse</primary>
426 </indexterm>
427 </listitem>
428 </varlistentry>
429-->
430
431 <varlistentry id="pw-reserve">
432 <term><command>pw-reserve</command></term>
433 <listitem>
434 <para>
435 reserves or monitors a device via D-Bus
436 </para>
437 <indexterm zone="pipewire pw-reserve">
438 <primary sortas="b-pw-reserve">pw-reserve</primary>
439 </indexterm>
440 </listitem>
441 </varlistentry>
442
443 <varlistentry id="pw-top">
444 <term><command>pw-top</command></term>
445 <listitem>
446 <para>
447 displays real-time performance information from pipewire
448 </para>
449 <indexterm zone="pipewire pw-top">
450 <primary sortas="b-pw-top">pw-top</primary>
451 </indexterm>
452 </listitem>
453 </varlistentry>
454
455 <varlistentry id="spa-acp-tool">
456 <term><command>spa-acp-tool</command></term>
457 <listitem>
458 <para>
459 inspects the card profile of a given sound card
460 </para>
461 <indexterm zone="pipewire spa-acp-tool">
462 <primary sortas="b-spa-acp-tool">spa-acp-tool</primary>
463 </indexterm>
464 </listitem>
465 </varlistentry>
466
467 <varlistentry id="spa-inspect">
468 <term><command>spa-inspect</command></term>
469 <listitem>
470 <para>
471 allows you to inspect pipewire plugins
472 </para>
473 <indexterm zone="pipewire spa-inspect">
474 <primary sortas="b-spa-inspect">spa-inspect</primary>
475 </indexterm>
476 </listitem>
477 </varlistentry>
478
479 <varlistentry id="spa-json-dump">
480 <term><command>spa-json-dump</command></term>
481 <listitem>
482 <para>
483 dumps the current pipewire configuration in JSON format.
484 </para>
485 <indexterm zone="pipewire spa-json-dump">
486 <primary sortas="b-spa-json-dump">spa-json-dump</primary>
487 </indexterm>
488 </listitem>
489 </varlistentry>
490
491 <varlistentry id="spa-monitor">
492 <term><command>spa-monitor</command></term>
493 <listitem>
494 <para>
495 allows you to monitor pipewire plugins
496 </para>
497 <indexterm zone="pipewire spa-monitor">
498 <primary sortas="b-spa-monitor">spa-monitor</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>
502
503 <varlistentry id="spa-resample">
504 <term><command>spa-resample</command></term>
505 <listitem>
506 <para>
507 resamples a given file
508 </para>
509 <indexterm zone="pipewire spa-resample">
510 <primary sortas="b-spa-resample">spa-resample</primary>
511 </indexterm>
512 </listitem>
513 </varlistentry>
514
515 <varlistentry id="libpipewire">
516 <term><filename class="libraryfile">libpipewire-0.3.so</filename></term>
517 <listitem>
518 <para>
519 contains API functions for handling multimedia pipelines
520 </para>
521 <indexterm zone="pipewire libpipewire">
522 <primary sortas="c-libpipewire">libpipewire-0.3.so</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526<!--
527 <varlistentry id="libpulse-mainloop-glib-pw">
528 <term><filename class="libraryfile">libpulse-mainloop-glib-pw.so</filename></term>
529 <listitem>
530 <para>
531 provides a glib main() loop for pulseaudio to route media through
532 pipewire.
533 </para>
534 <indexterm zone="pipewire libpulse-mainloop-glib-pw">
535 <primary sortas="c-libpulse-mainloop-glib-pw">libpulse-mainloop-glib-pw.so</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
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.