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
Impossible to add more than 2 camera on Multi screen camera.
Configuration:
minipipeline-new_from_support.zip (32.1 KB)
Error String
camIdx: 2 Port Status - isBufferAvailable: 0
camIdx: 2 Port Status - isBound: 1
No Camera id 2, 3, 4 are displayed. the limit should be 9.
Only 2 thread are launched ? why not more ? Which setting/config do I miss ?
[tid:38][dwCameraNodeImpl.hpp:204] readNextData: last output null, read a new frame // Camera 0 ou 1
[tid:39][dwCameraNodeImpl.hpp:204] readNextData: last output null, read a new frame // Camera 0 ou 1
Code modification on VisualizationNodeImpl.cpp to investigate
dwStatus VisualizationNodeImpl::preProcessImage()
{
uint8_t startIdx = 0;
uint8_t endIdx = 0;
if (m_currentSensorScreen == static_cast<uint8_t>(SensorScreenSelect::SCREEN_SINGLE_CAMERA))
{
startIdx = m_params.masterCameraIndex;
endIdx = startIdx + 1;
DW_LOGD << "LucasCheckSetup0 Set for SCREEN_SINGLE_CAMERA): endIdx = " << endIdx << Logger::State::endl;
}
else if (m_currentSensorScreen == static_cast<uint8_t>(SensorScreenSelect::SCREEN_MULTI_CAMERA))
{
startIdx = 0;
endIdx = MAX_CAMERA_COUNT;
DW_LOGD << "LucasCheckSetup1 Set for SCREEN_MULTI_CAMERA): endIdx = " << endIdx << Logger::State::endl;
}
DW_LOGD << "LucasDebug MAX_CAMERA_COUNT:" << MAX_CAMERA_COUNT << Logger::State::endl;
for (uint8_t camIdx = startIdx; camIdx < endIdx; ++camIdx)
{
DW_LOGD << "camIdx: " << camIdx << "/" << endIdx << Logger::State::endl;
if (m_params.camEnable[camIdx])
{
DW_LOGD << "camIdx: " << camIdx << "" << "m_params.camEnable[camIdx] = " << m_params.camEnable[camIdx] << Logger::State::endl;
auto& port = NODE_GET_INPUT_ARRAY_PORT("IMAGE"_sv, camIdx);
DW_LOGD << "camIdx: " << camIdx << " Port Status - isBufferAvailable: " << port.isBufferAvailable() << Logger::State::endl;
DW_LOGD << "camIdx: " << camIdx << " Port Status - isBound: " << port.isBound() << Logger::State::endl;
if (NODE_GET_INPUT_ARRAY_PORT("IMAGE"_sv, camIdx).isBufferAvailable())
{
DW_LOGD << "camIdx: " << camIdx << " Buffer is Available" << Logger::State::endl;
// Copy convert RGBFP16 image to RGBA image
dwImage_copyConvertAsync(m_cudaRgbaRenderImage[camIdx], *NODE_GET_INPUT_ARRAY_PORT("IMAGE"_sv, camIdx).getBuffer(), m_params.stream, m_ctx);
dwStatus status = dwImageStreamerGL_producerSend(m_cudaRgbaRenderImage[camIdx], m_image2GL[camIdx]);
if (status != DW_SUCCESS)
{
if (status != DW_BUSY_WAITING)
{
DW_LOGE << "dwImageStreamerGL_producerSend failed " << status << Logger::State::endl;
return status;
}
else
{
DW_LOGW << "dwImageStreamerGL_producerSend busy" << Logger::State::endl;
}
}
}
}
}
Logs
Complete log:
LogFolder:
launcher.log (22.8 KB)
mainClient_0.log (15.6 MB)
schedule_manager_0.log (1.5 MB)
ssm.log (58.2 KB)
stm_master.log (5.7 KB)
Could someone help ?
Thanks in advance,
Lucas Lattion
