mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	echo-cancel: improve properties
Make the streams passive so that things can suspend. Use a differend node.name for the input and output streams so that autoconnect can actually remember the right target. Make the media.name and description nicer. See #1557
This commit is contained in:
		
							parent
							
								
									d4b06431ff
								
							
						
					
					
						commit
						cff9dbf9dd
					
				
					 2 changed files with 17 additions and 13 deletions
				
			
		| 
						 | 
				
			
			@ -572,6 +572,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
	props = pw_properties_new(
 | 
			
		||||
			PW_KEY_NODE_NAME, "echo-cancel-capture",
 | 
			
		||||
			PW_KEY_NODE_VIRTUAL, "true",
 | 
			
		||||
			PW_KEY_NODE_PASSIVE, "true",
 | 
			
		||||
			NULL);
 | 
			
		||||
	if ((str = pw_properties_get(impl->source_props, PW_KEY_NODE_GROUP)) != NULL)
 | 
			
		||||
		pw_properties_set(props, PW_KEY_NODE_GROUP, str);
 | 
			
		||||
| 
						 | 
				
			
			@ -581,7 +582,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
		pw_properties_set(props, PW_KEY_NODE_LATENCY, impl->aec_info->latency);
 | 
			
		||||
 | 
			
		||||
	impl->capture = pw_stream_new(impl->core,
 | 
			
		||||
			"echo-cancel capture", props);
 | 
			
		||||
			"Echo-Cancel Capture", props);
 | 
			
		||||
	if (impl->capture == NULL)
 | 
			
		||||
		return -errno;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -590,7 +591,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
			&capture_events, impl);
 | 
			
		||||
 | 
			
		||||
	impl->source = pw_stream_new(impl->core,
 | 
			
		||||
			"echo-cancel source", impl->source_props);
 | 
			
		||||
			"Echo-Cancel Source", impl->source_props);
 | 
			
		||||
	impl->source_props = NULL;
 | 
			
		||||
	if (impl->source == NULL)
 | 
			
		||||
		return -errno;
 | 
			
		||||
| 
						 | 
				
			
			@ -602,6 +603,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
	props = pw_properties_new(
 | 
			
		||||
			PW_KEY_NODE_NAME, "echo-cancel-playback",
 | 
			
		||||
			PW_KEY_NODE_VIRTUAL, "true",
 | 
			
		||||
			PW_KEY_NODE_PASSIVE, "true",
 | 
			
		||||
			NULL);
 | 
			
		||||
	if ((str = pw_properties_get(impl->sink_props, PW_KEY_NODE_GROUP)) != NULL)
 | 
			
		||||
		pw_properties_set(props, PW_KEY_NODE_GROUP, str);
 | 
			
		||||
| 
						 | 
				
			
			@ -611,7 +613,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
		pw_properties_set(props, PW_KEY_NODE_LATENCY, impl->aec_info->latency);
 | 
			
		||||
 | 
			
		||||
	impl->playback = pw_stream_new(impl->core,
 | 
			
		||||
			"echo-cancel playback", props);
 | 
			
		||||
			"Echo-Cancel Playback", props);
 | 
			
		||||
	if (impl->playback == NULL)
 | 
			
		||||
		return -errno;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -620,7 +622,7 @@ static int setup_streams(struct impl *impl)
 | 
			
		|||
			&playback_events, impl);
 | 
			
		||||
 | 
			
		||||
	impl->sink = pw_stream_new(impl->core,
 | 
			
		||||
			"echo-cancel sink", impl->sink_props);
 | 
			
		||||
			"Echo-Cancel Sink", impl->sink_props);
 | 
			
		||||
	impl->sink_props = NULL;
 | 
			
		||||
	if (impl->sink == NULL)
 | 
			
		||||
		return -errno;
 | 
			
		||||
| 
						 | 
				
			
			@ -858,11 +860,6 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
 | 
			
		|||
		pw_properties_setf(props, PW_KEY_NODE_LINK_GROUP, "echo-cancel-%u", id);
 | 
			
		||||
	if (pw_properties_get(props, PW_KEY_NODE_VIRTUAL) == NULL)
 | 
			
		||||
		pw_properties_set(props, PW_KEY_NODE_VIRTUAL, "true");
 | 
			
		||||
	if (pw_properties_get(props, PW_KEY_NODE_NAME) == NULL)
 | 
			
		||||
		pw_properties_setf(props, PW_KEY_NODE_NAME, "echo-cancel-%u", id);
 | 
			
		||||
	if (pw_properties_get(props, PW_KEY_NODE_DESCRIPTION) == NULL)
 | 
			
		||||
		pw_properties_set(props, PW_KEY_NODE_DESCRIPTION,
 | 
			
		||||
				pw_properties_get(props, PW_KEY_NODE_NAME));
 | 
			
		||||
 | 
			
		||||
	parse_audio_info(props, &impl->info);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -879,8 +876,17 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
 | 
			
		|||
	if ((str = pw_properties_get(props, "sink.props")) != NULL)
 | 
			
		||||
		pw_properties_update_string(impl->sink_props, str, strlen(str));
 | 
			
		||||
 | 
			
		||||
	if (pw_properties_get(impl->source_props, PW_KEY_NODE_NAME) == NULL)
 | 
			
		||||
		pw_properties_set(impl->source_props, PW_KEY_NODE_NAME, "echo-cancel-source");
 | 
			
		||||
	if (pw_properties_get(impl->source_props, PW_KEY_NODE_DESCRIPTION) == NULL)
 | 
			
		||||
		pw_properties_set(impl->source_props, PW_KEY_NODE_DESCRIPTION, "Echo-Cancel Source");
 | 
			
		||||
	if (pw_properties_get(impl->source_props, PW_KEY_MEDIA_CLASS) == NULL)
 | 
			
		||||
		pw_properties_set(impl->source_props, PW_KEY_MEDIA_CLASS, "Audio/Source");
 | 
			
		||||
 | 
			
		||||
	if (pw_properties_get(impl->sink_props, PW_KEY_NODE_NAME) == NULL)
 | 
			
		||||
		pw_properties_set(impl->sink_props, PW_KEY_NODE_NAME, "echo-cancel-sink");
 | 
			
		||||
	if (pw_properties_get(impl->sink_props, PW_KEY_NODE_DESCRIPTION) == NULL)
 | 
			
		||||
		pw_properties_set(impl->sink_props, PW_KEY_NODE_DESCRIPTION, "Echo-Cancel Sink");
 | 
			
		||||
	if (pw_properties_get(impl->sink_props, PW_KEY_MEDIA_CLASS) == NULL)
 | 
			
		||||
		pw_properties_set(impl->sink_props, PW_KEY_MEDIA_CLASS, "Audio/Sink");
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -932,8 +938,6 @@ int pipewire__module_init(struct pw_impl_module *module, const char *args)
 | 
			
		|||
		goto error;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	copy_props(impl, props, PW_KEY_NODE_NAME);
 | 
			
		||||
	copy_props(impl, props, PW_KEY_NODE_DESCRIPTION);
 | 
			
		||||
	copy_props(impl, props, PW_KEY_NODE_GROUP);
 | 
			
		||||
	copy_props(impl, props, PW_KEY_NODE_LINK_GROUP);
 | 
			
		||||
	copy_props(impl, props, PW_KEY_NODE_VIRTUAL);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -179,14 +179,14 @@ struct module *create_module_echo_cancel(struct impl *impl, const char *argument
 | 
			
		|||
		pw_properties_set(source_props, PW_KEY_NODE_NAME, str);
 | 
			
		||||
		pw_properties_set(props, "source_name", NULL);
 | 
			
		||||
	} else {
 | 
			
		||||
		pw_properties_set(source_props, PW_KEY_NODE_NAME, "echo-cancel");
 | 
			
		||||
		pw_properties_set(source_props, PW_KEY_NODE_NAME, "echo-cancel-source");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((str = pw_properties_get(props, "sink_name")) != NULL) {
 | 
			
		||||
		pw_properties_set(sink_props, PW_KEY_NODE_NAME, str);
 | 
			
		||||
		pw_properties_set(props, "sink_name", NULL);
 | 
			
		||||
	} else {
 | 
			
		||||
		pw_properties_set(sink_props, PW_KEY_NODE_NAME, "echo-cancel");
 | 
			
		||||
		pw_properties_set(sink_props, PW_KEY_NODE_NAME, "echo-cancel-sink");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((str = pw_properties_get(props, "source_master")) != NULL) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue