mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	Improve rate matching and clock slaving
Use a new rate_match io area to exhange rate matching info between sink/source and resampler. Compensate for the rate match delay when scheduling timeouts. Let the resampler notify the source of how many samples it needs to produce the desired quantum. Make sure we keep an extra buffer in the device to be able to make this possible. Let the adapter directly call the slave node process function.
This commit is contained in:
		
							parent
							
								
									595dc0ab5b
								
							
						
					
					
						commit
						c7d7058896
					
				
					 10 changed files with 147 additions and 98 deletions
				
			
		| 
						 | 
				
			
			@ -1113,6 +1113,7 @@ do_link_profile:
 | 
			
		|||
				peer->format.channels, node->format.channels,
 | 
			
		||||
				audio_info.channels);
 | 
			
		||||
 | 
			
		||||
		audio_info.rate = DEFAULT_SAMPLERATE;
 | 
			
		||||
		node->profile_format = audio_info;
 | 
			
		||||
 | 
			
		||||
		spa_pod_builder_init(&b, buf, sizeof(buf));
 | 
			
		||||
| 
						 | 
				
			
			@ -1190,6 +1191,7 @@ static void rescan_session(struct impl *impl, struct session *sess)
 | 
			
		|||
		}
 | 
			
		||||
 | 
			
		||||
		info = node->format;
 | 
			
		||||
		info.rate = DEFAULT_SAMPLERATE;
 | 
			
		||||
 | 
			
		||||
		props = pw_properties_new_dict(node->info->props);
 | 
			
		||||
		if ((str = pw_properties_get(props, PW_KEY_DEVICE_NICK)) == NULL)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue