Supported output formats for Xavier ISP Port 2

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.1.6

Target Operating System
Linux

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)

SDK Manager Version
1.4.1.7402

Host Machine Version
native Ubuntu 18.04

We are trying to utilize both outputs of the ISP for on the Drive AGX: one for YUV and one for RGB. We need both to have the same exposure correction settings, i.e. NVMEDIA_IPP_ISP_OUTPUT2_MODE_5. However, we are running into the following error:

[CheckSupportedIspOutput2Format:215] isp output1 and output2 format combination is not valid for mode 5
[IppIspComponentCreateNew:1126] CheckSupportedIspOutputFormat failed for ISP secondary output
[NvMediaIPPComponentCreateNew:818] Failed to create NVMEDIA_IPP_COMPONENT_ISP component

It is clear that the formats we are are using are not able to be used together, but my question is which formats are compatible? This doesn’t seem to be documented anywhere. Different types of YUV seem to work, but some kind of table for supported combinations would be very helpful to see if there is any overlap that can make RGB and YUV work together. Yes, I understand that IPP has been deprecated in favor of SIPL, but we’re locked into IPP/Drive OS 5.1.6 so transitioning to SIPL isn’t an option.

Dear @atyshka,
We will check internally and update you. Is there any code snippet/command you can provide to reproduce the issue?

@SivaRamaKrishnaNV This is adapted from the IPP raw example code with some modifications:

This is how we’re trying to set the ISP formats:

NVM_SURF_FMT_DEFINE_ATTR(surfFormatAttrs1);
NVM_SURF_FMT_SET_ATTR_YUV(surfFormatAttrs1,YUV,420,SEMI_PLANAR,UINT,8,BL);
NVM_SURF_FMT_DEFINE_ATTR(surfFormatAttrs2);
NVM_SURF_FMT_SET_ATTR_RGBA(surfFormatAttrs2,RGBA,UINT,8,PL);
testArgs.ispOutType = NvMediaSurfaceFormatGetType(surfFormatAttrs1, NVM_SURF_FMT_ATTR_MAX);
testArgs.ispOut2Type = NvMediaSurfaceFormatGetType(surfFormatAttrs2, NVM_SURF_FMT_ATTR_MAX);
testArgs.ispOutColorStd = NVM_SURF_ATTR_COLOR_STD_REC709_ER;
testArgs.ispOut2ColorStd = NVM_SURF_ATTR_COLOR_STD_SRGB;
testArgs.ispOut2Mode = NVMEDIA_IPP_ISP_OUTPUT2_MODE_5;

This code fails with NVMEDIA_IPP_ISP_OUTPUT2_MODE_5, and it runs with NVMEDIA_IPP_ISP_OUTPUT2_MODE_4 but then the image is very dark because mode 4 is before tone mapping is applied

It’s because mode 5 requires ispOutColorStd and ispOut2ColorStd have the same color type.

curious where you saw the information about the difference between NVMEDIA_IPP_ISP_OUTPUT2_MODE_4 and NVMEDIA_IPP_ISP_OUTPUT2_MODE_5.