Starting Cameras Individually in the same Device Block

Please provide the following info (tick the boxes after creating this topic):
Software Version
DRIVE OS 6.0.10.0
DRIVE OS 6.0.8.1
DRIVE OS 6.0.6
DRIVE OS 6.0.5
DRIVE OS 6.0.4 (rev. 1)
DRIVE OS 6.0.4 SDK
other

Target Operating System
Linux
QNX
other

Hardware Platform
DRIVE AGX Orin Developer Kit (940-63710-0010-300)
DRIVE AGX Orin Developer Kit (940-63710-0010-200)
DRIVE AGX Orin Developer Kit (940-63710-0010-100)
DRIVE AGX Orin Developer Kit (940-63710-0010-D00)
DRIVE AGX Orin Developer Kit (940-63710-0010-C00)
DRIVE AGX Orin Developer Kit (not sure its number)
other

SDK Manager Version
2.1.0
other

Host Machine Version
native Ubuntu Linux 20.04 Host installed with SDK Manager
native Ubuntu Linux 20.04 Host installed with DRIVE OS Docker Containers
native Ubuntu Linux 18.04 Host installed with DRIVE OS Docker Containers
other

Issue Description
Is it possible to have some sort of finer grain control to start sets of cameras within the same device block individually? I have 1 INvSIPLCamera instance for each camera in each device block, and try to start 2 of the cameras, but it fails at the INvSIPLCamera->Init() step.

I understand that there are possible limitations in the deserializer being able to setup the link individually. For MAX9296 on another (non-drive) platform, 2 cameras are tied together so we could bring up / down 2 cameras and need not bring up / down 4 at the same time. What about MAX96712 and the implementation on NVIDIA Drive?

Also, I see that Cannot start two sample_camera programs at the same time mentions that there can only be 1 owner of the device block. I am running everything in an application, so this should not be an issue for me.

Thanks in advance!
Sam

Did you call INvSIPLCamera->Init() twice?

Mean you want to start/stop the cameras individually(or group of 2) that are part of same device block?

Yeap, I set-up each camera as 1x INvSIPLCamera instance applying the mask for each camera. For example if we are on Group A, with the camera-id [0, 1, 2, 3], I have the mask as {1, 0, 0, 0} for camera 0, and mask {4096, 0, 0, 0} for camera 3.

Here’s the pseudo code. Both cameras are the same, so we are using the same platform config. The second call to INvSIPLCamera->Init() fails with NVSIPL_STATUS_ERROR.

// I'm testing only with 2 camera_ids now.
for (each camera_id) {
  auto sipl_query = INvSIPLQuery::GetInstance();
  sipl_query->ParseDatabase());
  sipl_query->GetPlatformCfg(platform_name, platform_cfg);
  sipl_query->ApplyMask(platform_cfg, masks);
  auto sipl_camera = INvSIPLCamera::GetInstance();
  sipl_camera->SetPlatformCfg(&platform_cfg, notification_queues[camera_id]);
  sipl_camera->SetPipelineCfg(camera_id, pipeline_cfg, queues[camera_id]);
  sipl_cameras.emplace_back(std::move(sipl_camera));
}

for (auto& camera : sipl_cameras) {
  camera->Init();
}

Yeap, the best case for us is start/stop of individual cameras in the same device block, but we could also do with group of 2 if that is the deserializer limitation.

Dear @samuel.ongzx

It is not possible. You need to have
one process → one SIPL client → one INvSIPLCamera instance → device block(s) → deserializer(s). So init() can’t be done twice.

1 Like

Thanks for the prompt clarification @SivaRamaKrishnaNV! We will plan our camera setup accordingly.

Hey @SivaRamaKrishnaNV, on a separate platform with MAX96712, we are able to start / stop cameras individually. For Orin / Thor, it is not possible to do so, is that due to the limitation of the NvSIPL API?

Is it tested with https://developer.nvidia.com/docs/drive/drive-os/6.0.10/public/drive-os-linux-sdk/common/topics/nvmedia_sample_apps/InteractiveMenuOptions36.html ? Could you share camera modules, commands and logs?

Using DisableLink() and enableLink() you can disable and enable camera link in runtime.
I don’t see any issue with the camera module I have. I could use dl, el, elr options in nvsipl_camera with out any issue. The issue could be specific to these camera modules. Did you check with sensor vendor on the supported DRIVE OS version and also inform about these issues.
Please file a new topic for new issues as the original query is addressed.

1 Like

Hi @SivaRamaKrishnaNV, thanks for the response and clarification. Let us check with the vendor and I will file a new topic once we have more information!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.