mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	remote-node: remove IO_Buffers before releasing the mix
This is usually done by the link but because we are a remote node, we manage the links ourselves.
This commit is contained in:
		
							parent
							
								
									2c5a3e9593
								
							
						
					
					
						commit
						74b6ab4288
					
				
					 2 changed files with 7 additions and 1 deletions
				
			
		| 
						 | 
					@ -938,6 +938,9 @@ static void clear_mix(struct node_data *data, struct mix *mix)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	pw_log_debug("port %p: mix clear %d.%d", mix->port, mix->port->port_id, mix->mix_id);
 | 
						pw_log_debug("port %p: mix clear %d.%d", mix->port, mix->port->port_id, mix->mix_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spa_node_port_set_io(mix->port->mix, mix->mix.port.direction,
 | 
				
			||||||
 | 
								mix->mix.port.port_id, SPA_IO_Buffers, NULL, 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	spa_list_remove(&mix->link);
 | 
						spa_list_remove(&mix->link);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	clear_buffers(data, mix);
 | 
						clear_buffers(data, mix);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -664,8 +664,11 @@ int pw_impl_link_activate(struct pw_impl_link *this)
 | 
				
			||||||
		return res;
 | 
							return res;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((res = port_set_io(this, this->output, SPA_IO_Buffers, this->io,
 | 
						if ((res = port_set_io(this, this->output, SPA_IO_Buffers, this->io,
 | 
				
			||||||
			sizeof(struct spa_io_buffers), &this->rt.out_mix)) < 0)
 | 
								sizeof(struct spa_io_buffers), &this->rt.out_mix)) < 0) {
 | 
				
			||||||
 | 
							port_set_io(this, this->input, SPA_IO_Buffers, NULL, 0,
 | 
				
			||||||
 | 
									&this->rt.in_mix);
 | 
				
			||||||
		return res;
 | 
							return res;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pw_loop_invoke(this->output->node->data_loop,
 | 
						pw_loop_invoke(this->output->node->data_loop,
 | 
				
			||||||
	       do_activate_link, SPA_ID_INVALID, NULL, 0, false, this);
 | 
						       do_activate_link, SPA_ID_INVALID, NULL, 0, false, this);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue