diff options
Diffstat (limited to 'doc/overview.dox')
-rw-r--r-- | doc/overview.dox | 42 |
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. + +*/ |