NVIDIA DRIVE OS Linux SDK API Reference

5.2.0 Release
For Test and Development only
NvSIPLDeviceBlockInfo.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 
11 #ifndef NVSIPLDEVICEBLOCKINFO_HPP
12 #define NVSIPLDEVICEBLOCKINFO_HPP
13 
14 #include "devblk_cdi.h"
15 #include "nvmedia_icp.h"
16 
17 #include <string>
18 #include <memory>
19 
27 namespace nvsipl
28 {
41 static const std::uint32_t MAX_DEVICEBLOCKS_PER_PLATFORM = 4U;
42 
44 static const std::uint32_t MAX_CAMERAMODULES_PER_BLOCK = 4U;
45 
48 
51 
53 struct SensorInfo
54 {
56  struct Resolution
57  {
58  std::uint32_t width = 0U;
61  std::uint32_t height = 0U;
64  };
65 
68  {
75  std::uint32_t cfa = 0U;
77  std::uint32_t embeddedTopLines = UINT32_MAX;
79  std::uint32_t embeddedBottomLines = UINT32_MAX;
86  float fps = 0;
89  };
90 
92  std::uint32_t id = UINT32_MAX;
94  std::string name = "";
95 #if !NV_IS_SAFETY
96 
97  std::string description = "";
98 #endif
99 
100  std::uint8_t i2cAddress = UINT8_MAX;
105  bool isTriggerModeEnabled = false;
106 #if !NV_IS_SAFETY
107 
110  bool isTPGEnabled = false;
112  std::uint32_t patternMode = 0;
113 #endif
114 };
115 
118 {
120  std::string name = "";
121 #if !NV_IS_SAFETY
122 
123  std::string description = "";
124 #endif
125 
126  std::uint8_t i2cAddress = UINT8_MAX;
127 };
128 
130 struct SerInfo
131 {
133  std::string name = "";
134 #if !NV_IS_SAFETY
135 
136  std::string description = "";
137 #endif
138 
139  std::uint8_t i2cAddress = UINT8_MAX;
140 #if !NV_IS_SAFETY
141 
142  bool longCable = false;
143 #endif
144 };
145 
151 {
153  std::string name = "";
154 #if !NV_IS_SAFETY
155 
156  std::string description = "";
157 #endif
158 
160  std::uint32_t linkIndex = UINT32_MAX;
164  bool isEEPROMSupported = false;
170 };
171 
173 struct DeserInfo
174 {
176  std::string name = "";
177 #if !NV_IS_SAFETY
178 
179  std::string description = "";
180 #endif
181 
182  std::uint8_t i2cAddress = UINT8_MAX;
183 };
184 
192 {
200  std::uint32_t i2cDevice = UINT32_MAX;
206  std::uint32_t numCameraModules = 0;
210 #if !NV_IS_SAFETY
211 
218  bool isSlaveModeEnabled = false;
220  bool isGroupInitProg = false;
223  bool isPwrCtrlDisabled = false;
225  bool longCables[MAX_CAMERAMODULES_PER_BLOCK] = {false, false, false, false};
226 #endif
227 };
228 
231 } // namespace nvsipl
232 
233 #endif //NVSIPLDEVICEBLOCKINFO_HPP
234 
NvMediaICPInterfaceType
NvMediaICPInterfaceType
Specifies the image capture interface type for the CSI interface.
Definition: nvmedia_icp.h:127
nvsipl::SensorInfo::patternMode
std::uint32_t patternMode
Holds the Test Pattern Generator (TPG) pattern mode.
Definition: NvSIPLDeviceBlockInfo.hpp:112
nvsipl::DeserInfo::name
std::string name
Holds the name of the deserializer, for example, "MAX96712".
Definition: NvSIPLDeviceBlockInfo.hpp:176
NVMEDIA_ICP_CSI_DPHY_MODE
@ NVMEDIA_ICP_CSI_DPHY_MODE
Specifies that CSI is in DPHY mode.
Definition: nvmedia_icp.h:247
nvsipl::SensorInfo::vcInfo
VirtualChannelInfo vcInfo
Holds virtual channel information.
Definition: NvSIPLDeviceBlockInfo.hpp:102
nvsipl::SensorInfo::Resolution::width
std::uint32_t width
Holds the width in pixels in the range from NVMEDIA_ICP_MIN_IMAGE_WIDTH to NVMEDIA_ICP_MAX_IMAGE_WIDT...
Definition: NvSIPLDeviceBlockInfo.hpp:58
nvmedia_icp.h
NVIDIA Media Interface: Image Capture Processing
nvsipl::DeviceBlockInfo::deserInfo
DeserInfo deserInfo
Holds the DeserInfo deserializer information.
Definition: NvSIPLDeviceBlockInfo.hpp:202
nvsipl::DeviceBlockInfo::phyMode
NvMediaICPCsiPhyMode phyMode
Holds the NvMediaICPCsiPhyMode Phy mode.
Definition: NvSIPLDeviceBlockInfo.hpp:197
nvsipl::DeviceBlockInfo::isPwrCtrlDisabled
bool isPwrCtrlDisabled
Holds a flag which indicates whether power control is disabled on the platform.
Definition: NvSIPLDeviceBlockInfo.hpp:223
nvsipl::SensorInfo::name
std::string name
Holds the name of the image sensor, for example, "AR0231".
Definition: NvSIPLDeviceBlockInfo.hpp:94
nvsipl::SensorInfo::Resolution::height
std::uint32_t height
Holds the height in pixels in the range from NVMEDIA_ICP_MIN_IMAGE_HEIGHT to NVMEDIA_ICP_MAX_IMAGE_HE...
Definition: NvSIPLDeviceBlockInfo.hpp:61
nvsipl::DeserInfo::description
std::string description
Holds the description of the deserializer.
Definition: NvSIPLDeviceBlockInfo.hpp:179
nvsipl::DeviceBlockInfo::csiPort
NvMediaICPInterfaceType csiPort
Holds the NvMediaICPInterfaceType that specifies the CSI port of the SoC to which the deserializer is...
Definition: NvSIPLDeviceBlockInfo.hpp:195
nvsipl::SensorInfo::VirtualChannelInfo::embeddedBottomLines
std::uint32_t embeddedBottomLines
Holds the number of bottom embedded lines.
Definition: NvSIPLDeviceBlockInfo.hpp:79
nvsipl::EEPROMInfo
Defines the EEPROM information.
Definition: NvSIPLDeviceBlockInfo.hpp:117
nvsipl::CameraModuleInfo::sensorInfo
SensorInfo sensorInfo
Holds the information about the sensor in a camera module.
Definition: NvSIPLDeviceBlockInfo.hpp:169
nvsipl::SensorInfo::description
std::string description
Holds the description of the image sensor.
Definition: NvSIPLDeviceBlockInfo.hpp:97
nvsipl::SensorInfo::VirtualChannelInfo::inputFormat
NvMediaICPInputFormatType inputFormat
Holds the input format.
Definition: NvSIPLDeviceBlockInfo.hpp:81
nvsipl::MAX_DEVICEBLOCKS_PER_PLATFORM
static const std::uint32_t MAX_DEVICEBLOCKS_PER_PLATFORM
Indicates the maximum number of device blocks per platform.
Definition: NvSIPLDeviceBlockInfo.hpp:41
nvsipl::SensorInfo::isTriggerModeEnabled
bool isTriggerModeEnabled
Holds a flag which indicates whether trigger mode is enabled.
Definition: NvSIPLDeviceBlockInfo.hpp:105
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A
Specifies CSI port A.
Definition: nvmedia_icp.h:129
nvsipl::SerInfo::i2cAddress
std::uint8_t i2cAddress
Holds the native I2C address.
Definition: NvSIPLDeviceBlockInfo.hpp:139
nvsipl::CameraModuleInfo
Defines information for the camera module.
Definition: NvSIPLDeviceBlockInfo.hpp:150
nvsipl::EEPROMInfo::i2cAddress
std::uint8_t i2cAddress
Holds the native I2C address.
Definition: NvSIPLDeviceBlockInfo.hpp:126
nvsipl::DeviceBlockInfo::isSlaveModeEnabled
bool isSlaveModeEnabled
Holds a flag which indicates whether slave mode must be enabled.
Definition: NvSIPLDeviceBlockInfo.hpp:218
nvsipl::DeviceBlockInfo::cameraModuleInfoList
CameraModuleInfo cameraModuleInfoList[MAX_CAMERAMODULES_PER_BLOCK]
Holds an array of information about each camera module in the device block.
Definition: NvSIPLDeviceBlockInfo.hpp:209
nvsipl::MAX_SENSORS_PER_PLATFORM
static const std::uint32_t MAX_SENSORS_PER_PLATFORM
Indicates the maximum number of sensors per platform.
Definition: NvSIPLDeviceBlockInfo.hpp:50
nvsipl::SensorInfo
Defines the image sensor information.
Definition: NvSIPLDeviceBlockInfo.hpp:53
nvsipl::EEPROMInfo::description
std::string description
Holds the description of the EEPROM.
Definition: NvSIPLDeviceBlockInfo.hpp:123
nvsipl::SensorInfo::VirtualChannelInfo::isEmbeddedDataTypeEnabled
bool isEmbeddedDataTypeEnabled
Indicates whether the embedded data is coming in CSI packet with different data.
Definition: NvSIPLDeviceBlockInfo.hpp:88
nvsipl::DeviceBlockInfo::numCameraModules
std::uint32_t numCameraModules
Holds the number of camera modules connected to the deserializer.
Definition: NvSIPLDeviceBlockInfo.hpp:206
NvMediaICPCsiPhyMode
NvMediaICPCsiPhyMode
Specifies the CSI phy mode.
Definition: nvmedia_icp.h:245
nvsipl::DeviceBlockInfo::isSimulatorModeEnabled
bool isSimulatorModeEnabled
Holds a flag which indicates whether simulator mode has been enabled.
Definition: NvSIPLDeviceBlockInfo.hpp:214
nvsipl::SensorInfo::VirtualChannelInfo::resolution
Resolution resolution
Holds the Resolution of the captured frame.
Definition: NvSIPLDeviceBlockInfo.hpp:83
nvsipl::SerInfo::longCable
bool longCable
Holds long cable support.
Definition: NvSIPLDeviceBlockInfo.hpp:142
nvsipl::CameraModuleInfo::name
std::string name
Holds the name of the camera module, for example, "SF3324".
Definition: NvSIPLDeviceBlockInfo.hpp:153
nvsipl::DeviceBlockInfo::isGroupInitProg
bool isGroupInitProg
Holds a flag which indicates whether group initialization is enabled.
Definition: NvSIPLDeviceBlockInfo.hpp:220
nvsipl::SensorInfo::isTPGEnabled
bool isTPGEnabled
Holds a flag which indicates whether the sensor requires configuration in Test Pattern Generator (TPG...
Definition: NvSIPLDeviceBlockInfo.hpp:110
nvsipl::SensorInfo::VirtualChannelInfo::cfa
std::uint32_t cfa
Holds the Bayer color filter array order of the sensor.
Definition: NvSIPLDeviceBlockInfo.hpp:75
nvsipl::CameraModuleInfo::serInfo
SerInfo serInfo
Holds the SerInfo of the serializer.
Definition: NvSIPLDeviceBlockInfo.hpp:162
nvsipl::DeserInfo
Defines the deserializer information.
Definition: NvSIPLDeviceBlockInfo.hpp:173
nvsipl::DeviceBlockInfo::longCables
bool longCables[MAX_CAMERAMODULES_PER_BLOCK]
Holds long cable support.
Definition: NvSIPLDeviceBlockInfo.hpp:225
nvsipl::SensorInfo::Resolution
Defines the image resolution.
Definition: NvSIPLDeviceBlockInfo.hpp:56
nvsipl::SerInfo::description
std::string description
Holds the description of the serializer.
Definition: NvSIPLDeviceBlockInfo.hpp:136
nvsipl::DeviceBlockInfo
Defines the DeviceBlock information.
Definition: NvSIPLDeviceBlockInfo.hpp:191
nvsipl::CameraModuleInfo::eepromInfo
EEPROMInfo eepromInfo
Holds the information about EEPROM device in a camera module.
Definition: NvSIPLDeviceBlockInfo.hpp:167
nvsipl::EEPROMInfo::name
std::string name
Holds the name of the EEPROM, for example, "N24C64".
Definition: NvSIPLDeviceBlockInfo.hpp:120
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12
Specifies RAW 12.
Definition: nvmedia_icp.h:176
nvsipl::CameraModuleInfo::description
std::string description
Holds the description of the camera module.
Definition: NvSIPLDeviceBlockInfo.hpp:156
nvsipl::DeserInfo::i2cAddress
std::uint8_t i2cAddress
Holds the native I2C address of the deserializer.
Definition: NvSIPLDeviceBlockInfo.hpp:182
nvsipl::SensorInfo::i2cAddress
std::uint8_t i2cAddress
Holds the native I2C address of the image sensor.
Definition: NvSIPLDeviceBlockInfo.hpp:100
NvMediaICPInputFormatType
NvMediaICPInputFormatType
Specifies the image capture input format type.
Definition: nvmedia_icp.h:157
nvsipl::SerInfo::name
std::string name
Holds the name of the serializer, for example, "MAX96705".
Definition: NvSIPLDeviceBlockInfo.hpp:133
nvsipl::CameraModuleInfo::linkIndex
std::uint32_t linkIndex
Holds the index of the deserializer link to which this module is connected.
Definition: NvSIPLDeviceBlockInfo.hpp:160
nvsipl::MAX_CAMERAMODULES_PER_BLOCK
static const std::uint32_t MAX_CAMERAMODULES_PER_BLOCK
Indicates the maximum number of camera modules per device block.
Definition: NvSIPLDeviceBlockInfo.hpp:44
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: INvSiplControlAuto.hpp:33
nvsipl::CameraModuleInfo::isEEPROMSupported
bool isEEPROMSupported
Holds EEPROM support.
Definition: NvSIPLDeviceBlockInfo.hpp:164
nvsipl::SensorInfo::VirtualChannelInfo::embeddedTopLines
std::uint32_t embeddedTopLines
Holds the number of top embedded lines.
Definition: NvSIPLDeviceBlockInfo.hpp:77
nvsipl::SerInfo
Defines the serializer information.
Definition: NvSIPLDeviceBlockInfo.hpp:130
nvsipl::SensorInfo::VirtualChannelInfo
Defines the information of a virtual channel/single exposure.
Definition: NvSIPLDeviceBlockInfo.hpp:67
nvsipl::SensorInfo::VirtualChannelInfo::fps
float fps
Holds the average number of frames per second in the range from NVMEDIA_ICP_MIN_FRAME_RATE to NVMEDIA...
Definition: NvSIPLDeviceBlockInfo.hpp:86
nvsipl::MAX_CAMERAMODULES_PER_PLATFORM
static const std::uint32_t MAX_CAMERAMODULES_PER_PLATFORM
Indicates the maximum number of camera modules per platform.
Definition: NvSIPLDeviceBlockInfo.hpp:47
nvsipl::DeviceBlockInfo::i2cDevice
std::uint32_t i2cDevice
Holds the I2C device bus number used to connect the deserializer with the SoC.
Definition: NvSIPLDeviceBlockInfo.hpp:200