source: multimedia/libdriv/pipewire.xml@ 20f070d8

trunk
Last change on this file since 20f070d8 was 20f070d8, checked in by Xi Ruoyao <xry111@…>, 8 weeks ago

first batch of meson --buildtype=release

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