mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	videoconvert: use a table for format conversion
Use a table with format conversion values so that we can also use flags for the formats.
This commit is contained in:
		
							parent
							
								
									86dd937857
								
							
						
					
					
						commit
						6373827a40
					
				
					 1 changed files with 126 additions and 166 deletions
				
			
		| 
						 | 
				
			
			@ -267,6 +267,132 @@ static void emit_info(struct impl *this, bool full)
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct format_info {
 | 
			
		||||
	enum AVPixelFormat pix_fmt;
 | 
			
		||||
	uint32_t format;
 | 
			
		||||
#define FORMAT_DSP	(1<<0)
 | 
			
		||||
#define FORMAT_COMMON	(1<<1)
 | 
			
		||||
	uint32_t flags;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct format_info format_info[] =
 | 
			
		||||
{
 | 
			
		||||
#if defined AV_PIX_FMT_AYUV
 | 
			
		||||
	{ AV_PIX_FMT_AYUV,  SPA_VIDEO_FORMAT_AYUV, FORMAT_DSP | FORMAT_COMMON },
 | 
			
		||||
#else
 | 
			
		||||
	{ AV_PIX_FMT_YUV444P, SPA_VIDEO_FORMAT_Y444, FORMAT_DSP | FORMAT_COMMON },
 | 
			
		||||
#endif
 | 
			
		||||
	{ AV_PIX_FMT_RGBA,  SPA_VIDEO_FORMAT_RGBA, FORMAT_DSP | FORMAT_COMMON },
 | 
			
		||||
 | 
			
		||||
	{ AV_PIX_FMT_YUYV422, SPA_VIDEO_FORMAT_YUY2, FORMAT_COMMON },
 | 
			
		||||
	{ AV_PIX_FMT_UYVY422, SPA_VIDEO_FORMAT_UYVY, FORMAT_COMMON },
 | 
			
		||||
	{ AV_PIX_FMT_YVYU422, SPA_VIDEO_FORMAT_YVYU, FORMAT_COMMON },
 | 
			
		||||
	{ AV_PIX_FMT_YUV420P, SPA_VIDEO_FORMAT_I420, FORMAT_COMMON },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_BGR0,  SPA_VIDEO_FORMAT_BGRx },
 | 
			
		||||
	//{ AV_PIX_FMT_BGRA,  SPA_VIDEO_FORMAT_BGRA },
 | 
			
		||||
	//{ AV_PIX_FMT_ARGB,  SPA_VIDEO_FORMAT_ARGB },
 | 
			
		||||
	//{ AV_PIX_FMT_ABGR,  SPA_VIDEO_FORMAT_ABGR },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,  SPA_VIDEO_FORMAT_YV12 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_RGB0,  SPA_VIDEO_FORMAT_RGBx },
 | 
			
		||||
	//{ AV_PIX_FMT_0RGB,  SPA_VIDEO_FORMAT_xRGB },
 | 
			
		||||
	//{ AV_PIX_FMT_0BGR,  SPA_VIDEO_FORMAT_xBGR },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_RGB24,   SPA_VIDEO_FORMAT_RGB },
 | 
			
		||||
	//{ AV_PIX_FMT_BGR24,   SPA_VIDEO_FORMAT_BGR },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV411P, SPA_VIDEO_FORMAT_Y41B },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV422P, SPA_VIDEO_FORMAT_Y42B },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,  SPA_VIDEO_FORMAT_v210 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,  SPA_VIDEO_FORMAT_v216 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NV12,    SPA_VIDEO_FORMAT_NV12 },
 | 
			
		||||
	//{ AV_PIX_FMT_NV21,    SPA_VIDEO_FORMAT_NV21 },
 | 
			
		||||
	//{ AV_PIX_FMT_GRAY8,    SPA_VIDEO_FORMAT_GRAY8 },
 | 
			
		||||
	//{ AV_PIX_FMT_GRAY16BE, SPA_VIDEO_FORMAT_GRAY16_BE },
 | 
			
		||||
	//{ AV_PIX_FMT_GRAY16LE, SPA_VIDEO_FORMAT_GRAY16_LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,     SPA_VIDEO_FORMAT_v308 },
 | 
			
		||||
	//{ AV_PIX_FMT_RGB565,   SPA_VIDEO_FORMAT_RGB16 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,     SPA_VIDEO_FORMAT_BGR16 },
 | 
			
		||||
	//{ AV_PIX_FMT_RGB555,   SPA_VIDEO_FORMAT_RGB15 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,     SPA_VIDEO_FORMAT_BGR15 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE,     SPA_VIDEO_FORMAT_UYVP },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA420P, SPA_VIDEO_FORMAT_A420 },
 | 
			
		||||
	//{ AV_PIX_FMT_PAL8,     SPA_VIDEO_FORMAT_RGB8P },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV410P,  SPA_VIDEO_FORMAT_YUV9 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_YVU9 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_IYU1 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_ARGB64 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_AYUV64 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_r210 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_YUV420P10BE, SPA_VIDEO_FORMAT_I420_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV420P10LE, SPA_VIDEO_FORMAT_I420_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV422P10BE, SPA_VIDEO_FORMAT_I422_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV422P10LE, SPA_VIDEO_FORMAT_I422_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV444P10BE, SPA_VIDEO_FORMAT_Y444_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV444P10LE, SPA_VIDEO_FORMAT_Y444_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRP,        SPA_VIDEO_FORMAT_GBR },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRP10BE,    SPA_VIDEO_FORMAT_GBR_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRP10LE,    SPA_VIDEO_FORMAT_GBR_10LE },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_NV16 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_NV24 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_NV12_64Z32 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA420P10BE, SPA_VIDEO_FORMAT_A420_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA420P10LE, SPA_VIDEO_FORMAT_A420_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA422P10BE, SPA_VIDEO_FORMAT_A422_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA422P10LE, SPA_VIDEO_FORMAT_A422_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA444P10BE, SPA_VIDEO_FORMAT_A444_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUVA444P10LE, SPA_VIDEO_FORMAT_A444_10LE },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_NV61 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_P010_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_P010_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_IYU2 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_VYUY },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_GBRAP, SPA_VIDEO_FORMAT_GBRA },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRAP10BE, SPA_VIDEO_FORMAT_GBRA_10BE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRAP10LE, SPA_VIDEO_FORMAT_GBRA_10LE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRP12BE, SPA_VIDEO_FORMAT_GBR_12BE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRP12LE, SPA_VIDEO_FORMAT_GBR_12LE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRAP12BE, SPA_VIDEO_FORMAT_GBRA_12BE },
 | 
			
		||||
	//{ AV_PIX_FMT_GBRAP12LE, SPA_VIDEO_FORMAT_GBRA_12LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV420P12BE, SPA_VIDEO_FORMAT_I420_12BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV420P12LE, SPA_VIDEO_FORMAT_I420_12LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV422P12BE, SPA_VIDEO_FORMAT_I422_12BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV422P12LE, SPA_VIDEO_FORMAT_I422_12LE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV444P12BE, SPA_VIDEO_FORMAT_Y444_12BE },
 | 
			
		||||
	//{ AV_PIX_FMT_YUV444P12LE, SPA_VIDEO_FORMAT_Y444_12LE },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_RGBA_F16 },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_RGBA_F32 },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_X2RGB10LE, SPA_VIDEO_FORMAT_xRGB_210LE },
 | 
			
		||||
	//{ AV_PIX_FMT_X2BGR10LE, SPA_VIDEO_FORMAT_xBGR_210LE },
 | 
			
		||||
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_RGBx_102LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_BGRx_102LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_ARGB_210LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_ABGR_210LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_RGBA_102LE },
 | 
			
		||||
	//{ AV_PIX_FMT_NONE, SPA_VIDEO_FORMAT_BGRA_102LE },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static enum AVPixelFormat format_to_pix_fmt(uint32_t format)
 | 
			
		||||
{
 | 
			
		||||
	SPA_FOR_EACH_ELEMENT_VAR(format_info, i) {
 | 
			
		||||
		if (i->format == format)
 | 
			
		||||
			return i->pix_fmt;
 | 
			
		||||
	}
 | 
			
		||||
	return AV_PIX_FMT_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int init_port(struct impl *this, enum spa_direction direction, uint32_t port_id,
 | 
			
		||||
		bool is_dsp, bool is_monitor, bool is_control)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -666,172 +792,6 @@ static int impl_node_set_param(void *object, uint32_t id, uint32_t flags,
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static enum AVPixelFormat format_to_pix_fmt(uint32_t format)
 | 
			
		||||
{
 | 
			
		||||
	switch (format) {
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I420:
 | 
			
		||||
		return AV_PIX_FMT_YUV420P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_YV12:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_YUY2:
 | 
			
		||||
		return AV_PIX_FMT_YUYV422;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_UYVY:
 | 
			
		||||
		return AV_PIX_FMT_UYVY422;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_AYUV:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBx:
 | 
			
		||||
		return AV_PIX_FMT_RGB0;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGRx:
 | 
			
		||||
		return AV_PIX_FMT_BGR0;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_xRGB:
 | 
			
		||||
		return AV_PIX_FMT_0RGB;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_xBGR:
 | 
			
		||||
		return AV_PIX_FMT_0BGR;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBA:
 | 
			
		||||
		return AV_PIX_FMT_RGBA;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGRA:
 | 
			
		||||
		return AV_PIX_FMT_BGRA;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_ARGB:
 | 
			
		||||
		return AV_PIX_FMT_ARGB;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_ABGR:
 | 
			
		||||
		return AV_PIX_FMT_ABGR;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGB:
 | 
			
		||||
		return AV_PIX_FMT_RGB24;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGR:
 | 
			
		||||
		return AV_PIX_FMT_BGR24;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y41B:
 | 
			
		||||
		return AV_PIX_FMT_YUV411P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y42B:
 | 
			
		||||
		return AV_PIX_FMT_YUV422P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_YVYU:
 | 
			
		||||
		return AV_PIX_FMT_YVYU422;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y444:
 | 
			
		||||
		return AV_PIX_FMT_YUV444P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_v210:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_v216:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV12:
 | 
			
		||||
		return AV_PIX_FMT_NV12;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV21:
 | 
			
		||||
		return AV_PIX_FMT_NV21;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GRAY8:
 | 
			
		||||
		return AV_PIX_FMT_GRAY8;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GRAY16_BE:
 | 
			
		||||
		return AV_PIX_FMT_GRAY16BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GRAY16_LE:
 | 
			
		||||
		return AV_PIX_FMT_GRAY16LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_v308:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGB16:
 | 
			
		||||
		return AV_PIX_FMT_RGB565;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGR16:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGB15:
 | 
			
		||||
		return AV_PIX_FMT_RGB555;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGR15:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_UYVP:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A420:
 | 
			
		||||
		return AV_PIX_FMT_YUVA420P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGB8P:
 | 
			
		||||
		return AV_PIX_FMT_PAL8;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_YUV9:
 | 
			
		||||
		return AV_PIX_FMT_YUV410P;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_YVU9:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_IYU1:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_ARGB64:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_AYUV64:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_r210:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I420_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV420P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I420_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV420P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I422_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV422P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I422_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV422P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y444_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV444P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y444_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV444P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBR:
 | 
			
		||||
		return AV_PIX_FMT_GBRP;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBR_10BE:
 | 
			
		||||
		return AV_PIX_FMT_GBRP10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBR_10LE:
 | 
			
		||||
		return AV_PIX_FMT_GBRP10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV16:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV24:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV12_64Z32:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A420_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA420P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A420_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA420P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A422_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA422P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A422_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA422P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A444_10BE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA444P10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_A444_10LE:
 | 
			
		||||
		return AV_PIX_FMT_YUVA444P10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_NV61:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_P010_10BE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_P010_10LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_IYU2:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_VYUY:
 | 
			
		||||
		break;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBRA:
 | 
			
		||||
		return AV_PIX_FMT_GBRAP;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBRA_10BE:
 | 
			
		||||
		return AV_PIX_FMT_GBRAP10BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBRA_10LE:
 | 
			
		||||
		return AV_PIX_FMT_GBRAP10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBR_12BE:
 | 
			
		||||
		return AV_PIX_FMT_GBRP12BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBR_12LE:
 | 
			
		||||
		return AV_PIX_FMT_GBRP12LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBRA_12BE:
 | 
			
		||||
		return AV_PIX_FMT_GBRAP12BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_GBRA_12LE:
 | 
			
		||||
		return AV_PIX_FMT_GBRAP12LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I420_12BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV420P12BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I420_12LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV420P12LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I422_12BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV422P12BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_I422_12LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV422P12LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y444_12BE:
 | 
			
		||||
		return AV_PIX_FMT_YUV444P12BE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_Y444_12LE:
 | 
			
		||||
		return AV_PIX_FMT_YUV444P12LE;
 | 
			
		||||
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBA_F16:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBA_F32:
 | 
			
		||||
		break;
 | 
			
		||||
 | 
			
		||||
	case SPA_VIDEO_FORMAT_xRGB_210LE:
 | 
			
		||||
		return AV_PIX_FMT_X2RGB10LE;
 | 
			
		||||
	case SPA_VIDEO_FORMAT_xBGR_210LE:
 | 
			
		||||
		return AV_PIX_FMT_X2BGR10LE;
 | 
			
		||||
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBx_102LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGRx_102LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_ARGB_210LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_ABGR_210LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_RGBA_102LE:
 | 
			
		||||
	case SPA_VIDEO_FORMAT_BGRA_102LE:
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
	return AV_PIX_FMT_NONE;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int get_format(struct dir *dir, uint32_t *format, struct spa_rectangle *size,
 | 
			
		||||
		struct spa_fraction *framerate)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue