mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	stream: remove client-stream
Use an adapter instead of the client-stream. This means we run the audioconverters and resamplers in the client instead of the pipewire daemon. It also allows us to implement the audio mixing correctly in the capture client. The only pending piece is that we now wake up the client with the period of the server. Maybe we can later optimize that and accumulate/split buffers before waking the client. This probably needs fixing with video..
This commit is contained in:
		
							parent
							
								
									01d9f4eb3a
								
							
						
					
					
						commit
						0cdc3dce0b
					
				
					 6 changed files with 55 additions and 1427 deletions
				
			
		| 
						 | 
				
			
			@ -32,7 +32,6 @@
 | 
			
		|||
#include <pipewire/pipewire.h>
 | 
			
		||||
 | 
			
		||||
#include "module-client-node/client-node.h"
 | 
			
		||||
#include "module-client-node/client-stream.h"
 | 
			
		||||
 | 
			
		||||
static const struct spa_dict_item module_props[] = {
 | 
			
		||||
	{ PW_KEY_MODULE_AUTHOR, "Wim Taymans <wim.taymans@gmail.com>" },
 | 
			
		||||
| 
						 | 
				
			
			@ -79,12 +78,7 @@ static void *create_object(void *_data,
 | 
			
		|||
 | 
			
		||||
	parent = pw_client_get_global(client);
 | 
			
		||||
 | 
			
		||||
	if (properties && pw_properties_get(properties, PW_KEY_NODE_STREAM) != NULL) {
 | 
			
		||||
		result = pw_client_stream_new(node_resource, parent, properties);
 | 
			
		||||
	}
 | 
			
		||||
	else {
 | 
			
		||||
		result = pw_client_node_new(node_resource, parent, properties, true);
 | 
			
		||||
	}
 | 
			
		||||
	result = pw_client_node_new(node_resource, parent, properties, true);
 | 
			
		||||
	if (result == NULL) {
 | 
			
		||||
		res = -errno;
 | 
			
		||||
		goto error_node;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue