mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	videoconvert: move get_format around
This commit is contained in:
		
							parent
							
								
									6373827a40
								
							
						
					
					
						commit
						aedbe51043
					
				
					 1 changed files with 39 additions and 39 deletions
				
			
		| 
						 | 
					@ -393,6 +393,45 @@ static enum AVPixelFormat format_to_pix_fmt(uint32_t format)
 | 
				
			||||||
	return AV_PIX_FMT_NONE;
 | 
						return AV_PIX_FMT_NONE;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int get_format(struct dir *dir, uint32_t *format, struct spa_rectangle *size,
 | 
				
			||||||
 | 
							struct spa_fraction *framerate)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (dir->have_format) {
 | 
				
			||||||
 | 
							switch (dir->format.media_subtype) {
 | 
				
			||||||
 | 
							case SPA_MEDIA_SUBTYPE_dsp:
 | 
				
			||||||
 | 
								*format = dir->format.info.dsp.format;
 | 
				
			||||||
 | 
								*size = SPA_RECTANGLE(640, 480);
 | 
				
			||||||
 | 
								*framerate = SPA_FRACTION(30, 1);
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case SPA_MEDIA_SUBTYPE_raw:
 | 
				
			||||||
 | 
								*format = dir->format.info.raw.format;
 | 
				
			||||||
 | 
								*size = dir->format.info.raw.size;
 | 
				
			||||||
 | 
								*framerate = dir->format.info.raw.framerate;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case SPA_MEDIA_SUBTYPE_mjpg:
 | 
				
			||||||
 | 
								*format = SPA_VIDEO_FORMAT_I420;
 | 
				
			||||||
 | 
								*size = dir->format.info.mjpg.size;
 | 
				
			||||||
 | 
								*framerate = dir->format.info.mjpg.framerate;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							case SPA_MEDIA_SUBTYPE_h264:
 | 
				
			||||||
 | 
								*format = SPA_VIDEO_FORMAT_I420;
 | 
				
			||||||
 | 
								*size = dir->format.info.h264.size;
 | 
				
			||||||
 | 
								*framerate = dir->format.info.h264.framerate;
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							default:
 | 
				
			||||||
 | 
								*format = SPA_VIDEO_FORMAT_I420;
 | 
				
			||||||
 | 
								*size = SPA_RECTANGLE(640, 480);
 | 
				
			||||||
 | 
								*framerate = SPA_FRACTION(30, 1);
 | 
				
			||||||
 | 
								break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							*format = SPA_VIDEO_FORMAT_I420;
 | 
				
			||||||
 | 
							*size = SPA_RECTANGLE(640, 480);
 | 
				
			||||||
 | 
							*framerate = SPA_FRACTION(30, 1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int init_port(struct impl *this, enum spa_direction direction, uint32_t port_id,
 | 
					static int init_port(struct impl *this, enum spa_direction direction, uint32_t port_id,
 | 
				
			||||||
		bool is_dsp, bool is_monitor, bool is_control)
 | 
							bool is_dsp, bool is_monitor, bool is_control)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -792,45 +831,6 @@ static int impl_node_set_param(void *object, uint32_t id, uint32_t flags,
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int get_format(struct dir *dir, uint32_t *format, struct spa_rectangle *size,
 | 
					 | 
				
			||||||
		struct spa_fraction *framerate)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	if (dir->have_format) {
 | 
					 | 
				
			||||||
		switch (dir->format.media_subtype) {
 | 
					 | 
				
			||||||
		case SPA_MEDIA_SUBTYPE_dsp:
 | 
					 | 
				
			||||||
			*format = dir->format.info.dsp.format;
 | 
					 | 
				
			||||||
			*size = SPA_RECTANGLE(640, 480);
 | 
					 | 
				
			||||||
			*framerate = SPA_FRACTION(30, 1);
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		case SPA_MEDIA_SUBTYPE_raw:
 | 
					 | 
				
			||||||
			*format = dir->format.info.raw.format;
 | 
					 | 
				
			||||||
			*size = dir->format.info.raw.size;
 | 
					 | 
				
			||||||
			*framerate = dir->format.info.raw.framerate;
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		case SPA_MEDIA_SUBTYPE_mjpg:
 | 
					 | 
				
			||||||
			*format = SPA_VIDEO_FORMAT_I420;
 | 
					 | 
				
			||||||
			*size = dir->format.info.mjpg.size;
 | 
					 | 
				
			||||||
			*framerate = dir->format.info.mjpg.framerate;
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		case SPA_MEDIA_SUBTYPE_h264:
 | 
					 | 
				
			||||||
			*format = SPA_VIDEO_FORMAT_I420;
 | 
					 | 
				
			||||||
			*size = dir->format.info.h264.size;
 | 
					 | 
				
			||||||
			*framerate = dir->format.info.h264.framerate;
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		default:
 | 
					 | 
				
			||||||
			*format = SPA_VIDEO_FORMAT_I420;
 | 
					 | 
				
			||||||
			*size = SPA_RECTANGLE(640, 480);
 | 
					 | 
				
			||||||
			*framerate = SPA_FRACTION(30, 1);
 | 
					 | 
				
			||||||
			break;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		*format = SPA_VIDEO_FORMAT_I420;
 | 
					 | 
				
			||||||
		*size = SPA_RECTANGLE(640, 480);
 | 
					 | 
				
			||||||
		*framerate = SPA_FRACTION(30, 1);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static inline void free_decoder(struct impl *this)
 | 
					static inline void free_decoder(struct impl *this)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	avcodec_free_context(&this->decoder.context);
 | 
						avcodec_free_context(&this->decoder.context);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue