Starting Cameras Individually in the 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.