NVIDIA DRIVE OS Linux SDK API Reference

5.1.6.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 0
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 
149  /* Ends Basic ISC Types group */
151 
155 typedef struct {
158 
169 typedef struct {
173 
185  NvMediaISCVersionInfo *versionInfo
186 );
187 
197  NvMediaVersion *version
198 );
199  /* Ends version_info_isc_api ISC Version Information sub-group. */
201 
217 typedef enum {
232 
236 typedef void NvMediaISCRootDevice;
237 
276 NvMediaISCRootDevice *
278  uint32_t portCfg
279 );
280 
285 void
287  NvMediaISCRootDevice *device
288 );
289 
300  NvMediaISCRootDevice *device
301 );
302 
312  NvMediaISCRootDevice *device
313 );
314 
321 typedef enum {
333 
347  NvMediaISCRootDevice *device,
348  NvMediaISCPowerItems powerItem,
349  NvMediaBool powerOn
350 );
351 
367  NvMediaISCRootDevice *device,
368  NvMediaISCPowerItems powerItem,
369  NvMediaBool *powerStatus
370 );
371 
385  NvMediaISCRootDevice *device,
386  NvMediaBool enable
387 );
388 
401  NvMediaISCRootDevice *device,
402  float_t freq,
403  float_t dutyRatio
404 );
405 
421  NvMediaISCRootDevice *device,
422  float_t *freq,
423  float_t *dutyRatio
424 );
425 
517 typedef struct {
519  char *deviceName;
521  int32_t regLength;
523  int32_t dataLength;
524 
569  NvMediaStatus (* DriverCreate)(
570  NvMediaISCDevice *handle,
571  void *clientContext);
572 
606  NvMediaStatus (* DriverDestroy)(
607  NvMediaISCDevice *handle);
609  NvMediaStatus (* GetModuleConfig)(
610  NvMediaISCDevice *handle,
611  struct NvMediaISCModuleConfig *moduleConfig);
700  NvMediaStatus (* SetSensorControls)(
701  NvMediaISCDevice *handle,
702  const struct NvMediaISCSensorControl *sensorControl,
703  const size_t sensrCtrlStructSize);
704 
788  NvMediaStatus (* ParseEmbedDataInfo)(
789  NvMediaISCDevice *handle,
790  const struct NvMediaISCEmbeddedDataChunk *embeddedTopDataChunk,
791  const struct NvMediaISCEmbeddedDataChunk *embeddedBotDataChunk,
792  const size_t dataChunkStructSize,
793  struct NvMediaISCEmbeddedDataInfo *embeddedDataInfo,
794  const size_t dataInfoStructSize);
795 
837  NvMediaStatus (* SetSensorCharMode)(
838  NvMediaISCDevice *handle,
839  uint8_t expNo);
840 
915  NvMediaStatus (* GetSensorAttributes)(
916  NvMediaISCDevice *handle,
917  struct NvMediaISCSensorAttributes *sensorAttr,
918  const size_t sensorAttrStructSize);
919 
921 
936 typedef struct {
940 
957  NvMediaISCRootDevice *rootDevice,
958  uint32_t *deviceAddressList,
959  uint32_t numDevices,
960  NvMediaISCDeviceDriver *deviceDriver,
961  NvMediaISCAdvancedConfig *advancedConfig
962 );
963 
968 void
970  NvMediaISCDevice *device
971 );
972 
995  NvMediaISCDevice *device,
996  uint32_t deviceIndex,
997  uint32_t regLength,
998  uint8_t *regData,
999  uint32_t dataLength,
1000  uint8_t *data
1001 );
1002 
1025  NvMediaISCDevice *device,
1026  uint32_t deviceIndex,
1027  uint32_t dataLength,
1028  const uint8_t *data
1029 );
1030 
1035 typedef struct NvMediaISCModuleConfig {
1051 
1065  NvMediaISCDevice *device,
1066  NvMediaISCModuleConfig *moduleConfig
1067 );
1068 
1072 typedef struct NvMediaISCAttrRange {
1076  float_t min;
1077 
1081  float_t max;
1082 
1084 
1093 
1097  uint32_t sensorCFA;
1098 
1103 
1109 
1114 
1119 
1124 
1146 
1153 
1155 
1175  NvMediaISCDevice *device,
1176  NvMediaISCSensorAttributes *sensorAttr,
1177  const size_t sensorAttrStructSize);
1178 
1182 typedef struct NvMediaISCExposure {
1187 
1193 
1198 
1204 
1206 
1207 
1211 typedef struct NvMediaISCWhiteBalance {
1216 
1225  struct {
1228 
1230 
1234 typedef struct NvMediaISCFrameReport {
1239 
1244  uint8_t numBytes;
1245 
1251 
1253 
1257 typedef struct NvMediaISCPWL {
1262 
1267  uint8_t numKneePoints;
1268 
1274 
1275 } NvMediaISCPWL;
1276 
1280 typedef struct NvMediaISCTemperature {
1285 
1291 
1297 
1299 
1303 typedef struct NvMediaISCCRC {
1308 
1312  uint32_t computedCRC;
1313 
1317  uint32_t embeddedCRC;
1318 
1319 } NvMediaISCCRC;
1320 
1321 
1325 typedef struct NvMediaISCFrameSeqNum {
1330 
1335 
1337 
1338 
1355 typedef struct NvMediaISCSensorControl {
1366 
1371 
1376 
1384 
1386 
1387 
1411  NvMediaISCDevice *device,
1412  const NvMediaISCSensorControl *sensorControl,
1413  const size_t sensrCtrlStructSize
1414 );
1415 
1433 
1438  uint32_t numExposures;
1439 
1445 
1451 
1456 
1461 
1466 
1472 
1479 
1480 
1481 /*
1482  * \brief Holds the sensor embedded data chunk structure.
1483  */
1488  uint32_t lineLength;
1489 
1493  const uint8_t *lineData;
1495 
1496 
1526  NvMediaISCDevice *device,
1527  const NvMediaISCEmbeddedDataChunk *embeddedTopDataChunk,
1528  const NvMediaISCEmbeddedDataChunk *embeddedBotDataChunk,
1529  const size_t embeddedDataChunkStructSize,
1530  NvMediaISCEmbeddedDataInfo *embeddedDataInfo,
1531  const size_t dataInfoStructSize);
1532 
1566  NvMediaISCDevice *device,
1567  uint8_t expNo);
1568 
1569 
1575 typedef enum {
1585 
1592  struct {
1593  float_t value;
1597  struct {
1598  float_t value;
1601  uint8_t sensorFrameId;
1603 
1608 typedef struct NvMediaISCWBGainControl {
1611  struct {
1612  float_t value[4];
1616 
1621 typedef struct {
1623  uint32_t baseRegAddress;
1625  uint32_t size;
1627  uint32_t bufferSize;
1629  uint8_t *data;
1631 
1636 typedef struct NvMediaISCEmbeddedData {
1646 
1647 
1653 typedef enum {
1705 
1707 /*
1708  * \defgroup history_isc History
1709  * Provides change history for the NvMedia Image Sensor Control API.
1710  *
1711  * \section history_isc Version History
1712  *
1713  * <b> Version 1.0 </b> April 1, 2014
1714  * - Initial release
1715  *
1716  * <b> Version 1.1 </b> April 3, 2015
1717  * - Add mode in \ref NvMediaISCEmbeddedData
1718  *
1719  * <b> Version 1.2 </b> April 16, 2015
1720  * - Add new port config macro \ref ISC_ROOT_DEVICE_CFG
1721  * - The \a advancedConfig attribute is being used in \ref NvMediaISCDeviceCreate
1722  * - Add new callback function \ref NvMediaISCRootDeviceRegisterCallback to handle device errors
1723  *
1724  * <b> Version 1.3 </b> April 24, 2015
1725  * - Moved the \a regLength and \a dataLength attributes from \ref NvMediaISCAdvancedConfig
1726  * in \ref NvMediaISCDeviceDriver.
1727  * - Add macro \ref ADV_CONFIG_INIT
1728  *
1729  * <b> Version 1.4 </b> April 28, 2015
1730  * - Add hdrRatio in \ref NvMediaISCExposureControl structure
1731  * - Add conversionGain in \ref NvMediaISCEmbeddedData structure
1732  *
1733  * <b> Version 1.5 </b> July 13, 2015
1734  * - Add exposureMidpointTime in \ref NvMediaISCEmbeddedData structure
1735  * - Add NVMEDIA_ISC_I2C_SIMULATOR in \ref NVMEDIA_ISC_I2C_SIMULATOR
1736  * - Add new function \ref NvMediaISCRootDevicePowerControl and \ref NvMediaISCPowerItems
1737  * - Modify the input parameter cbFunc of NvMediaISCRootDeviceRegisterCallback
1738  * - Add function \ref NvMediaISCGetErrorStatus to get error information from device
1739  * - Add \ref NvMediaISCSensorProperties structure
1740  * - Add \ref NvMediaISCGetSensorProperties to get sensor properties
1741  *
1742  * <b> Version 1.6 </b> September 9, 2015
1743  * - Add SensorMode in \ref NvMediaISCExposureControl structure
1744  *
1745  * <b> Version 1.7 </b> September 21, 2015
1746  * - Increase I2C ports to support 12 I2C busses
1747  *
1748  * <b> Version 1.8 </b> December 09, 2015
1749  * - Add channelGainRatio for sensors which only allow same or fixed ratio gain in exposure channels
1750  *
1751  * <b> Version 1.9 </b> January 22, 2016
1752  * - Add NvMediaISCRootDeviceGetPowerStatus function
1753  *
1754  * <b> Version 1.10 </b> May 5, 2016
1755  * - Add NvMediaISCModuleConfig structure and NvMediaISCGetModuleConfig function.
1756  *
1757  * <b> Version 1.11 </b> May 11, 2016
1758  * - Add \ref NvMediaISCCheckVersion API
1759  *
1760  * <b> Version 1.12 </b> June 7, 2016
1761  * - Add NVMEDIA_ISC_SIMULATOR_ADDRESS to use for ISC simulator devices
1762  *
1763  * <b> Version 1.13 </b> June 20, 2016
1764  * - Add frameSequenceNumber in \ref NvMediaISCEmbeddedData
1765  *
1766  * <b> Version 1.14 </b> July 6, 2016
1767  * - Add ISC_ROOT_DEVICE_CFG_EX macro
1768  *
1769  * <b> Version 1.15 </b> July 8, 2016
1770  * - Add \ref NvMediaISCSetBracketedExposure new API for settings bracketed exposure
1771  *
1772  * <b> Version 1.16 </b> Oct 10, 2016
1773  * - Add sensor attributes \ref NvMediaISCSensorAttrType & new API \ref NvMediaISCGetSensorAttr
1774  *
1775  * <b> Version 1.17 </b> November 21, 2016
1776  * - Add \ref NvMediaISCRootDeviceEnableSync new API for enabling/disabling PWM
1777  * - Add \ref NvMediaISCRootDeviceSetSyncConfig new API for setting PWM's frequency and duty
1778  * - Add \ref NvMediaISCRootDeviceGetSyncConfig new API for getting PWM's frequency and duty
1779  *
1780  * <b> Version 1.18 </b> Jan 5, 2017
1781  * - Add \ref NvMediaISCSetCompandingCurve API for setting companding curve
1782  *
1783  * <b> Version 1.19 </b> Jan 27, 2017
1784  * - Add \ref Add const modifier to data parameter in NvmediaISCSupportFuntion Write.
1785  *
1786  * <b> Version 2.00 </b> April 19, 2017
1787  * - Deprecated NvMediaISCDeviceType and EnableLink from \ref NvMediaISCDeviceDriver.
1788  * - Updated to use stdint.h
1789  * - Replaced float with float_t
1790  * - Removed unused input parameter from NvMediaISCRootDeviceCreate
1791  * - Deprecated queueElementsNumber and queueElementSize from \ref NvMediaISCRootDeviceCreate
1792  * - Deprecated unused or not supported APIs as below list.
1793  * NvMediaISCRootDeviceDoTransaction
1794  * NvMediaISCRootDeviceSync
1795  * NvMediaISCUpdateDeviceAddress
1796  * NvMediaISCSetDeviceLinkMode
1797  * NvMediaISCGetLinkStatus
1798  * NvMediaISCSetPriority
1799  * - NvMediaISCGetLinkStatus is replaced by \ref NvMediaISCCheckLink
1800  * - Updated NvMediaISCCheckLink to have one more argument to specify which link
1801  * to enable as optional.
1802  * - Renamed ISC_ROOT_DEVICE_CFG_EX to ISC_SLV_RDEV_CFG
1803  * - Renamed ISC_ROOT_DEVICE_CFG to ISC_RDEV_CFG
1804  * - Deprecated parentDevice, instanceNumber from NvMediaISCDeviceCreate
1805  * - Deprecated NvMediaISCGetSensorProperties, replaced by \ref NvMediaISCGetSensorAttr
1806  *
1807  * <b> Version 2.1 </b> May 12, 2017
1808  * - Added \ref NvMediaISCGetVersion API to get the version of NvMedia ISC library
1809  * - NvMediaISCCheckVersion is deprecated. Use NvMediaISCGetVersion() instead
1810  *
1811  * <b> Version 2.2 </b> May 23, 2017
1812  * - Deprecated NvMediaISCSensorMode
1813  * - Deprecated mode & exposureMidpointTime from \ref NvMediaISCEmbeddedData
1814  * - Deprecated sensorMode & hdrRatio from \ref NvMediaISCExposureControl
1815  * - Replaced exposure in \ref NvMediaISCEmbeddedData with \ref NvMediaISCExposureControl
1816  * - Replaced wbGains in \ref NvMediaISCEmbeddedData with \ref NvMediaISCWBGainControl
1817  *
1818  * <b> Version 2.3 </b> May 26, 2017
1819  * - Add device list for ISC handle creation
1820  *
1821  * <b> Version 2.4 </b> Feb 26, 2018
1822  * - Add ISC_RDEV_CFG_EX to have an option to disable power control in \ref NvMediaISCRootDeviceCreate
1823  *
1824  * <b> Version 2.5 </b> April 30, 2018
1825  * - Add sensor characterization attributes \ref NvMediaISCSensorCharAttr
1826  * - Add new APIs \ref NvMediaISCSetCharacterizationAttr \ref NvMediaISCGetCharacterizationAttr
1827  *
1828  * <b> Version 2.6 </b> September 24, 2018
1829  * - Added \ref NvMediaISCExposure \ref NvMediaISCWhiteBalance
1830  * \ref NvMediaISCCRC \ref NvMediaISCFrameSeqNum \ref NvMediaISCFrameReport
1831  * \ref NvMediaISCPWL and \ref NvMediaISCTemperature
1832  * - Added \ref NvMediaISCSensorControl \ref NvMediaISCEmbeddedDataChunk
1833  * \ref NvMediaISCEmbeddedDataInfo and \ref NvMediaISCSensorAttributes
1834  * - Add new APIs \ref NvMediaISCGetSensorAttributes \ref NvMediaISCParseEmbedDataInfo
1835  * \ref NvMediaISCSetSensorControls \ref NvMediaISCSetSensorCharMode
1836  *
1837  * <b> Version 2.7 </b> Dec 29, 2018
1838  * - Add new APIs \r NvMediaISCWaitForError \ref NvMediaISCAbortWaitForError
1839  *
1840  * <b> Version 2.8 </b> Feb 25, 2019
1841  * - Remove NvMediaISCRootDeviceRegisterCallback API
1842  *
1843  * <b> Version 2.9 </b> March 25, 2019
1844  * - Remove NvMediaISCSetExposure, NvMediaISCSetBracketedExposure,
1845  * NvMediaISCSetWBGain, NvMediaISCSetCompandingCurve,NvMediaISCGetSensorFrameId,
1846  * NvMediaISCGetTemperature, NvMediaISCParseEmbeddedData, NvMediaISCGetSensorAttr,
1847  * NvMediaISCSetCharacterizationAttr, NvMediaISCGetCharacterizationAttr
1848  *
1849  * <b> Version 3.0 </b> April 3, 2019
1850  * - Remove NvMediaISCTransactionHandle, NvMediaISCDriverHandle and NvMediaISCSupportFunctions
1851  * - Change all ISC APIs to use only NvMediaISCDevice handle
1852  * - Add NvMediaISCDeviceRead and NvMediaISCDeviceWrite
1853  * - Add support for per device simulator mode
1854  * - Change lineData member type in \ref NvMediaISCEmbeddedDataChunk to 'const uint8_t *'
1855  * - Change sensorCFA member type in \ref NvMediaISCSensorAttributes to 'uint32_t'
1856  * - Remove the following members from NvMediaISCDeviceDriver
1857  * CheckPresence
1858  * SetDeviceConfig
1859  * ReadRegister
1860  * WriteRegister
1861  * WriteParameters
1862  * ReadParameters
1863  * DumpRegisters
1864  * GetErrorStatus
1865  * CheckLink
1866  * - Remove the following APIs
1867  * NvMediaISCCheckPresence
1868  * NvMediaISCCheckLink
1869  * NvMediaISCSetDefaults
1870  * NvMediaISCSetDeviceConfig
1871  * NvMediaISCReadParameters
1872  * NvMediaISCWriteParameters
1873  * NvMediaISCGetErrorStatus
1874  * NvMediaISCReadRegister
1875  * NvMediaISCWriteRegister
1876  * NvMediaISCDumpRegisters
1877  *
1878  */
1879 
1882 #ifdef __cplusplus
1883 }; /* extern "C" */
1884 #endif
1885 
1886 #endif /* _NVMEDIA_ISC_H */
Holds the sensor companding piecewise linear (PWL) structure.
Definition: nvmedia_isc.h:1257
struct NvMediaISCModuleConfig NvMediaISCModuleConfig
Holds the ISC Module ISP configuration.
int32_t dataLength
Holds the target device data length in bytes.
Definition: nvmedia_isc.h:523
Holds version information for the NvMedia ISC library.
Definition: nvmedia_isc.h:169
uint32_t baseRegAddress
Holds the address of the first register.
Definition: nvmedia_isc.h:1623
Defines the double-precision location of a point on a two-dimensional object.
Definition: nvmedia_core.h:158
NvMediaVersion libVersion
Holds library version information.
Definition: nvmedia_isc.h:171
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.
NvMediaStatus NvMediaISCRootDeviceGetSyncConfig(NvMediaISCRootDevice *device, float_t *freq, float_t *dutyRatio)
Gets the pulse width modulation (PWM) frequency and duty cycle.
Specifies LINK 3 power.
Definition: nvmedia_isc.h:331
#define NVMEDIA_ISC_MAX_FRAME_REPORT_BYTES
Maximum number of frame report bytes.
Definition: nvmedia_isc.h:129
NvMediaISCWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
Definition: nvmedia_isc.h:1450
uint8_t numSensorContexts
Holds the number of sensor contexts to activate.
Definition: nvmedia_isc.h:1365
NvMediaISCEmbeddedDataBuffer top
Definition: nvmedia_isc.h:1637
Holds the embedded data buffer structure.
Definition: nvmedia_isc.h:1621
uint32_t size
Holds the data size.
Definition: nvmedia_isc.h:1625
Specifies maximum possible exposure time values in seconds.
Definition: nvmedia_isc.h:1673
char sensorFuseId[NVMEDIA_ISC_MAX_FUSE_ID_LENGTH]
Holds the fuse ID attribute.
Definition: nvmedia_isc.h:1102
Holds the handle for an NvMediaISCDevice object.
Definition: nvmedia_isc.h:155
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
float_t max
Holds the sensor attribute's maximum value.
Definition: nvmedia_isc.h:1081
uint64_t frameSequenceNumber
Holds the sensor frame sequence number value.
Definition: nvmedia_isc.h:1334
Specifies i2c-2.
Definition: nvmedia_isc.h:220
NvMediaISCExposureMode
Defines Exposure mode.
Definition: nvmedia_isc.h:1575
NvMediaStatus NvMediaISCGetModuleConfig(NvMediaISCDevice *device, NvMediaISCModuleConfig *moduleConfig)
Gets the module ISP configuration.
NvMediaBool wbValid
Holds a flag which enables or disables the white balance gain block.
Definition: nvmedia_isc.h:1215
Holds the sensor control structure.
Definition: nvmedia_isc.h:1355
NvMediaBool expTimeValid
Holds a flag which enables or disables the exposure block.
Definition: nvmedia_isc.h:1186
Specifies sensitivity ratios for different exposures.
Definition: nvmedia_isc.h:1695
NvMediaISCFrameSeqNum frameSeqNumInfo
Holds parsed embedded data frame sequence number info for the captured frame.
Definition: nvmedia_isc.h:1477
Holds sensor exposure information.
Definition: nvmedia_isc.h:1182
Specifies exposure time step values in seconds.
Definition: nvmedia_isc.h:1681
const char * cameraModuleConfigPass2
Holds the camera-specific configuration string.
Definition: nvmedia_isc.h:1049
Specifies maximum possible gain values.
Definition: nvmedia_isc.h:1665
NvMediaISCFrameReport frameReportControl
Holds the sensor frame report value to be programmed.
Definition: nvmedia_isc.h:1383
struct NvMediaISCSensorControl NvMediaISCSensorControl
Holds the sensor control structure.
Specifies i2c-0.
Definition: nvmedia_isc.h:218
Specifies i2c-1.
Definition: nvmedia_isc.h:219
uint32_t numExposures
Holds the parsed embedded data frame number of exposures for the captured frame.
Definition: nvmedia_isc.h:1438
struct NvMediaISCExposureControl NvMediaISCExposureControl
Holds exposure control information.
NvMediaBool frameReportValid
Holds a flag which enables or disables frame report block.
Definition: nvmedia_isc.h:1238
NvMediaStatus NvMediaISCRootDevicePowerControl(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool powerOn)
Sets a power item's power status (on or off).
NvMediaISCCRC sensorCRCInfo
Holds the parsed embedded data sensor CRC info for the captured frame.
Definition: nvmedia_isc.h:1460
Specifies active number of exposures.
Definition: nvmedia_isc.h:1703
Specifies i2c-8.
Definition: nvmedia_isc.h:226
struct NvMediaISCWBGainControl::@36 wbGain[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds white balance for each exposure mode in R Gr Gb B order.
Specifies i2c-11.
Definition: nvmedia_isc.h:229
#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:1432
Holds NvMedia version information.
Definition: nvmedia_core.h:226
Specifies gain factor between the exposures.
Definition: nvmedia_isc.h:1690
Holds the sensor temperature structure.
Definition: nvmedia_isc.h:1280
NvMediaStatus NvMediaISCGetVersion(NvMediaVersion *version)
Gets version compatibility information for the NvMedia ISC library.
uint8_t numActiveExposures
Holds the number of active exposures attribute.
Definition: nvmedia_isc.h:1108
const char * cameraModuleConfigPass1
Holds the camera-specific configuration string.
Definition: nvmedia_isc.h:1043
char cameraModuleCfgName[128]
Holds the camera module name.
Definition: nvmedia_isc.h:1037
Specifies very short exposure mode.
Definition: nvmedia_isc.h:1581
uint32_t frameSequenceNumber
Holds parsed frame counter.
Definition: nvmedia_isc.h:1644
char sensorName[NVMEDIA_ISC_MAX_SENSOR_NAME_LENGTH]
Holds the name attribute.
Definition: nvmedia_isc.h:1092
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:1444
Specifies i2c-6.
Definition: nvmedia_isc.h:224
#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:1267
Specifies LINK 2 power.
Definition: nvmedia_isc.h:329
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:1375
Specifies long exposure mode.
Definition: nvmedia_isc.h:1577
NVIDIA Media Interface: Core
NvMediaISCAttrRange sensorGainRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor gain ranges for active exposures.
Definition: nvmedia_isc.h:1118
void * clientContext
Holds the client context.
Definition: nvmedia_isc.h:938
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
uint8_t numTemperatures
Holds the number of active temperatures.
Definition: nvmedia_isc.h:1290
uint32_t bufferSize
Holds the buffer size.
Definition: nvmedia_isc.h:1627
Holds the sensor CRC structure.
Definition: nvmedia_isc.h:1303
struct NvMediaISCExposure NvMediaISCExposure
Holds sensor exposure information.
NVIDIA Media Interface: Image Capture Processing
NvMediaStatus NvMediaISCSetSensorCharMode(NvMediaISCDevice *device, uint8_t expNo)
Set sensor to characterization mode.
Specifies a unique ID per instance of camera module.
Definition: nvmedia_isc.h:1657
Holds the range of a sensor attribute.
Definition: nvmedia_isc.h:1072
uint32_t lineLength
Holds the line length of an embedded chunk, in bytes.
Definition: nvmedia_isc.h:1488
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:1192
uint8_t * data
Holds the actual data.
Definition: nvmedia_isc.h:1629
Holds the ISC Module ISP configuration.
Definition: nvmedia_isc.h:1035
Specifies fine integration time values in seconds.
Definition: nvmedia_isc.h:1677
struct NvMediaISCEmbeddedDataChunk NvMediaISCEmbeddedDataChunk
NvMediaISCAttrRange sensorExpRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor exposure ranges for active exposures.
Definition: nvmedia_isc.h:1113
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:1493
char * deviceName
Holds the device name.
Definition: nvmedia_isc.h:519
Specifies minimum possible gain values.
Definition: nvmedia_isc.h:1661
#define NVMEDIA_ISC_MAX_SENSOR_CONTEXTS
Maximum number of sensor contexts.
Definition: nvmedia_isc.h:120
Holds device driver data.
Definition: nvmedia_isc.h:517
struct NvMediaISCEmbeddedData NvMediaISCEmbeddedData
Holds the embedded data structure.
struct NvMediaISCFrameReport NvMediaISCFrameReport
Holds the sensor report frame report structure.
float_t sensorTempCelsius[NVMEDIA_ISC_MAX_NUM_TEMPERATURES]
Holds the values of active sensor temperatures in degrees Celsius.
Definition: nvmedia_isc.h:1296
NvMediaISCAttrRange sensorWhiteBalanceRange[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the sensor white balance ranges for active exposures.
Definition: nvmedia_isc.h:1123
NvMediaISCRootDevice * NvMediaISCRootDeviceCreate(uint32_t portCfg)
Creates an NvMediaISCRootDevice object.
NvMediaStatus NvMediaISCRootDeviceWaitForError(NvMediaISCRootDevice *device)
Waits until an error condition is reported or NvMediaISCRootDeviceAbortWaitForError() is called...
float_t value[NVM_ISC_MAX_COLOR_COMPONENT]
Definition: nvmedia_isc.h:1226
Specifies i2c-10.
Definition: nvmedia_isc.h:228
NvMediaISC_I2CPort
Defines the I2C buses on the host hardware device.
Definition: nvmedia_isc.h:217
Specifies minimum possible exposure time values in seconds.
Definition: nvmedia_isc.h:1669
NvMediaISCTemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: nvmedia_isc.h:1471
Holds a pointer to a description of the target I2C device.
Definition: nvmedia_isc.h:936
uint8_t sensorframeReport[NVMEDIA_ISC_MAX_FRAME_REPORT_BYTES]
Holds the values of active frame report bytes.
Definition: nvmedia_isc.h:1250
uint32_t sensorCFA
Holds the CFA attribute.
Definition: nvmedia_isc.h:1097
NvMediaISCPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: nvmedia_isc.h:1455
struct NvMediaISCTemperature NvMediaISCTemperature
Holds the sensor temperature structure.
struct NvMediaISCWBGainControl NvMediaISCWBGainControl
Holds the white balance control structure.
struct NvMediaISCFrameSeqNum NvMediaISCFrameSeqNum
Holds the sensor frame sequence number structure.
Specifies i2c-4.
Definition: nvmedia_isc.h:222
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:1152
float_t min
Holds the sensor attribute's minimum value.
Definition: nvmedia_isc.h:1076
NvMediaBool tempValid
Holds a flag which enables or disables the sensor temperature block.
Definition: nvmedia_isc.h:1284
#define NVMEDIA_ISC_MAX_EXPOSURES
Maximum number of exposures.
Definition: nvmedia_isc.h:114
Holds the white balance control structure.
Definition: nvmedia_isc.h:1608
NvMediaStatus NvMediaISCRootDeviceGetPowerStatus(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool *powerStatus)
Gets a power item's power status (on or off).
float_t sensorGainFactor[NVMEDIA_ISC_MAX_EXPOSURES]
Holds the additional sensor gain factor between active exposures.
Definition: nvmedia_isc.h:1145
NvMediaBool pwlValid
Holds a flag which enables or disables the sensor PWL block.
Definition: nvmedia_isc.h:1261
NvMediaISCDevice * NvMediaISCDeviceCreate(NvMediaISCRootDevice *rootDevice, uint32_t *deviceAddressList, uint32_t numDevices, NvMediaISCDeviceDriver *deviceDriver, NvMediaISCAdvancedConfig *advancedConfig)
Creates an object that describes a device and returns a handle to the object.
NvMediaISCWBGainControl wbControl
Holds parsed WB gains in R Gr Gb B order.
Definition: nvmedia_isc.h:1642
struct NvMediaISCAttrRange NvMediaISCAttrRange
Holds the range of a sensor attribute.
NvMediaISCSensorAttrType
Defines ISC sensor attributes.
Definition: nvmedia_isc.h:1653
Specifies frames per second.
Definition: nvmedia_isc.h:1699
Specifies maximum possible HDR ratio value.
Definition: nvmedia_isc.h:1685
#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:1590
#define NVM_ISC_MAX_COLOR_COMPONENT
Maximum number of color components.
Definition: nvmedia_isc.h:117
Specifies i2c-3.
Definition: nvmedia_isc.h:221
#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:1307
NvMediaPointDouble kneePoints[NVMEDIA_ISC_MAX_PWL_KNEEPOINTS]
Holds the values of active PWL knee points.
Definition: nvmedia_isc.h:1273
Port SIMPULATOR (20)
Definition: nvmedia_isc.h:230
Specifies LINK 0 power.
Definition: nvmedia_isc.h:325
NvMediaISCExposureControl exposureControl
Holds parsed exposure control.
Definition: nvmedia_isc.h:1640
Specifies aggregator power.
Definition: nvmedia_isc.h:323
uint32_t computedCRC
Holds the frame CRC value computed from embedded data.
Definition: nvmedia_isc.h:1312
Specifies LINK 1 power.
Definition: nvmedia_isc.h:327
struct NvMediaISCExposureControl::@35 sensorGain[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds sensor gain for each exposure mode.
NvMediaISCPowerItems
Defines ISC power items, objects whose power can be turned on or off and queried with NvMediaISCRootD...
Definition: nvmedia_isc.h:321
NvMediaISCEmbeddedDataBuffer bottom
Definition: nvmedia_isc.h:1638
Holds the embedded data structure.
Definition: nvmedia_isc.h:1636
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.
struct NvMediaISCExposureControl::@34 exposureTime[NVMEDIA_ISC_EXPOSURE_MODE_MAX]
Holds exposure time for each exposure mode.
uint8_t numBytes
Holds the number of active frame report bytes.
Definition: nvmedia_isc.h:1244
Specifies i2c-5.
Definition: nvmedia_isc.h:223
Holds the sensor attributes.
Definition: nvmedia_isc.h:1088
void NvMediaISCRootDevice
An opaque handle for an NvMediaISCRootDevice object.
Definition: nvmedia_isc.h:236
Holds the sensor frame sequence number structure.
Definition: nvmedia_isc.h:1325
int32_t regLength
Holds the target device offset length in bytes.
Definition: nvmedia_isc.h:521
NvMediaStatus NvMediaISCRootDeviceEnableSync(NvMediaISCRootDevice *device, NvMediaBool enable)
Enables or disables pulse width modulation (PWM) for external synchronization.
NvMediaStatus NvMediaISCRootDeviceSetSyncConfig(NvMediaISCRootDevice *device, float_t freq, float_t dutyRatio)
Sets the pulse width modulation (PWM) frequency and duty cycle.
uint32_t embeddedCRC
Holds the frame CRC value parsed from embedded data.
Definition: nvmedia_isc.h:1317
float_t sensorGain[NVMEDIA_ISC_MAX_EXPOSURES]
Holds sensor a gain value for each active gain.
Definition: nvmedia_isc.h:1203
Specifies i2c-7.
Definition: nvmedia_isc.h:225
Holds the sensor report frame report structure.
Definition: nvmedia_isc.h:1234
NvMediaStatus NvMediaISCGetVersionInfo(NvMediaISCVersionInfo *versionInfo)
Returns the version information for the NvMedia ISC library.
Specifies the exposure mode count.
Definition: nvmedia_isc.h:1583
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:1329
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:1211
Specifies short exposure mode.
Definition: nvmedia_isc.h:1579
NvMediaBool gainValid
Holds a flag which enables or disables the sensor gain block.
Definition: nvmedia_isc.h:1197
Specifies i2c-9.
Definition: nvmedia_isc.h:227
NvMediaISCExposure exposureControl[NVMEDIA_ISC_MAX_SENSOR_CONTEXTS]
Holds the sensor exposure settings to set for each context.
Definition: nvmedia_isc.h:1370
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:156
NvMediaISCFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: nvmedia_isc.h:1465
struct NvMediaISCWhiteBalance::@33 wbGain[NVMEDIA_ISC_MAX_EXPOSURES]
Holds sensor white balance gain values for active exposures, in R Gr Gb B order.