Does libargus support YUV Omni Vision sensor?

Hi there,

We are developing a project using multiple cameras through USB interface.

In a short period of time, we will start using CSI-2 MIPI interface, with ov10650 sensor from Omni Vision. We would like to use LibArgus for synchronization and image tuning.We have both TX1 and TX2 to develop.

So, we need to know if this setting is a valid one. Does LibArgus support YUV cameras, through CSI-2 interface?

I think they are starting to put support in place, but it’s not yet there.

r28.2 Sensor Driver Programming Guide says that “yuv” is a valid option for mode_type. However there aren’t any available yuv formats in sensor_common.c

If you try to set up a sensor as YUV you’ll get an “Unsupported pixel format” error from camera_common.

These are the available formats in r28.2:

static int extract_pixel_format(
	const char *pixel_t, u32 *format)
{
	size_t size = strnlen(pixel_t, OF_MAX_STR_LEN);

	if (strncmp(pixel_t, "bayer_bggr10", size) == 0)
		*format = V4L2_PIX_FMT_SBGGR10;
	else if (strncmp(pixel_t, "bayer_rggb10", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB10;
	else if (strncmp(pixel_t, "bayer_bggr12", size) == 0)
		*format = V4L2_PIX_FMT_SBGGR12;
	else if (strncmp(pixel_t, "bayer_rggb12", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB12;
	else if (strncmp(pixel_t, "bayer_wdr_pwl_rggb12", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB12;
	else if (strncmp(pixel_t, "bayer_wdr_dol_rggb10", size) == 0)
		*format = V4L2_PIX_FMT_SRGGB10;
	else if (strncmp(pixel_t, "bayer_xbggr10p", size) == 0)
		*format = V4L2_PIX_FMT_XBGGR10P;
	else if (strncmp(pixel_t, "bayer_xrggb10p", size) == 0)
		*format = V4L2_PIX_FMT_XRGGB10P;
	else {
		pr_err("%s: Need to extend format%s\n", __func__, pixel_t);
		return -EINVAL;
	}

	return 0;
}

ShaneCCC has said that bayer8 will be in the next release, so maybe YUV will make it in too.

@ShaneCCC is there some roundabout way to use YUV sensors with the ISP? The device tree doesn’t have any examples of mode_type = “yuv” yet.

So sad to say the nvcamerascr/argus don’t support YUV sensor in current design. You can use v4l2src for the YUV sensor.

Will it come in the next release, or is it farther down the road?

I am sorry to tell don’t have this plan yet.

Ok, thanks @Atrer and @ShaneCCC for the quick response. We would be interested to know as soon as some plan arise. Maybe I could leave a follow up comment here in a while.