Hi,
The output of the sensor is RAW8 and I’m able to get the frames properly using v4l2src.
I want to use nvarguscamerasrc for capturing, but when i use nvarguscamerasrc i get only black frames.
nvarguscamerasrc work properly with RAW10/RAW12 , but with RAW8 i get only black frames.
1- Does nvarguscamerasrc or the ISP supports RAW8?
2- Am I missing some extra setting?
> devicetree:
> dynamic_pixel_bit_depth = "8";
> csi_pixel_bit_depth = "8";
> mode_type = "bayer";
> pixel_phase = "bggr";
>
> active_h = "480";
Format
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_grbg10", size) == 0)
*format = V4L2_PIX_FMT_SGRBG10;
else if (strncmp(pixel_t, "bayer_gbrg10", size) == 0)
*format = V4L2_PIX_FMT_SGBRG10;
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_bggr8", size) == 0)
*format = V4L2_PIX_FMT_SBGGR8;
else if (strncmp(pixel_t, "bayer_rggb8", size) == 0)
*format = V4L2_PIX_FMT_SRGGB8;
else if (strncmp(pixel_t, "bayer_grbg8", size) == 0)
*format = V4L2_PIX_FMT_SGRBG8;
else if (strncmp(pixel_t, "bayer_gbrg8", size) == 0)
*format = V4L2_PIX_FMT_SGBRG8;
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 if (strncmp(pixel_t, "yuv_yuyv16", size) == 0)
*format = V4L2_PIX_FMT_YUYV;
else if (strncmp(pixel_t, "yuv_yvyu16", size) == 0)
*format = V4L2_PIX_FMT_YVYU;
else if (strncmp(pixel_t, "yuv_uyvy16", size) == 0)
*format = V4L2_PIX_FMT_UYVY;
else if (strncmp(pixel_t, "yuv_vyuy16", size) == 0)
*format = V4L2_PIX_FMT_VYUY;
else {
pr_err("%s: Need to extend format%s\n", __func__, pixel_t);
return -EINVAL;
}
return 0;
}
Best regards,
Bouz Al Asal