mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-10-29 05:40:27 -04:00 
			
		
		
		
	buffer: don't use ringbuffer in chunk
We can't use a ringbuffer on the chunk because it implies the consumer would write to it to update the read position, which we can't do because the chunk is read-only and might even be shared. Go back to offset/size pairs, which can sortof do the same thing if we want later when we keep a non-shared read pointer in the consumer. Keep alsa timestamp around and filled state for future. mmap the input port meta/data/chunk as read-only. Only do clock update requests when asked.
This commit is contained in:
		
							parent
							
								
									2ad722b579
								
							
						
					
					
						commit
						4288a634f4
					
				
					 25 changed files with 165 additions and 126 deletions
				
			
		|  | @ -32,7 +32,6 @@ extern "C" { | |||
| #include <spa/support/loop.h> | ||||
| #include <spa/support/log.h> | ||||
| #include <spa/utils/list.h> | ||||
| #include <spa/utils/ringbuffer.h> | ||||
| 
 | ||||
| #include <spa/clock/clock.h> | ||||
| #include <spa/node/node.h> | ||||
|  | @ -150,13 +149,17 @@ struct state { | |||
| 	struct spa_list free; | ||||
| 	struct spa_list ready; | ||||
| 
 | ||||
| 	size_t ready_offset; | ||||
| 
 | ||||
| 	bool started; | ||||
| 	struct spa_source source; | ||||
| 	int timerfd; | ||||
| 	bool alsa_started; | ||||
| 	int threshold; | ||||
| 
 | ||||
| 	snd_htimestamp_t now; | ||||
| 	int64_t sample_count; | ||||
| 	int64_t filled; | ||||
| 	int64_t last_ticks; | ||||
| 	int64_t last_monotonic; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Wim Taymans
						Wim Taymans