mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	fix use_buffers checks
We can set 0 buffers even if there is no format. Return -ENOSPC when too many buffers are set.
This commit is contained in:
		
							parent
							
								
									9f3237b74e
								
							
						
					
					
						commit
						97aafe2234
					
				
					 31 changed files with 146 additions and 88 deletions
				
			
		| 
						 | 
				
			
			@ -34,6 +34,7 @@
 | 
			
		|||
#define WIDTH   640
 | 
			
		||||
#define HEIGHT  480
 | 
			
		||||
#define BPP    3
 | 
			
		||||
#define MAX_BUFFERS	32
 | 
			
		||||
 | 
			
		||||
#include "sdl.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +69,7 @@ struct data {
 | 
			
		|||
	struct spa_video_info_raw format;
 | 
			
		||||
	int32_t stride;
 | 
			
		||||
 | 
			
		||||
	struct spa_buffer *buffers[32];
 | 
			
		||||
	struct spa_buffer *buffers[MAX_BUFFERS];
 | 
			
		||||
	int n_buffers;
 | 
			
		||||
 | 
			
		||||
	struct pw_proxy *out, *in, *link;
 | 
			
		||||
| 
						 | 
				
			
			@ -264,6 +265,9 @@ static int impl_port_use_buffers(void *object,
 | 
			
		|||
	struct data *d = object;
 | 
			
		||||
	uint32_t i;
 | 
			
		||||
 | 
			
		||||
	if (n_buffers > MAX_BUFFERS)
 | 
			
		||||
		return -ENOSPC;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < n_buffers; i++)
 | 
			
		||||
		d->buffers[i] = buffers[i];
 | 
			
		||||
	d->n_buffers = n_buffers;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue