mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	filter-chain: use equal rate for capture and playback
If only one of rates is provided, propagate it. If both are provided and are inequal, warn. This configuration appears to be broken for obvious reasons
This commit is contained in:
		
							parent
							
								
									65f3a9c481
								
							
						
					
					
						commit
						e0cc072100
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
					@ -2337,6 +2337,18 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
 | 
				
			||||||
	parse_audio_info(impl->capture_props, &impl->capture_info);
 | 
						parse_audio_info(impl->capture_props, &impl->capture_info);
 | 
				
			||||||
	parse_audio_info(impl->playback_props, &impl->playback_info);
 | 
						parse_audio_info(impl->playback_props, &impl->playback_info);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (impl->capture_info.rate && !impl->playback_info.rate)
 | 
				
			||||||
 | 
							impl->playback_info.rate = impl->capture_info.rate;
 | 
				
			||||||
 | 
						else if (impl->playback_info.rate && !impl->capture_info.rate)
 | 
				
			||||||
 | 
							impl->capture_info.rate = !impl->playback_info.rate;
 | 
				
			||||||
 | 
						else if (impl->capture_info.rate != impl->playback_info.rate) {
 | 
				
			||||||
 | 
							pw_log_warn("Both capture and playback rate are set, but"
 | 
				
			||||||
 | 
								" they are different. Using the highest of two. This behaviour"
 | 
				
			||||||
 | 
								" is deprecated, please use equal rates in the module config");
 | 
				
			||||||
 | 
							impl->playback_info.rate = impl->capture_info.rate =
 | 
				
			||||||
 | 
								SPA_MAX(impl->playback_info.rate, impl->capture_info.rate);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((str = pw_properties_get(props, PW_KEY_NODE_NAME)) == NULL) {
 | 
						if ((str = pw_properties_get(props, PW_KEY_NODE_NAME)) == NULL) {
 | 
				
			||||||
		pw_properties_setf(props, PW_KEY_NODE_NAME,
 | 
							pw_properties_setf(props, PW_KEY_NODE_NAME,
 | 
				
			||||||
				"filter-chain-%u-%u", pid, id);
 | 
									"filter-chain-%u-%u", pid, id);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue