mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| /** \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.
 | |
| 
 | |
| */
 | 
