mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	jack: only set io in NEED_DATA after complete
Don't set the port io to NEED_DATA in prepare_output because this might be called when we get the data from an input port that is linked to out output port. See #3514
This commit is contained in:
		
							parent
							
								
									13f52f4297
								
							
						
					
					
						commit
						6ef8d31f55
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		| 
						 | 
					@ -1527,7 +1527,6 @@ static void prepare_output(struct port *p, uint32_t frames)
 | 
				
			||||||
		if (SPA_LIKELY(mix->io != NULL))
 | 
							if (SPA_LIKELY(mix->io != NULL))
 | 
				
			||||||
			*mix->io = p->io;
 | 
								*mix->io = p->io;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	p->io.status = SPA_STATUS_NEED_DATA;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void complete_process(struct client *c, uint32_t frames)
 | 
					static void complete_process(struct client *c, uint32_t frames)
 | 
				
			||||||
| 
						 | 
					@ -1543,6 +1542,7 @@ static void complete_process(struct client *c, uint32_t frames)
 | 
				
			||||||
		if (!p->valid)
 | 
							if (!p->valid)
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		prepare_output(p, frames);
 | 
							prepare_output(p, frames);
 | 
				
			||||||
 | 
							p->io.status = SPA_STATUS_NEED_DATA;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	pw_array_for_each(item, &c->ports[SPA_DIRECTION_INPUT].items) {
 | 
						pw_array_for_each(item, &c->ports[SPA_DIRECTION_INPUT].items) {
 | 
				
			||||||
                if (pw_map_item_is_free(item))
 | 
					                if (pw_map_item_is_free(item))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue