can i use YUV422 camera output format ?

can i use YUV422 camera output format ?

tegra210-camera-e3326-a00.dtsi
* pixel_t = “”;
* The sensor readout pixel pattern
* For eg - 10 bit bayer having ‘bggr’ pixel pattern has value “bayer_bggr”
* 12 bit bayer having ‘bggr’ pixel pattern has value “bayer_bggr12”
* 14 bit bayer having ‘bggr’ pixel pattern has value “bayer_bggr14”
*

do you support only bayer format?

Yes, and the pixel_t are list as below.
“uyvy, vyuy, yuyv, yvyu”

can you give me all list of pixel_t?
so where is refer pixel_t?
cannot find in kernel source.

NV_CHECK_ERROR_CLEANUP(OFDCopyModePropString(pHwTable, modeIndex,
                                    "pixel_t", temp_str));
    if (strncmp(temp_str, "uyvy", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_UYVY;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType =NvPclSensorModeType_Yuv;
    }
    else if (strncmp(temp_str, "vyuy", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_VYUY;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType =NvPclSensorModeType_Yuv;
    }
    else if (strncmp(temp_str, "yuyv", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_YUYV;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType =NvPclSensorModeType_Yuv;
    }
    else if (strncmp(temp_str, "yvyu", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_YVYU;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType =NvPclSensorModeType_Yuv;
    }
    else if (strncmp(temp_str, "bayer_rggb", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerRGGB;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_bggr", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerBGGR;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
   }
    else if (strncmp(temp_str, "bayer_grbg", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGRBG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_gbrg", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGBRG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_rggb8", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerRGGB;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_bggr8", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerBGGR;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_grbg8", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGRBG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_gbrg8", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGBRG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 8;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_rggb12", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerRGGB;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_bggr12", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerBGGR;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_grbg12", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGRBG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_gbrg12", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGBRG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 12;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_rggb14", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerRGGB;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_bggr14", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerBGGR;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_grbg14", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGRBG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "bayer_gbrg14", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGBRG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 14;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType =NvPclSensorModeType_Bayer;
    }
    else if (strncmp(temp_str, "rgb888", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_RGB888;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Rgb ;
    }
    else if (strncmp(temp_str, "a8b8g8r8", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_A8B8G8R8;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Rgb;

    }
    else if (strncmp(temp_str, "hdr_rggb", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerRGGB;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer_Wdr_Interleave;
    }
    else if (strncmp(temp_str, "hdr_bggr", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerBGGR;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer_Wdr_Interleave;
    }
    else if (strncmp(temp_str, "hdr_grbg", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGRBG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer_Wdr_Interleave;
    }
    else if (strncmp(temp_str, "hdr_gbrg", sizeof(temp_str)) == 0)
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_BayerGBRG;
        pSensorMode->PixelInfo.ModeInfo.DynamicPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.CSIPixelBitDepth = 10;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Bayer_Wdr_Interleave;
    }
    else
    {
        pSensorMode->PixelInfo.PixelType = NvPclSensorPixelType_Unspecified;
        pSensorMode->PixelInfo.ModeInfo.SensorModeType = NvPclSensorModeType_Unspecified;
    }

    if (strstr(temp_str, "hdr_") != 0)
    {
        pSensorMode->PixelInfo.ModeInfo.ModeType = NvOdmImagerModeType_Aohdr;
    }

where is refer pixel_t?
is file open?
or library?

Here is some of the formats that should be supported:

https://devtalk.nvidia.com/default/topic/971291/developing-own-mipi-csi-2-driver/?offset=6#4996559

It’s library.

have you tested nvcamera-daemon input yuv422 format on jetson tx reference board?

i try pixel_t = “uyvy” and other … but not work nvgstcapture.

i want to get a document for nvcamera-daemon or other information.

Yes, the input format YUV422 have verify on TX1.
Did you reference to the document to know how to bring up a sensor?

http://developer.nvidia.com/embedded/dlc/l4t-jetson-tx1-driver-package-24-2

thank you.

It found that V4L be developed using.

Hi walterkim

Does the YUV422 format output sensor work well?

I have the same problem, and how to configure the "common_data->colorfmt = camera_common_find_datafmt(V4L2_MBUS_FMT_SRGGB10_1X10)"in the probe function.

thanks !!

You can move to below topic for your reference.

https://devtalk.nvidia.com/default/topic/976709