mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	doc: mention async link latency in latency doc
This commit is contained in:
		
							parent
							
								
									6305eada80
								
							
						
					
					
						commit
						e6bcd7b611
					
				
					 1 changed files with 39 additions and 0 deletions
				
			
		|  | @ -100,6 +100,20 @@ When the ProcessLatency changes, the procedure to notify of latency changes is: | ||||||
| PipeWire will automatically aggregate latency from links and propagate the new latencies | PipeWire will automatically aggregate latency from links and propagate the new latencies | ||||||
| down and upstream. | down and upstream. | ||||||
| 
 | 
 | ||||||
|  | # Async nodes | ||||||
|  | 
 | ||||||
|  | When a node has the node.async property set to true, it will be considered an async | ||||||
|  | node and will be scheduled differently, see scheduling.dox. | ||||||
|  | 
 | ||||||
|  | A link between a port of an async node and another port (async or not) is called an | ||||||
|  | async link and will have the link.async=true property. | ||||||
|  | 
 | ||||||
|  | An async link will add 1 quantum of latency between the nodes it links. A special | ||||||
|  | exception is made for the output ports of the driver node, which do not add latency. | ||||||
|  | 
 | ||||||
|  | The Latency param will be updated with 1 extra quantum when they travel over an async | ||||||
|  | link. | ||||||
|  | 
 | ||||||
| # Examples | # Examples | ||||||
| 
 | 
 | ||||||
| ## A source node with a given ProcessLatency | ## A source node with a given ProcessLatency | ||||||
|  | @ -240,4 +254,29 @@ We also see that node.FL has different min/max-rate input latencies. This inform | ||||||
| used to insert a delay node to align the latencies again. For example, if we delay the signal | used to insert a delay node to align the latencies again. For example, if we delay the signal | ||||||
| between node.FL and FL.sink with 1536 samples, the latencies will be aligned again. | between node.FL and FL.sink with 1536 samples, the latencies will be aligned again. | ||||||
| 
 | 
 | ||||||
|  | ## An async output stream and sink node linked together | ||||||
|  | 
 | ||||||
|  | The sink has 1 quantum of Input latency. The stream has no output latency. When the Input latency | ||||||
|  | travels over the async link 1 quantum of latency is added and the Input latency on the stream is | ||||||
|  | now 2 quanta. Similar for the stream Output latency that receives an additional 1 quantum of | ||||||
|  | latency when it arrives in the sink over the async link. | ||||||
|  | 
 | ||||||
|  | ``` | ||||||
|  |       Latency: [{ "direction": "output", "min-quantum": 0, "max-quantum": 0 } ] | ||||||
|  |       Latency: [{ "direction": "input", "min-quantum": 2, "max-quantum": 2 } ] | ||||||
|  |                ^ | ||||||
|  |                |         Latency: [{ "direction": "output", "min-quantum": 1, "max-quantum": 1 } ] | ||||||
|  |                |         Latency: [{ "direction": "input", "min-quantum": 1, "max-quantum": 1 } ] | ||||||
|  |                |              | | ||||||
|  |    +----------+v              v+--------+ | ||||||
|  |    | async    FL ------------ FL        | | ||||||
|  |    | stream   +                | sink   | | ||||||
|  |    |          FR --+          FR        | | ||||||
|  |    +----------+    |           +--------+ | ||||||
|  |                    v | ||||||
|  |       Latency: [{ "direction": "output", "min-quantum": 0, "max-quantum": 0 } ] | ||||||
|  |       Latency: [{ "direction": "input", "min-quantum": 0, "max-quantum": 0 } ] | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| */ | */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Wim Taymans
						Wim Taymans