summaryrefslogtreecommitdiffstats
path: root/doc/overview.dox
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:28:17 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:28:17 +0000
commit7a46c07230b8d8108c0e8e80df4522d0ac116538 (patch)
treed483300dab478b994fe199a5d19d18d74153718a /doc/overview.dox
parentInitial commit. (diff)
downloadpipewire-7a46c07230b8d8108c0e8e80df4522d0ac116538.tar.xz
pipewire-7a46c07230b8d8108c0e8e80df4522d0ac116538.zip
Adding upstream version 0.3.65.upstream/0.3.65upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/overview.dox')
-rw-r--r--doc/overview.dox42
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/overview.dox b/doc/overview.dox
new file mode 100644
index 0000000..b96caf2
--- /dev/null
+++ b/doc/overview.dox
@@ -0,0 +1,42 @@
+/** \page page_overview Overview
+
+PipeWire is a new low-level multimedia framework designed from scratch that
+aims to provide:
+
+- Graph based processing.
+- Support for out-of-process processing graphs with minimal overhead.
+- Flexible and extensible media format negotiation and buffer allocation.
+- Hard real-time capable plugins.
+- Achieve very low-latency for both audio and video processing.
+
+The framework is used to build a modular daemon that can be configured to:
+
+- Be a low-latency audio server with features like PulseAudio and/or JACK.
+- A video capture server that can manage hardware video capture devices and
+ provide access to them.
+- A central hub where video can be made available for other applications
+ such as the gnome-shell screencast API.
+
+
+# Motivation
+
+Linux has no unified framework for exchanging multimedia content between
+applications or even devices. In most cases, developers realized that
+a user-space daemon is needed to make this possible:
+
+- For video content, we typically rely on the compositor to render our
+ data.
+- For video capture, we usually go directly to the hardware devices, with
+ all security implications and inflexible routing that this brings.
+- For consumer audio, we use PulseAudio to manage and mix multiple streams
+ from clients.
+- For Pro audio, we use JACK to manage the graph of nodes.
+
+None of these solutions (except perhaps to some extent Wayland) however
+were designed to support the security features that are required when
+dealing with flatpaks or other containerized applications. PipeWire
+aims to solve this problem and provides a unified framework to run both
+consumer and pro audio as well as video capture and processing in a
+secure way.
+
+*/