mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	jack: add jack_get_video_image_size extension
Add a JACK PipeWire extension to get the video size of the DSP pipeline and use this instead of the hardcoded values in the example.
This commit is contained in:
		
							parent
							
								
									14fbd4f520
								
							
						
					
					
						commit
						ed1cf46c31
					
				
					 4 changed files with 94 additions and 18 deletions
				
			
		| 
						 | 
				
			
			@ -46,6 +46,7 @@
 | 
			
		|||
 | 
			
		||||
#include "extensions/client-node.h"
 | 
			
		||||
#include "extensions/metadata.h"
 | 
			
		||||
#include "pipewire-jack-extensions.h"
 | 
			
		||||
 | 
			
		||||
#define JACK_DEFAULT_VIDEO_TYPE	"32 bit float RGBA video"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -4342,6 +4343,34 @@ uint32_t jack_midi_get_lost_event_count(void *port_buffer)
 | 
			
		|||
	return mb->lost_events;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** extensions */
 | 
			
		||||
 | 
			
		||||
SPA_EXPORT
 | 
			
		||||
int jack_get_video_image_size(jack_client_t *client, jack_image_size_t *size)
 | 
			
		||||
{
 | 
			
		||||
	struct client *c = (struct client *) client;
 | 
			
		||||
	struct pw_node_activation *a = c->driver_activation;
 | 
			
		||||
 | 
			
		||||
	printf("1\n");
 | 
			
		||||
	if (a == NULL)
 | 
			
		||||
		a = c->activation;
 | 
			
		||||
	if (a == NULL)
 | 
			
		||||
		return -EIO;
 | 
			
		||||
 | 
			
		||||
	printf("2\n");
 | 
			
		||||
	if (!(a->position.video.flags & SPA_IO_VIDEO_SIZE_VALID))
 | 
			
		||||
		return -EIO;
 | 
			
		||||
 | 
			
		||||
	printf("3\n");
 | 
			
		||||
	size->width = a->position.video.size.width;
 | 
			
		||||
	size->height = a->position.video.size.height;
 | 
			
		||||
	size->stride = a->position.video.stride;
 | 
			
		||||
	size->flags = 0;
 | 
			
		||||
	printf("%d %d %d %d\n", size->width, size->height, size->stride, size->flags);
 | 
			
		||||
	return size->stride * size->height;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static void reg(void) __attribute__ ((constructor));
 | 
			
		||||
static void reg(void)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue