/** \mainpage PipeWire

PipeWire is low-level multimedia framework that provides:

- 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.
- Very low-latency for both audio and video processing.

See \ref page_overview for an overview of PipeWire and \ref page_design
for the design principles guiding PipeWire.

# Documentation

- \ref page_config
- \ref page_programs
- \ref page_modules
- \ref page_pulse_modules

See our [Wiki](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home) for
more information on how to configure and use PipeWire.

# Components

PipeWire ships with the following components:

- A \ref page_daemon that implements the IPC and graph processing.
- An example \ref page_session_manager that manages objects in the \ref page_daemon.
- A set of \ref page_programs to introspect and use the \ref page_daemon.
- A \ref page_library to develop PipeWire applications and plugins (\ref
  page_tutorial "tutorial").
- The \ref page_spa used by both the \ref page_daemon and in the \ref
  page_library.

# API Documentation

See \ref page_api.

# Resources

- [PipeWire and AGL](https://wiki.automotivelinux.org/_media/pipewire_agl_20181206.pdf)
- [LAC 2020 Paper](https://lac2020.sciencesconf.org/307881/document)
- [PipeWire Under The Hood](https://venam.nixers.net/blog/unix/2021/06/23/pipewire-under-the-hood.html)
- [PipeWire: The Linux audio/video bus (LWN)](https://lwn.net/Articles/847412)
- [PipeWire Wikipedia](https://en.wikipedia.org/wiki/PipeWire)
- [Bluetooth, PipeWire and Whatsapp calls](https://gjhenrique.com/pipewire.html)
- [Intoduction to PipeWire](https://bootlin.com/blog/an-introduction-to-pipewire/)
- [A custom PipeWire node](https://bootlin.com/blog/a-custom-pipewire-node/)

*/
