NVIDIA DRIVE OS Linux SDK API Reference

5.1.12.0 Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
nvmedia_isc.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2019, NVIDIA CORPORATION. All rights reserved. All
3  * information contained herein is proprietary and confidential to NVIDIA
4  * Corporation. Any use, reproduction, or disclosure without the written
5  * permission of NVIDIA Corporation is prohibited.
6  */
7 
15 #ifndef _NVMEDIA_ISC_H
16 #define _NVMEDIA_ISC_H
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #include "nvmedia_core.h"
23 #include "nvmedia_icp.h"
24 
48 #define NVMEDIA_ISC_VERSION_MAJOR 3
49 
50 #define NVMEDIA_ISC_VERSION_MINOR 2
51 
55 #define NVMEDIA_ISC_SIMULATOR_ADDRESS 0xFF1u
56 
57 #define RDEV_CFG_I2C_BITS 8
58 
59 #define RDEV_CFG_CSI_BITS (RDEV_CFG_I2C_BITS + 8)
60 
61 #define RDEV_CFG_SLV_BIT (RDEV_CFG_CSI_BITS + 1)
62 
68 #define ISC_RDEV_CFG(csi, i2c) (((uint32_t)(csi) << RDEV_CFG_I2C_BITS) | (i2c))
69 
85 #define ISC_RDEV_CFG_EX(csi, i2c, disPwrCtrl) \
86  ((i2c & 0xffu) | \
87  ((uint32_t)(csi & 0xffu) << RDEV_CFG_I2C_BITS) | \
88  ((uint32_t)(disPwrCtrl & 1u) << RDEV_CFG_SLV_BIT))
89 
97 #define ISC_SLV_RDEV_CFG(csi, i2c) \
98  ((i2c) | ((uint32_t)(csi) << RDEV_CFG_I2C_BITS) | ((uint32_t)(1u) << RDEV_CFG_CSI_BITS))
99 
107 #define ADV_CONFIG_INIT(cfg, ctx) \
108  do { \
109  memset(&cfg, 0, sizeof(cfg)); \
110  cfg.clientContext = (void *)(ctx); \
111  } while (0)
112 
114 #define NVMEDIA_ISC_MAX_EXPOSURES (8u)
115 
117 #define NVM_ISC_MAX_COLOR_COMPONENT (4u)
118 
120 #define NVMEDIA_ISC_MAX_SENSOR_CONTEXTS (4u)
121 
126 #define NVMEDIA_ISC_MAX_PWL_KNEEPOINTS (64u)
127 
129 #define NVMEDIA_ISC_MAX_FRAME_REPORT_BYTES (4u)
130 
132 #define NVMEDIA_ISC_MAX_NUM_TEMPERATURES (4u)
133 
135 #define NVMEDIA_ISC_MAX_SENSOR_NAME_LENGTH (32u)
136 
138 #define NVMEDIA_ISC_MAX_FUSE_ID_LENGTH (32u)
139 
141 
143 
145 
147 
148 #if !NV_IS_SAFETY
150 #endif
151  /* Ends Basic ISC Types group */
153 
172  NvMediaVersion *version
173 );
174  /* Ends version_info_isc_api ISC Version Information sub-group. */
176 
180 typedef struct {
183 
199 typedef enum {
214 
218 typedef void NvMediaISCRootDevice;
219 
258 NvMediaISCRootDevice *
260  uint32_t portCfg
261 );
262 
267 void
269  NvMediaISCRootDevice *device
270 );
271 
288  NvMediaISCRootDevice *device
289 );
290 
300  NvMediaISCRootDevice *device
301 );
302 
394 typedef struct {
396  char *deviceName;
398  int32_t regLength;
400  int32_t dataLength;
401 
444  NvMediaStatus (* DriverCreate)(
445  NvMediaISCDevice *handle,
446  void *clientContext);
447 
479  NvMediaStatus (* DriverDestroy)(
480  NvMediaISCDevice *handle);
481 
568  NvMediaStatus (* SetSensorControls)(
569  NvMediaISCDevice *handle,
570  const struct NvMediaISCSensorControl *sensorControl,
571  const size_t sensrCtrlStructSize);
572 
656  NvMediaStatus (* ParseEmbedDataInfo)(
657  NvMediaISCDevice *handle,
658  const struct NvMediaISCEmbeddedDataChunk *embeddedTopDataChunk,
659  const struct NvMediaISCEmbeddedDataChunk *embeddedBotDataChunk,
660  const size_t dataChunkStructSize,
661  struct NvMediaISCEmbeddedDataInfo *embeddedDataInfo,
662  const size_t dataInfoStructSize);
663 
735  NvMediaStatus (* GetSensorAttributes)(
736  NvMediaISCDevice *handle,
737  struct NvMediaISCSensorAttributes *sensorAttr,
738  const size_t sensorAttrStructSize);
739 
740 #if !NV_IS_SAFETY
741 
742  NvMediaStatus (* GetModuleConfig)(
743  NvMediaISCDevice *handle,
744  struct NvMediaISCModuleConfig *moduleConfig);
745 
785  NvMediaStatus (* SetSensorCharMode)(
786  NvMediaISCDevice *handle,
787  uint8_t expNo);
788 #endif
790 
805 typedef struct {
809 
824  NvMediaISCRootDevice *rootDevice,
825  uint32_t *deviceAddressList,
826  uint32_t numDevices,
827  NvMediaISCDeviceDriver *deviceDriver,
828  NvMediaISCAdvancedConfig *advancedConfig
829 );
830 
835 void
837  NvMediaISCDevice *device
838 );
839 
862  NvMediaISCDevice *device,
863  uint32_t deviceIndex,
864  uint32_t regLength,
865  uint8_t *regData,
866  uint32_t dataLength,
867  uint8_t *data
868 );
869 
891  NvMediaISCDevice *device,
892  uint32_t deviceIndex,
893  uint32_t dataLength,
894  const uint8_t *data
895 );
896 
900 typedef struct NvMediaISCAttrRange {
904  float_t min;
905 
909  float_t max;
910 
912 
921 
925  uint32_t sensorCFA;
926 
931 
937 
942 
947 
952 
974 
981 
983 
1003  NvMediaISCDevice *device,
1004  NvMediaISCSensorAttributes *sensorAttr,
1005  const size_t sensorAttrStructSize);
1006 
1010 typedef struct NvMediaISCExposure {
1015 
1021 
1026 
1032 
1034 
1035 
1039 typedef struct NvMediaISCWhiteBalance {
1044 
1053  struct {
1056 
1058 
1062 typedef struct NvMediaISCFrameReport {
1067 
1072  uint8_t numBytes;
1073 
1079 
1081 
1085 typedef struct NvMediaISCPWL {
1090 
1095  uint8_t numKneePoints;
1096 
1102 
1103 } NvMediaISCPWL;
1104 
1108 typedef struct NvMediaISCTemperature {
1113 
1119 
1125 
1127 
1131 typedef struct NvMediaISCCRC {
1136 
1140  uint32_t computedCRC;
1141 
1145  uint32_t embeddedCRC;
1146 
1147 } NvMediaISCCRC;
1148 
1152 typedef struct NvMediaISCFrameSeqNum {
1157 
1162 
1164 
1181 typedef struct NvMediaISCSensorControl {
1192 
1197 
1202 
1210 
1212 
1236  NvMediaISCDevice *device,
1237  const NvMediaISCSensorControl *sensorControl,
1238  const size_t sensrCtrlStructSize
1239 );
1240 
1262  uint32_t numExposures;
1263 
1269 
1275 
1280 
1285 
1290 
1296 
1302 
1304 
1305 /*
1306  * \brief Holds the sensor embedded data chunk structure.
1307  */
1312  uint32_t lineLength;
1313 
1317  const uint8_t *lineData;
1319 
1349  NvMediaISCDevice *device,
1350  const NvMediaISCEmbeddedDataChunk *embeddedTopDataChunk,
1351  const NvMediaISCEmbeddedDataChunk *embeddedBotDataChunk,
1352  const size_t embeddedDataChunkStructSize,
1353  NvMediaISCEmbeddedDataInfo *embeddedDataInfo,
1354  const size_t dataInfoStructSize);
1355 
1358 #if !NV_IS_SAFETY
1359 
1363 typedef enum {
1375 
1380 typedef struct NvMediaISCModuleConfig {
1387 
1406  NvMediaISCRootDevice *device,
1407  NvMediaISCPowerItems powerItem,
1408  NvMediaBool powerOn
1409 );
1410 
1429  NvMediaISCRootDevice *device,
1430  NvMediaISCPowerItems powerItem,
1431  NvMediaBool *powerStatus
1432 );
1433 
1450  NvMediaISCRootDevice *device,
1451  NvMediaBool enable
1452 );
1453 
1467  NvMediaISCRootDevice *device,
1468  float_t freq,
1469  float_t dutyRatio
1470 );
1471 
1486  NvMediaISCRootDevice *device,
1487  float_t *freq,
1488  float_t *dutyRatio
1489 );
1490 
1496 typedef enum {
1506 
1513  struct {
1514  float_t value;
1518  struct {
1519  float_t value;
1522  uint8_t sensorFrameId;
1524 
1529 typedef struct NvMediaISCWBGainControl {
1532  struct {
1533  float_t value[4];
1537 
1542 typedef struct {
1544  uint32_t baseRegAddress;
1546  uint32_t size;
1548  uint32_t bufferSize;
1550  uint8_t *data;
1552 
1557 typedef struct NvMediaISCEmbeddedData {
1567 
1574 typedef enum {
1626 
1662  NvMediaISCDevice *device,
1663  uint8_t expNo);
1664 
1679  NvMediaISCDevice *device,
1680  NvMediaISCModuleConfig *moduleConfig
1681 );
1682 #endif /* #if !NV_IS_SAFETY */
1683 
1684 /*
1685  * \defgroup history_isc History
1686  * Provides change history for the NvMedia Image Sensor Control API.
1687  *
1688  * \section history_isc Version History
1689  *
1690  * <b> Version 1.0 </b> April 1, 2014
1691  * - Initial release
1692  *
1693  * <b> Version 1.1 </b> April 3, 2015
1694  * - Add mode in \ref NvMediaISCEmbeddedData
1695  *
1696  * <b> Version 1.2 </b> April 16, 2015
1697  * - Add new port config macro \ref ISC_ROOT_DEVICE_CFG
1698  * - The \a advancedConfig attribute is being used in \ref NvMediaISCDeviceCreate
1699  * - Add new callback function \ref NvMediaISCRootDeviceRegisterCallback to handle device errors
1700  *
1701  * <b> Version 1.3 </b> April 24, 2015
1702  * - Moved the \a regLength and \a dataLength attributes from \ref NvMediaISCAdvancedConfig
1703  * in \ref NvMediaISCDeviceDriver.
1704  * - Add macro \ref ADV_CONFIG_INIT
1705  *
1706  * <b> Version 1.4 </b> April 28, 2015
1707  * - Add hdrRatio in \ref NvMediaISCExposureControl structure
1708  * - Add conversionGain in \ref NvMediaISCEmbeddedData structure
1709  *
1710  * <b> Version 1.5 </b> July 13, 2015
1711  * - Add exposureMidpointTime in \ref NvMediaISCEmbeddedData structure
1712  * - Add NVMEDIA_ISC_I2C_SIMULATOR in \ref NVMEDIA_ISC_I2C_SIMULATOR
1713  * - Add new function \ref NvMediaISCRootDevicePowerControl and \ref NvMediaISCPowerItems
1714  * - Modify the input parameter cbFunc of NvMediaISCRootDeviceRegisterCallback
1715  * - Add function \ref NvMediaISCGetErrorStatus to get error information from device
1716  * - Add \ref NvMediaISCSensorProperties structure
1717  * - Add \ref NvMediaISCGetSensorProperties to get sensor properties
1718  *
1719  * <b> Version 1.6 </b> September 9, 2015
1720  * - Add SensorMode in \ref NvMediaISCExposureControl structure
1721  *
1722  * <b> Version 1.7 </b> September 21, 2015
1723  * - Increase I2C ports to support 12 I2C busses
1724  *
1725  * <b> Version 1.8 </b> December 09, 2015
1726  * - Add channelGainRatio for sensors which only allow same or fixed ratio gain in exposure channels
1727  *
1728  * <b> Version 1.9 </b> January 22, 2016
1729  * - Add NvMediaISCRootDeviceGetPowerStatus function
1730  *
1731  * <b> Version 1.10 </b> May 5, 2016
1732  * - Add NvMediaISCModuleConfig structure and NvMediaISCGetModuleConfig function.
1733  *
1734  * <b> Version 1.11 </b> May 11, 2016
1735  * - Add \ref NvMediaISCCheckVersion API
1736  *
1737  * <b> Version 1.12 </b> June 7, 2016
1738  * - Add NVMEDIA_ISC_SIMULATOR_ADDRESS to use for ISC simulator devices
1739  *
1740  * <b> Version 1.13 </b> June 20, 2016
1741  * - Add frameSequenceNumber in \ref NvMediaISCEmbeddedData
1742  *
1743  * <b> Version 1.14 </b> July 6, 2016
1744  * - Add ISC_ROOT_DEVICE_CFG_EX macro
1745  *
1746  * <b> Version 1.15 </b> July 8, 2016
1747  * - Add \ref NvMediaISCSetBracketedExposure new API for settings bracketed exposure
1748  *
1749  * <b> Version 1.16 </b> Oct 10, 2016
1750  * - Add sensor attributes \ref NvMediaISCSensorAttrType & new API \ref NvMediaISCGetSensorAttr
1751  *
1752  * <b> Version 1.17 </b> November 21, 2016
1753  * - Add \ref NvMediaISCRootDeviceEnableSync new API for enabling/disabling PWM
1754  * - Add \ref NvMediaISCRootDeviceSetSyncConfig new API for setting PWM's frequency and duty
1755  * - Add \ref NvMediaISCRootDeviceGetSyncConfig new API for getting PWM's frequency and duty
1756  *
1757  * <b> Version 1.18 </b> Jan 5, 2017
1758  * - Add \ref NvMediaISCSetCompandingCurve API for setting companding curve
1759  *
1760  * <b> Version 1.19 </b> Jan 27, 2017
1761  * - Add \ref Add const modifier to data parameter in NvmediaISCSupportFuntion Write.
1762  *
1763  * <b> Version 2.00 </b> April 19, 2017
1764  * - Deprecated NvMediaISCDeviceType and EnableLink from \ref NvMediaISCDeviceDriver.
1765  * - Updated to use stdint.h
1766  * - Replaced float with float_t
1767  * - Removed unused input parameter from NvMediaISCRootDeviceCreate
1768  * - Deprecated queueElementsNumber and queueElementSize from \ref NvMediaISCRootDeviceCreate
1769  * - Deprecated unused or not supported APIs as below list.
1770  * NvMediaISCRootDeviceDoTransaction
1771  * NvMediaISCRootDeviceSync
1772  * NvMediaISCUpdateDeviceAddress
1773  * NvMediaISCSetDeviceLinkMode
1774  * NvMediaISCGetLinkStatus
1775  * NvMediaISCSetPriority
1776  * - NvMediaISCGetLinkStatus is replaced by \ref NvMediaISCCheckLink
1777  * - Updated NvMediaISCCheckLink to have one more argument to specify which link
1778  * to enable as optional.
1779  * - Renamed ISC_ROOT_DEVICE_CFG_EX to ISC_SLV_RDEV_CFG
1780  * - Renamed ISC_ROOT_DEVICE_CFG to ISC_RDEV_CFG
1781  * - Deprecated parentDevice, instanceNumber from NvMediaISCDeviceCreate
1782  * - Deprecated NvMediaISCGetSensorProperties, replaced by \ref NvMediaISCGetSensorAttr
1783  *
1784  * <b> Version 2.1 </b> May 12, 2017
1785  * - Added \ref NvMediaISCGetVersion API to get the version of NvMedia ISC library
1786  * - NvMediaISCCheckVersion is deprecated. Use NvMediaISCGetVersion() instead
1787  *
1788  * <b> Version 2.2 </b> May 23, 2017
1789  * - Deprecated NvMediaISCSensorMode
1790  * - Deprecated mode & exposureMidpointTime from \ref NvMediaISCEmbeddedData
1791  * - Deprecated sensorMode & hdrRatio from \ref NvMediaISCExposureControl
1792  * - Replaced exposure in \ref NvMediaISCEmbeddedData with \ref NvMediaISCExposureControl
1793  * - Replaced wbGains in \ref NvMediaISCEmbeddedData with \ref NvMediaISCWBGainControl
1794  *
1795  * <b> Version 2.3 </b> May 26, 2017
1796  * - Add device list for ISC handle creation
1797  *
1798  * <b> Version 2.4 </b> Feb 26, 2018
1799  * - Add ISC_RDEV_CFG_EX to have an option to disable power control in \ref NvMediaISCRootDeviceCreate
1800  *
1801  * <b> Version 2.5 </b> April 30, 2018
1802  * - Add sensor characterization attributes \ref NvMediaISCSensorCharAttr
1803  * - Add new APIs \ref NvMediaISCSetCharacterizationAttr \ref NvMediaISCGetCharacterizationAttr
1804  *
1805  * <b> Version 2.6 </b> September 24, 2018
1806  * - Added \ref NvMediaISCExposure \ref NvMediaISCWhiteBalance
1807  * \ref NvMediaISCCRC \ref NvMediaISCFrameSeqNum \ref NvMediaISCFrameReport
1808  * \ref NvMediaISCPWL and \ref NvMediaISCTemperature
1809  * - Added \ref NvMediaISCSensorControl \ref NvMediaISCEmbeddedDataChunk
1810  * \ref NvMediaISCEmbeddedDataInfo and \ref NvMediaISCSensorAttributes
1811  * - Add new APIs \ref NvMediaISCGetSensorAttributes \ref NvMediaISCParseEmbedDataInfo
1812  * \ref NvMediaISCSetSensorControls \ref NvMediaISCSetSensorCharMode
1813  *
1814  * <b> Version 2.7 </b> Dec 29, 2018
1815  * - Add new APIs \r NvMediaISCWaitForError \ref NvMediaISCAbortWaitForError
1816  *
1817  * <b> Version 2.8 </b> Feb 25, 2019
1818  * - Remove NvMediaISCRootDeviceRegisterCallback API
1819  *
1820  * <b> Version 2.9 </b> March 25, 2019
1821  * - Remove NvMediaISCSetExposure, NvMediaISCSetBracketedExposure,
1822  * NvMediaISCSetWBGain, NvMediaISCSetCompandingCurve,NvMediaISCGetSensorFrameId,
1823  * NvMediaISCGetTemperature, NvMediaISCParseEmbeddedData, NvMediaISCGetSensorAttr,
1824  * NvMediaISCSetCharacterizationAttr, NvMediaISCGetCharacterizationAttr
1825  *
1826  * <b> Version 3.0 </b> April 3, 2019
1827  * - Remove NvMediaISCTransactionHandle, NvMediaISCDriverHandle and NvMediaISCSupportFunctions
1828  * - Change all ISC APIs to use only NvMediaISCDevice handle
1829  * - Add NvMediaISCDeviceRead and NvMediaISCDeviceWrite
1830  * - Add support for per device simulator mode
1831  * - Change lineData member type in \ref NvMediaISCEmbeddedDataChunk to 'const uint8_t *'
1832  * - Change sensorCFA member type in \ref NvMediaISCSensorAttributes to 'uint32_t'
1833  * - Remove the following members from NvMediaISCDeviceDriver
1834  * CheckPresence
1835  * SetDeviceConfig
1836  * ReadRegister
1837  * WriteRegister
1838  * WriteParameters
1839  * ReadParameters
1840  * DumpRegisters
1841  * GetErrorStatus
1842  * CheckLink
1843  * - Remove the following APIs
1844  * NvMediaISCCheckPresence
1845  * NvMediaISCCheckLink
1846  * NvMediaISCSetDefaults
1847  * NvMediaISCSetDeviceConfig
1848  * NvMediaISCReadParameters
1849  * NvMediaISCWriteParameters
1850  * NvMediaISCGetErrorStatus
1851  * NvMediaISCReadRegister
1852  * NvMediaISCWriteRegister
1853  * NvMediaISCDumpRegisters
1854  *
1855  * <b> Version 3.1 </b> April 22, 2019
1856  * - Move below structures to non-safety
1857  * NvMediaISCVersionInfo
1858  * NvMediaISCModuleConfig
1859  * NvMediaISCExposureControl
1860  * NvMediaISCWBGainControl
1861  * NvMediaISCEmbeddedDataBuffer
1862  * NvMediaISCEmbeddedData
1863  * - Move below enums to non-safety
1864  * NvMediaISCPowerItems
1865  * NvMediaISCExposureMode
1866  * NvMediaISCSensorAttrType
1867  * - Move the following members of NvMediaISCDeviceDriver to non-safety
1868  * GetModuleConfig
1869  * SetSensorCharMode
1870  * - Move the following APIs to non-safety
1871  * NvMediaISCGetVersionInfo
1872  * NvMediaISCGetVersion
1873  * NvMediaISCRootDevicePowerControl
1874  * NvMediaISCRootDeviceGetPowerStatus
1875  * NvMediaISCRootDeviceEnableSync
1876  * NvMediaISCRootDeviceSetSyncConfig
1877  * NvMediaISCRootDeviceGetSyncConfig
1878  * NvMediaISCSetSensorCharMode
1879  * NvMediaISCGetModuleConfig
1880  *
1881  * <b> Version 3.2 </b> July 22, 2019
1882  * - Remove NvMediaISCVersionInfo and NvMediaISCGetVersionInfo
1883  */
1884 
1887 #ifdef __cplusplus
1888 }; /* extern "C" */
1889 #endif
1890 
1891 #endif /* _NVMEDIA_ISC_H */
Holds the sensor companding piecewise linear (PWL) structure.
Definition: nvmedia_isc.h:1085
int32_t dataLength
Holds the target device data length in bytes.
Definition: nvmedia_isc.h:400
uint32_t baseRegAddress
Holds the address of the first register.
Definition: nvmedia_isc.h:1544
Defines the double-precision location of a point on a two-dimensional object.
Definition: nvmedia_core.h:158
NvMediaStatus NvMediaISCRootDeviceSetSyncConfig(NvMediaISCRootDevice *device, float_t freq, float_t dutyRatio)
Sets the pulse width modulation (PWM) frequency and duty.
NvMediaStatus NvMediaISCDeviceRead(NvMediaISCDevice *device, uint32_t deviceIndex, uint32_t regLength, uint8_t *regData, uint32_t dataLength, uint8_t *data)
Performs a read operation over I2C.
#define NVMEDIA_ISC_MAX_FRAME_REPORT_BYTES
Maximum number of frame report bytes.
Definition: nvmedia_isc.h:129
NvMediaStatus NvMediaISCGetModuleConfig(NvMediaISCDevice *device, NvMediaISCModuleConfig *moduleConfig)
Gets the Module ISP configuration.
NvMediaISCWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
Definition: nvmedia_isc.h:1274
uint8_t numSensorContexts
Holds the number of sensor contexts to activate.
Definition: nvmedia_isc.h:1191
NvMediaISCEmbeddedDataBuffer top
Definition: nvmedia_isc.h:1558
Holds the embedded data buffer structure.
Definition: nvmedia_isc.h:1542
uint32_t size
Holds the data size.
Definition: nvmedia_isc.h:1546
Specifies a unique ID per instance of camera module.
Definition: nvmedia_isc.h:1578
char sensorFuseId[NVMEDIA_ISC_MAX_FUSE_ID_LENGTH]
Holds the fuse ID attribute.
Definition: nvmedia_isc.h:930
Holds the handle for an NvMediaISCDevice object.
Definition: nvmedia_isc.h:180
NvMediaStatus NvMediaISCRootDeviceEnableSync(NvMediaISCRootDevice *device, NvMediaBool enable)
Enables or disables pulse width modulation (PWM) for the external synchronization.
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
Aggregator Power.
Definition: nvmedia_isc.h:1365
float_t max
Holds the sensor attribute's maximum value.
Definition: nvmedia_isc.h:909
uint64_t frameSequenceNumber
Holds the sensor frame sequence number value.
Definition: nvmedia_isc.h:1161
Specifies i2c-2.
Definition: nvmedia_isc.h:202
NvMediaBool wbValid
Holds a flag which enables or disables the white balance gain block.
Definition: nvmedia_isc.h:1043
struct NvMediaISCWBGainControl::@27 wbGain[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds white balance for each exposure mode in R Gr Gb B order.
Specifies maximum possible gain values.
Definition: nvmedia_isc.h:1586
Holds the sensor control structure.
Definition: nvmedia_isc.h:1181
NvMediaBool expTimeValid
Holds a flag which enables or disables the exposure block.
Definition: nvmedia_isc.h:1014
NvMediaISCFrameSeqNum frameSeqNumInfo
Holds parsed embedded data frame sequence number info for the captured frame.
Definition: nvmedia_isc.h:1301
Holds sensor exposure information.
Definition: nvmedia_isc.h:1010
const char * cameraModuleConfigPass2
Definition: nvmedia_isc.h:1385
NvMediaISCFrameReport frameReportControl
Holds the sensor frame report value to be programmed.
Definition: nvmedia_isc.h:1209
struct NvMediaISCSensorControl NvMediaISCSensorControl
Holds the sensor control structure.
Specifies i2c-0.
Definition: nvmedia_isc.h:200
Specifies i2c-1.
Definition: nvmedia_isc.h:201
uint32_t numExposures
Holds the parsed embedded data frame number of exposures for the captured frame.
Definition: nvmedia_isc.h:1262
NvMediaBool frameReportValid
Holds a flag which enables or disables frame report block.
Definition: nvmedia_isc.h:1066
NvMediaISCCRC sensorCRCInfo
Holds the parsed embedded data sensor CRC info for the captured frame.
Definition: nvmedia_isc.h:1284
Specifies i2c-8.
Definition: nvmedia_isc.h:208
NvMediaISCSensorAttrType
ISC sensor attributes.
Definition: nvmedia_isc.h:1574
Specifies i2c-11.
Definition: nvmedia_isc.h:211
#define NVMEDIA_ISC_MAX_PWL_KNEEPOINTS
Maximum number of sensor companding piecewise linear (PWL) curve knee points.
Definition: nvmedia_isc.h:126
Holds the sensor embedded data parsed info structure.
Definition: nvmedia_isc.h:1257
NvMediaStatus NvMediaISCRootDevicePowerControl(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool powerOn)
Turns ON/OFF the power of a specific sub-device.
Holds NvMedia version information.
Definition: nvmedia_core.h:226
Holds the sensor temperature structure.
Definition: nvmedia_isc.h:1108
NvMediaStatus NvMediaISCGetVersion(NvMediaVersion *version)
Gets the version compatibility for the NvMedia ISC library.
uint8_t numActiveExposures
Holds the number of active exposures attribute.
Definition: nvmedia_isc.h:936
const char * cameraModuleConfigPass1
Holds the camera-specific configuration string.
Definition: nvmedia_isc.h:1384
char cameraModuleCfgName[128]
Holds the camera module name.
Definition: nvmedia_isc.h:1382
uint32_t frameSequenceNumber
Holds parsed frame counter.
Definition: nvmedia_isc.h:1565
char sensorName[NVMEDIA_ISC_MAX_SENSOR_NAME_LENGTH]
Holds the name attribute.
Definition: nvmedia_isc.h:920
struct NvMediaISCPWL NvMediaISCPWL
Holds the sensor companding piecewise linear (PWL) structure.
NvMediaISCExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Definition: nvmedia_isc.h:1268
Specifies i2c-6.
Definition: nvmedia_isc.h:206
struct NvMediaISCExposureControl NvMediaISCExposureControl
Holds exposure control information.
struct NvMediaISCExposureControl::@25 exposureTime[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds exposure time for each exposure mode.
#define NVMEDIA_ISC_MAX_FUSE_ID_LENGTH
Maximum possible length of sensor fuse id.
Definition: nvmedia_isc.h:138
uint8_t numKneePoints
Holds the number of active PWL knee points.
Definition: nvmedia_isc.h:1095
Specifies sensitivity ratios for different exposures.
Definition: nvmedia_isc.h:1616
NvMediaStatus NvMediaISCGetSensorAttributes(NvMediaISCDevice *device, NvMediaISCSensorAttributes *sensorAttr, const size_t sensorAttrStructSize)
Gets the sensor attributes.
void NvMediaISCRootDeviceDestroy(NvMediaISCRootDevice *device)
Destroys an NvMediaISCRootDevice object.
NvMediaISCWhiteBalance wbControl[NVMEDIA_ISC_MAX_SENSOR_CONTEXTS]
Holds the sensor white balance settings to set for each context.
Definition: nvmedia_isc.h:1201
NVIDIA Media Interface: Core
NvMediaISCAttrRange sensorGainRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor gain ranges for active exposures.
Definition: nvmedia_isc.h:946
void * clientContext
Holds the client context.
Definition: nvmedia_isc.h:807
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
uint8_t numTemperatures
Holds the number of active temperatures.
Definition: nvmedia_isc.h:1118
uint32_t bufferSize
Holds the buffer size.
Definition: nvmedia_isc.h:1548
Holds the sensor CRC structure.
Definition: nvmedia_isc.h:1131
Specifies minimum possible gain values.
Definition: nvmedia_isc.h:1582
struct NvMediaISCExposure NvMediaISCExposure
Holds sensor exposure information.
NVIDIA Media Interface: Image Capture Processing
NvMediaISCExposureMode
Defines Exposure mode.
Definition: nvmedia_isc.h:1496
Holds the range of a sensor attribute.
Definition: nvmedia_isc.h:900
uint32_t lineLength
Holds the line length of an embedded chunk, in bytes.
Definition: nvmedia_isc.h:1312
NvMediaStatus NvMediaISCRootDeviceAbortWaitForError(NvMediaISCRootDevice *device)
Aborts a call to NvMediaISCRootDeviceWaitForError().
float_t exposureTime[NVMEDIA_ISC_MAX_EXPOSURES]
Holds exposure time for each active exposure, in seconds.
Definition: nvmedia_isc.h:1020
Specifies exposure time step values in seconds.
Definition: nvmedia_isc.h:1602
uint8_t * data
Holds the actual data.
Definition: nvmedia_isc.h:1550
Holds the ISC Module ISP configuration.
Definition: nvmedia_isc.h:1380
Specifies frames per second.
Definition: nvmedia_isc.h:1620
struct NvMediaISCEmbeddedDataChunk NvMediaISCEmbeddedDataChunk
Specifies maximum possible exposure time values in seconds.
Definition: nvmedia_isc.h:1594
NvMediaISCAttrRange sensorExpRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor exposure ranges for active exposures.
Definition: nvmedia_isc.h:941
void NvMediaISCDeviceDestroy(NvMediaISCDevice *device)
Destroys the object that describes an ISC device.
const uint8_t * lineData
Holds a pointer to the data chunk.
Definition: nvmedia_isc.h:1317
char * deviceName
Holds the device name.
Definition: nvmedia_isc.h:396
#define NVMEDIA_ISC_MAX_SENSOR_CONTEXTS
Maximum number of sensor contexts.
Definition: nvmedia_isc.h:120
Holds device driver data.
Definition: nvmedia_isc.h:394
NvMediaStatus NvMediaISCSetSensorCharMode(NvMediaISCDevice *device, uint8_t expNo)
Set sensor in characterization mode.
struct NvMediaISCFrameReport NvMediaISCFrameReport
Holds the sensor report frame report structure.
Specifies very short exposure mode.
Definition: nvmedia_isc.h:1502
struct NvMediaISCWBGainControl NvMediaISCWBGainControl
Holds the white balance control structure.
Specifies long exposure mode.
Definition: nvmedia_isc.h:1498
float_t sensorTempCelsius[NVMEDIA_ISC_MAX_NUM_TEMPERATURES]
Holds the values of active sensor temperatures in degrees Celsius.
Definition: nvmedia_isc.h:1124
Specifies fine integration time values in seconds.
Definition: nvmedia_isc.h:1598
Specifies gain factor between the exposures.
Definition: nvmedia_isc.h:1611
NvMediaISCAttrRange sensorWhiteBalanceRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor white balance ranges for active exposures.
Definition: nvmedia_isc.h:951
NvMediaISCRootDevice * NvMediaISCRootDeviceCreate(uint32_t portCfg)
Creates an NvMediaISCRootDevice object.
NvMediaStatus NvMediaISCRootDeviceWaitForError(NvMediaISCRootDevice *device)
Waits until an error condition is reported or NvMediaISCRootDeviceAbortWaitForError() is called...
Specifies maximum possible HDR ratio value.
Definition: nvmedia_isc.h:1606
float_t value[NVM_ISC_MAX_COLOR_COMPONENT]
Definition: nvmedia_isc.h:1054
Specifies i2c-10.
Definition: nvmedia_isc.h:210
Specifies active number of exposures.
Definition: nvmedia_isc.h:1624
NvMediaISC_I2CPort
Defines the I2C buses on the host hardware device.
Definition: nvmedia_isc.h:199
NvMediaISCTemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: nvmedia_isc.h:1295
Holds the description of the target I2C device.
Definition: nvmedia_isc.h:805
uint8_t sensorframeReport[NVMEDIA_ISC_MAX_FRAME_REPORT_BYTES]
Holds the values of active frame report bytes.
Definition: nvmedia_isc.h:1078
uint32_t sensorCFA
Holds the CFA attribute.
Definition: nvmedia_isc.h:925
NvMediaISCPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: nvmedia_isc.h:1279
struct NvMediaISCTemperature NvMediaISCTemperature
Holds the sensor temperature structure.
Specifies short exposure mode.
Definition: nvmedia_isc.h:1500
struct NvMediaISCFrameSeqNum NvMediaISCFrameSeqNum
Holds the sensor frame sequence number structure.
Specifies i2c-4.
Definition: nvmedia_isc.h:204
struct NvMediaISCWhiteBalance NvMediaISCWhiteBalance
Holds the sensor white balance gain structure.
uint32_t numFrameReportBytes
Holds the number of frame report bytes supported by the sensor.
Definition: nvmedia_isc.h:980
float_t min
Holds the sensor attribute's minimum value.
Definition: nvmedia_isc.h:904
NvMediaBool tempValid
Holds a flag which enables or disables the sensor temperature block.
Definition: nvmedia_isc.h:1112
#define NVMEDIA_ISC_MAX_EXPOSURES
Maximum number of exposures.
Definition: nvmedia_isc.h:114
Holds the white balance control structure.
Definition: nvmedia_isc.h:1529
float_t sensorGainFactor[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the additional sensor gain factor between active exposures.
Definition: nvmedia_isc.h:973
NvMediaBool pwlValid
Holds a flag which enables or disables the sensor PWL block.
Definition: nvmedia_isc.h:1089
NvMediaISCDevice * NvMediaISCDeviceCreate(NvMediaISCRootDevice *rootDevice, uint32_t *deviceAddressList, uint32_t numDevices, NvMediaISCDeviceDriver *deviceDriver, NvMediaISCAdvancedConfig *advancedConfig)
Creates an NvMediaISCDevice object.
NvMediaISCWBGainControl wbControl
Holds parsed WB gains in R Gr Gb B order.
Definition: nvmedia_isc.h:1563
struct NvMediaISCAttrRange NvMediaISCAttrRange
Holds the range of a sensor attribute.
NvMediaISCPowerItems
ISC Power control items.
Definition: nvmedia_isc.h:1363
#define NVMEDIA_ISC_MAX_SENSOR_NAME_LENGTH
Maximum possible length of sensor name.
Definition: nvmedia_isc.h:135
Holds exposure control information.
Definition: nvmedia_isc.h:1511
#define NVM_ISC_MAX_COLOR_COMPONENT
Maximum number of color components.
Definition: nvmedia_isc.h:117
Specifies i2c-3.
Definition: nvmedia_isc.h:203
#define NVMEDIA_ISC_MAX_NUM_TEMPERATURES
Maximum number of sensor temperature values.
Definition: nvmedia_isc.h:132
NvMediaBool crcValid
Holds a flag which enables or disables the CRC block.
Definition: nvmedia_isc.h:1135
NvMediaPointDouble kneePoints[NVMEDIA_ISC_MAX_PWL_KNEEPOINTS]
Holds the values of active PWL knee points.
Definition: nvmedia_isc.h:1101
Port SIMPULATOR (20)
Definition: nvmedia_isc.h:212
NvMediaStatus NvMediaISCRootDeviceGetSyncConfig(NvMediaISCRootDevice *device, float_t *freq, float_t *dutyRatio)
Gets the pulse width modulation (PWM) frequency and duty.
NvMediaISCExposureControl exposureControl
Holds parsed exposure control.
Definition: nvmedia_isc.h:1561
struct NvMediaISCModuleConfig NvMediaISCModuleConfig
Holds the ISC Module ISP configuration.
uint32_t computedCRC
Holds the frame CRC value computed from embedded data.
Definition: nvmedia_isc.h:1140
struct NvMediaISCWhiteBalance::@24 wbGain[NVMEDIA_ISC_MAX_EXPOSURES]
Holds sensor white balance gain values for active exposures, in R Gr Gb B order.
Specifies minimum possible exposure time values in seconds.
Definition: nvmedia_isc.h:1590
NvMediaStatus NvMediaISCRootDeviceGetPowerStatus(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool *powerStatus)
Gets the power ON/OFF status of a specific sub-device.
NvMediaISCEmbeddedDataBuffer bottom
Definition: nvmedia_isc.h:1559
Holds the embedded data structure.
Definition: nvmedia_isc.h:1557
struct NvMediaISCEmbeddedDataInfo NvMediaISCEmbeddedDataInfo
Holds the sensor embedded data parsed info structure.
NvMediaStatus NvMediaISCSetSensorControls(NvMediaISCDevice *device, const NvMediaISCSensorControl *sensorControl, const size_t sensrCtrlStructSize)
Sets sensor control parameters.
uint8_t numBytes
Holds the number of active frame report bytes.
Definition: nvmedia_isc.h:1072
Specifies i2c-5.
Definition: nvmedia_isc.h:205
Holds the sensor attributes.
Definition: nvmedia_isc.h:916
void NvMediaISCRootDevice
An opaque handle for an NvMediaISCRootDevice object.
Definition: nvmedia_isc.h:218
Holds the sensor frame sequence number structure.
Definition: nvmedia_isc.h:1152
int32_t regLength
Holds the target device offset length in bytes.
Definition: nvmedia_isc.h:398
uint32_t embeddedCRC
Holds the frame CRC value parsed from embedded data.
Definition: nvmedia_isc.h:1145
Specifies the exposure mode count.
Definition: nvmedia_isc.h:1504
float_t sensorGain[NVMEDIA_ISC_MAX_EXPOSURES]
Holds sensor a gain value for each active gain.
Definition: nvmedia_isc.h:1031
Specifies i2c-7.
Definition: nvmedia_isc.h:207
Holds the sensor report frame report structure.
Definition: nvmedia_isc.h:1062
struct NvMediaISCCRC NvMediaISCCRC
Holds the sensor CRC structure.
struct NvMediaISCSensorAttributes NvMediaISCSensorAttributes
Holds the sensor attributes.
NvMediaBool frameSeqNumValid
Holds a flag which enables OR DISABLES the frame sequence number block.
Definition: nvmedia_isc.h:1156
struct NvMediaISCEmbeddedData NvMediaISCEmbeddedData
Holds the embedded data structure.
struct NvMediaISCExposureControl::@26 sensorGain[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds sensor gain for each exposure mode.
NvMediaStatus NvMediaISCParseEmbedDataInfo(NvMediaISCDevice *device, const NvMediaISCEmbeddedDataChunk *embeddedTopDataChunk, const NvMediaISCEmbeddedDataChunk *embeddedBotDataChunk, const size_t embeddedDataChunkStructSize, NvMediaISCEmbeddedDataInfo *embeddedDataInfo, const size_t dataInfoStructSize)
Parses sensor embedded data info and provides sensor image settings information for the captured fram...
Holds the sensor white balance gain structure.
Definition: nvmedia_isc.h:1039
NvMediaBool gainValid
Holds a flag which enables or disables the sensor gain block.
Definition: nvmedia_isc.h:1025
Specifies i2c-9.
Definition: nvmedia_isc.h:209
NvMediaISCExposure exposureControl[NVMEDIA_ISC_MAX_SENSOR_CONTEXTS]
Holds the sensor exposure settings to set for each context.
Definition: nvmedia_isc.h:1196
NvMediaStatus NvMediaISCDeviceWrite(NvMediaISCDevice *device, uint32_t deviceIndex, uint32_t dataLength, const uint8_t *data)
Performs a write operation over I2C.
void * deviceDriverHandle
Definition: nvmedia_isc.h:181
NvMediaISCFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: nvmedia_isc.h:1289