source: multimedia/libdriv/pipewire.xml@ ae90b83

trunk
Last change on this file since ae90b83 was ae90b83, checked in by Bruce Dubbs <bdubbs@…>, 3 months ago

Update to pipewire-0.3.27

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