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
Image Capture

Detailed Description

Captures uncompressed image data, writing the results to an NvMediaImage.

A specific NvMedia implementation may support capturing multiple types of uncompressed image data. However, NvMediaICP objects are able to capture only a specific type of uncompressed image data. This type must be specified during creation.

Data Structures

struct  NvMediaICPInputFormat
 Holds the capture input format. More...
 
struct  NvMediaICPSettings
 Holds image capture settings for the CSI format. More...
 
struct  NvMediaICPSettingsEx
 Holds the image capture settings for the CSI format per virtual group. More...
 
struct  NvMediaICPEx
 Holds an image capture object created by NvMediaICPCreateEx(). More...
 
struct  NvMediaICPErrorInfo
 Holds the capture error information populated by NvMediaICPGetErrorInfo(). More...
 

Macros

#define NVMEDIA_ICP_VERSION_MAJOR   4
 Major version number. More...
 
#define NVMEDIA_ICP_VERSION_MINOR   16
 Minor version number. More...
 
#define NVMEDIA_IMAGE_CAPTURE_TIMEOUT_INFINITE
 Defines an infinite timeout for NvMediaICPGetImageGroup(). More...
 
#define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS   4u
 Defines the maximum number of virtual groups. More...
 
#define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS   3u
 Defines the maximum number of virtual channels per virtual group. More...
 
#define NVMEDIA_ICP_HANDLER(icpEx, groupIdx)   (icpEx->icp[groupIdx].hIcp)
 A macro that gets an NvMediaICP handler from an NvMediaICPEx handler. More...
 
#define NVMEDIA_ICP_SETTINGS_HANDLER(icpSettingsEx, groupIdx, vcIdx)   (&icpSettingsEx.virtualGroups[groupIdx].virtualChannels[vcIdx].icpSettings)
 A macro that gets the NvMediaICPSettings handler from an NvMediaICPSettingsEx object. More...
 
#define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_)   NVMEDIA_ICP_##_type_##_ERROR_##_error_ = _value_##u,
 A macro that creates an enumerator in enum NvMediaICPErrorStatus. More...
 
#define NVMEDIA_MAX_ICP_FRAME_BUFFERS
 Maximum number of capture buffers. More...
 

Typedefs

typedef struct NvMediaICP NvMediaICP
 Holds an image capture object per virtual group. More...
 

Enumerations

enum  NvMediaICPInterfaceType {
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_B,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_AB,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_C,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_D,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_CD,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_E,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_F,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_EF,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_G,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_H,
  NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_GH
}
 Specifies the image capture interface type for the CSI interface. More...
 
enum  NvMediaICPInputFormatType {
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV444,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RGB888,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW6,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW7,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW8,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW10,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW14,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_1,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_2,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_3,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_4,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_5,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_6,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_7,
  NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_8
}
 Specifies the image capture input format type. More...
 
enum  NvMediaBitsPerPixel {
  NVMEDIA_BITS_PER_PIXEL_8 = 0,
  NVMEDIA_BITS_PER_PIXEL_10,
  NVMEDIA_BITS_PER_PIXEL_12,
  NVMEDIA_BITS_PER_PIXEL_14,
  NVMEDIA_BITS_PER_PIXEL_16,
  NVMEDIA_BITS_PER_PIXEL_20
}
 Specifies bits per pixel. More...
 
enum  NvMediaICPCsiPhyMode {
  NVMEDIA_ICP_CSI_DPHY_MODE = 0,
  NVMEDIA_ICP_CSI_CPHY_MODE
}
 Specifies the CSI phy mode. More...
 
enum  NvMediaICPCSIErrorType {
  NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_CLK_LANE_CTRL_ERR = (1 << 0),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_SB_ERR0 = (1 << 1),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_MB_ERR0 = (1 << 2),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_CTRL_ERR0 = (1 << 3),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_RXFIFO_FULL_ERR0 = (1 << 4),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_SB_ERR1 = (1 << 5),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_MB_ERR1 = (1 << 6),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_CTRL_ERR1 = (1 << 7),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_RXFIFO_FULL_ERR1 = (1 << 8),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_LANE0 = (1 << 9),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_LANE1 = (1 << 10),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_CTRL = (1 << 11),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_LANE_ALIGN_ERR = (1 << 12),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_ESC_MODE_SYNC_ERR0 = (1 << 13),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_ESC_MODE_SYNC_ERR1 = (1 << 14),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_2LSB_ERR0 = (1 << 15),
  NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_2LSB_ERR1 = (1 << 16),
  NVMEDIA_ICP_CSI_ERROR_TYPE_NOVC_PH_ECC_MULTI_BIT_ERR = (1 << 17),
  NVMEDIA_ICP_CSI_ERROR_TYPE_NOVC_PH_BOTH_CRC_ERR = (1 << 18),
  NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PPFSM_TIMEOUT = (1 << 19),
  NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PH_ECC_SINGLE_BIT_ERR = (1 << 20),
  NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PD_CRC_ERR = (1 << 21),
  NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PD_WC_SHORT_ERR = (1 << 22),
  NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PH_SINGLE_CRC_ERR = (1 << 23)
}
 Defines error status codes that specify the meanings of the "masked" bits in NvMediaICPSettings::csiErrorMask, and the "non-correctable" bits in NvMediaICPSettings::csiErrorType. More...
 
enum  NvMediaICPErrorStatus {
  NVMEDIA_ICP_ERROR_STATUS_NONE,
  NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTFRAME,
  NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTSTREAM,
  NVMEDIA_ICP_ERROR_STATUS_PIXEL_FAULT,
  NVMEDIA_ICP_ERROR_STATUS_FRAME_FAULT,
  NVMEDIA_ICP_ERROR_STATUS_MEMORYWRITE,
  NVMEDIA_ICP_ERROR_STATUS_FATAL
}
 Defines error status codes. More...
 
enum  NvMediaICPCsiInputFrameError
 
enum  NvMediaICPCsiInputStreamError
 
enum  NvMediaICPPixelFaultError
 
enum  NvMediaICPFrameFaultError
 
enum  NvMediaICPMemoryWriteError
 

Functions

NvMediaStatus NvMediaICPGetVersion (NvMediaVersion *version)
 Checks version compatibility for the NvMedia ICP library. More...
 
NvMediaICPExNvMediaICPCreateEx (NvMediaICPSettingsEx *settings)
 Creates an image capture object used to capture various formats of input into an NvMediaImage. More...
 
void NvMediaICPDestroyEx (NvMediaICPEx *icpEx)
 Destroys an image capture object created by NvMediaICPCreateEx(). More...
 
NvMediaStatus NvMediaICPRegisterImageGroup (NvMediaICP *icp, NvMediaImageGroup *imageGrp)
 Maps a frame to the capture engine. More...
 
NvMediaStatus NvMediaICPFeedImageGroup (NvMediaICP *icp, NvMediaImageGroup *imageGrp, unsigned int millisecondTimeout)
 Adds an image group to the image capture pool. More...
 
NvMediaStatus NvMediaICPStop (NvMediaICP *icp)
 Stops the hardware engine from capturing the image. More...
 
NvMediaStatus NvMediaICPResume (NvMediaICP *icp)
 Resumes a stopped image capture operation. More...
 
NvMediaStatus NvMediaICPGetImageGroup (NvMediaICP *icp, uint32_t millisecondTimeout, NvMediaImageGroup **imageGrp)
 Gets a captured image group with frame status. More...
 
NvMediaStatus NvMediaICPUnregisterImageGroup (NvMediaICP *icp, NvMediaImageGroup *imageGrp)
 Unmaps a frame from the capture engine. More...
 
NvMediaStatus NvMediaICPReleaseImageGroup (NvMediaICP *icp, NvMediaImageGroup **imageGrp)
 Gets an image group from the internal pool that the client previously supplied with NvMediaICPFeedImageGroup(). More...
 
NvMediaStatus NvMediaICPGetErrorInfo (NvMediaICP *icp, NvMediaICPErrorInfo *icpErrorInfo)
 Gets capture error information. More...
 
NvMediaStatus NvMediaICPWaitForSoF (NvMediaICP *icp) NVM_DEPRECATED_MSG("Use NvMediaICPGetSOFNvSciSyncFence")
 Waits for next SoF (Start of Frame). More...
 

Macro Definition Documentation

#define NVMEDIA_ICP_ERROR (   _type_,
  _error_,
  _value_,
  _desc_ 
)    NVMEDIA_ICP_##_type_##_ERROR_##_error_ = _value_##u,

A macro that creates an enumerator in enum NvMediaICPErrorStatus.

Parameters
_type_The hardware module that originated the error: CSI or VI.
_error_A symbolic code that represents the error; used to construct the enumerator's symbol.
_value_A numeric value that represents nth bit field.
_desc_A string that describes the error.

Definition at line 82 of file nvmedia_icp.h.

#define NVMEDIA_ICP_HANDLER (   icpEx,
  groupIdx 
)    (icpEx->icp[groupIdx].hIcp)

A macro that gets an NvMediaICP handler from an NvMediaICPEx handler.

Parameters
[in]icpExAn NvMediaICPEx handler returned by NvMediaICPCreateEx().
[in]groupIdxThe index of the capture group instance.

Definition at line 63 of file nvmedia_icp.h.

#define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS   3u

Defines the maximum number of virtual channels per virtual group.

Definition at line 56 of file nvmedia_icp.h.

#define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS   4u

Defines the maximum number of virtual groups.

Definition at line 53 of file nvmedia_icp.h.

#define NVMEDIA_ICP_SETTINGS_HANDLER (   icpSettingsEx,
  groupIdx,
  vcIdx 
)    (&icpSettingsEx.virtualGroups[groupIdx].virtualChannels[vcIdx].icpSettings)

A macro that gets the NvMediaICPSettings handler from an NvMediaICPSettingsEx object.

Parameters
[in]icpSettingsExAn NvMediaICPSettingsEx object passed to NvMediaICPCreateEx().
[in]groupIdxThe index of the capture group instance.
[in]vcIdxThe index of the capture virtual channel instance.

Definition at line 72 of file nvmedia_icp.h.

#define NVMEDIA_ICP_VERSION_MAJOR   4

Major version number.

Definition at line 42 of file nvmedia_icp.h.

#define NVMEDIA_ICP_VERSION_MINOR   16

Minor version number.

Definition at line 44 of file nvmedia_icp.h.

#define NVMEDIA_IMAGE_CAPTURE_TIMEOUT_INFINITE

Defines an infinite timeout for NvMediaICPGetImageGroup().

Definition at line 50 of file nvmedia_icp.h.

#define NVMEDIA_MAX_ICP_FRAME_BUFFERS

Maximum number of capture buffers.

Definition at line 89 of file nvmedia_icp.h.

Typedef Documentation

typedef struct NvMediaICP NvMediaICP

Holds an image capture object per virtual group.

Definition at line 379 of file nvmedia_icp.h.

Enumeration Type Documentation

Specifies bits per pixel.

Enumerator
NVMEDIA_BITS_PER_PIXEL_8 

Specifies 8 bits per pixel.

NVMEDIA_BITS_PER_PIXEL_10 

Specifies 10 bits per pixel.

NVMEDIA_BITS_PER_PIXEL_12 

Specifies 12 bits per pixel.

NVMEDIA_BITS_PER_PIXEL_14 

Specifies 14 bits per pixel.

NVMEDIA_BITS_PER_PIXEL_16 

Specifies 16 bits per pixel.

NVMEDIA_BITS_PER_PIXEL_20 

Specifies 20 bits per pixel.

Definition at line 170 of file nvmedia_icp.h.

Defines error status codes that specify the meanings of the "masked" bits in NvMediaICPSettings::csiErrorMask, and the "non-correctable" bits in NvMediaICPSettings::csiErrorType.

Enumerator
NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_CLK_LANE_CTRL_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_SB_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_MB_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_CTRL_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_RXFIFO_FULL_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_SB_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_MB_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_CTRL_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_RXFIFO_FULL_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_LANE0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_LANE1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_DESKEW_CALIB_ERR_CTRL 
NVMEDIA_ICP_CSI_ERROR_TYPE_DPHY_LANE_ALIGN_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_ESC_MODE_SYNC_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_ESC_MODE_SYNC_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_2LSB_ERR0 
NVMEDIA_ICP_CSI_ERROR_TYPE_DATA_LANE_SOT_2LSB_ERR1 
NVMEDIA_ICP_CSI_ERROR_TYPE_NOVC_PH_ECC_MULTI_BIT_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_NOVC_PH_BOTH_CRC_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PPFSM_TIMEOUT 
NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PH_ECC_SINGLE_BIT_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PD_CRC_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PD_WC_SHORT_ERR 
NVMEDIA_ICP_CSI_ERROR_TYPE_VC_PH_SINGLE_CRC_ERR 

Definition at line 297 of file nvmedia_icp.h.

Definition at line 476 of file nvmedia_icp.h.

Definition at line 491 of file nvmedia_icp.h.

Specifies the CSI phy mode.

Enumerator
NVMEDIA_ICP_CSI_DPHY_MODE 
NVMEDIA_ICP_CSI_CPHY_MODE 

Definition at line 199 of file nvmedia_icp.h.

Defines error status codes.

Enumerators are defined by the NVMEDIA_ICP_ERROR macro. In the following table, Module, Type, and Code represent macro parameters. For example:

%NVMEDIA_ICP_ERROR(CSI, FS_FAULT, 6, "A frame start occurred before previous frame end")


Module Type Code Manifest Constant Description
n/a NONE 0 NVMEDIA_ICP_CAPTURE_ERROR_NONE No error occurred, or error could not be translated.
CSI mux
frame errors
CSI FE_CSI_FAULT 6 NVMEDIA_ICP_CSI_ERROR_FE_CSI_FAULT NVCSI fault received at frame end.
CSI FS_FAULT 7 NVMEDIA_ICP_CSI_ERROR_FS_FAULT Frame start occurred before previous frame end.
CSI FE_FRAMEID_FAULT 8 NVMEDIA_ICP_CSI_ERROR_FE_FRAMEID_FAULT Frame ID for FE packet does not match that of FS packet.
CSI FE_FORCED_FAULT 9 NVMEDIA_ICP_CSI_ERROR_FE_FORCED_FAULT Frame end was injected by the CSI hardware.
CSI PXL_ENABLE_FAULT 10 NVMEDIA_ICP_CSI_ERROR_PXL_ENABLE_FAULT Illegal pixel encoding detected.
CSI PP_FSM_TIMEOUT 20 NVMEDIA_ICP_CSI_ERROR_PP_FSM_TIMEOUT Pixel Parser FSM timeout.
CSI PP_ECC_DPHY 21 NVMEDIA_ICP_CSI_ERROR_PP_ECC_DPHY Single bit error correction code in DPHY packet header.
CSI PAYLOAD_CRC 22 NVMEDIA_ICP_CSI_ERROR_PAYLOAD_CRC Packet payload CRC check failure.
CSI LINE_SHORT 23 NVMEDIA_ICP_CSI_ERROR_LINE_SHORT Packet payload is less than word count in packet header.
CSI PH_CRC_CPHY 24 NVMEDIA_ICP_CSI_ERROR_PH_CRC_CPHY One of the CPHY packet headers contained a CRC error.
CSI EMB_CRC 25 NVMEDIA_ICP_CSI_ERROR_EMB_CRC Embedded line CRC error.
CSI mux
stream errors
CSI SPURIOUS_DATA 0 NVMEDIA_ICP_CSI_ERROR_SPURIOUS_DATA FIFO data was found in the gap between frame start and frame end.
CSI FIFO_OVERFLOW 1 NVMEDIA_ICP_CSI_ERROR_FIFO_OVERFLOW An overflow occurred in a stream FIFO.
CSI FIFO_LOF 2 NVMEDIA_ICP_CSI_ERROR_FIFO_LOF A loss of frame overflow occurred.
CSI FIFO_BADPKT 3 NVMEDIA_ICP_CSI_ERROR_FIFO_BADPKT An unknown packet type has been received on a stream.
VI channel
selection faults
VI FS_TIMEOUT 0 NVMEDIA_ICP_VI_ERROR_FS_TIMEOUT Frame start timeout error.
VI FE_TIMEOUT 1 NVMEDIA_ICP_VI_ERROR_FE_TIMEOUT Frame end timeout error.
VI PXL_MISSING_LE 5 NVMEDIA_ICP_VI_ERROR_PXL_MISSING_LE Two LS packets detected without an LE packet between them.
VI PXL_RUNAWAY 6 NVMEDIA_ICP_VI_ERROR_PXL_RUNAWAY More lines received than expected.
VI PXL_SPURIOUS 7 NVMEDIA_ICP_VI_ERROR_PXL_SPURIOUS Pixel data packet was received without an LS packet first.
VI PXL_LONG_LINE 8 NVMEDIA_ICP_VI_ERROR_PXL_LONG_LINE More pixels received than expected in a line.
VI PXL_SHORT_LINE 9 NVMEDIA_ICP_VI_ERROR_PXL_SHORT_LINE Fewer pixels received than expected in a line.
VI EMB_MISSING_LE 10 NVMEDIA_ICP_VI_ERROR_EMB_MISSING_LE Two LS packets detected without an LE packet between them in emb data.
VI EMB_RUNAWAY 11 NVMEDIA_ICP_VI_ERROR_EMB_RUNAWAY More lines received than expected in emb data.
VI EMB_SPURIOUS 12 NVMEDIA_ICP_VI_ERROR_EMB_SPURIOUS Pixel data packet received without an LS packet first in emb data.
VI EMB_LONG_LINE 13 NVMEDIA_ICP_VI_ERROR_EMB_LONG_LINE More pixels received than expected in a line in emb data.
VI EMB_INFRINGE 14 NVMEDIA_ICP_VI_ERROR_EMB_INFRINGE Embedded data received on a frame where no embedded data was expected.
VI DTYPE_MISMATCH 15 NVMEDIA_ICP_VI_ERROR_DTYPE_MISMATCH Pixel datatype changed in the middle of a line.
VI FORCED_FE 16 NVMEDIA_ICP_VI_ERROR_FORCED_FE FE didn't arrive within expected frame duration, capture engine injected FE.
VI PXL_INCOMPLETE 17 NVMEDIA_ICP_VI_ERROR_PXL_INCOMPLETE, Fewer lines of pixels in a frame were received than expected.
VI EMB_INCOMPLETE 18 NVMEDIA_ICP_VI_ERROR_EMB_INCOMPLETE, Fewer lines of emb data in a frame were received than expected.
VI PFSD_FAULT 19 NVMEDIA_ICP_VI_ERROR_PFSD_FAULT, Permanent Fault Software Diagnostic was detected from engine status.
VI channel
frame faults
VI SHORT_FRAME 0 NVMEDIA_ICP_VI_ERROR_SHORT_FRAME FE packet arrived before the normal number of pixels appeared.
VI SHORT_EMB 1 NVMEDIA_ICP_VI_ERROR_SHORT_EMB FE of EMB Data packet arrived before the normal number of pixels appeared.
VI PFSD_FAULT_NOTIFIED 2 NVMEDIA_ICP_VI_ERROR_PFSD_FAULT_NOTIFIED Permanent Fault Software Diagnostic was detected between frames.
VI FAULT_FE 3 NVMEDIA_ICP_VI_ERROR_FAULT_FE FE was inserted due to a stream reset or early abort.
VI NOMATCH 4 NVMEDIA_ICP_VI_ERROR_NOMATCH CSI packets were discarded due to no matched capture channels.
VI COLLISION 5 NVMEDIA_ICP_VI_ERROR_COLLISION An FS packet matched a channel which was not finished processing a previous matching frame.
VI LOAD_FRAMED 6 NVMEDIA_ICP_VI_ERROR_LOAD_FRAMED A LOAD command was received for a channel that was currently in a frame.
VI memory write
faults
VI PACKET_OVERFLOW 0 NVMEDIA_ICP_VI_ERROR_PACKET_OVERFLOW The FIFO for a surface packer overflowed.
VI FRAME_TRUNCATED 1 NVMEDIA_ICP_VI_ERROR_FRAME_TRUNCATED A packer dropped a partial frame.
VI FRAME_TOSSED 2 NVMEDIA_ICP_VI_ERROR_FRAME_TOSSED A packer dropped an entire frame.

Specifies top-level image capture error types.

The error bits represented by the NvMediaICPCsiInput... enums provide additional detail about individual errors. For example, the NvMediaICPCsiInputStreamError error bits provide additional detail about the NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTFRAME error.

Enumerator
NVMEDIA_ICP_ERROR_STATUS_NONE 
NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTFRAME 
NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTSTREAM 
NVMEDIA_ICP_ERROR_STATUS_PIXEL_FAULT 
NVMEDIA_ICP_ERROR_STATUS_FRAME_FAULT 
NVMEDIA_ICP_ERROR_STATUS_MEMORYWRITE 
NVMEDIA_ICP_ERROR_STATUS_FATAL 

Definition at line 466 of file nvmedia_icp.h.

Definition at line 521 of file nvmedia_icp.h.

Specifies the image capture input format type.

Enumerator
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422 

Specifies YUV 4:2:2 8 bits.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10 

Specifies YUV 4:2:2 10 bits.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV444 

Specifies YUV 4:4:4.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RGB888 

Specifies RGBA.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW6 

Specifies RAW 6.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW7 

Specifies RAW 7.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW8 

Specifies RAW 8.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW10 

Specifies RAW 10.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12 

Specifies RAW 12.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW14 

Specifies RAW 14.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16 

Specifies RAW 16.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20 

Specifies RAW 20.

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_1 

Specifies User defined 1 (0x30).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_2 

Specifies User defined 2 (0x31).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_3 

Specifies User defined 3 (0x32).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_4 

Specifies User defined 4 (0x33).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_5 

Specifies User defined 5 (0x34).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_6 

Specifies User defined 6 (0x35).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_7 

Specifies User defined 7 (0x36).

NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_8 

Specifies User defined 8 (0x37).

Definition at line 124 of file nvmedia_icp.h.

Specifies the image capture interface type for the CSI interface.

Enumerator
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A 

Specifies CSI port A.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_B 

Specifies CSI port B.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_AB 

Specifies CSI port AB.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_C 

Specifies CSI port C.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_D 

Specifies CSI port D.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_CD 

Specifies CSI port CD.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_E 

Specifies CSI port E.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_F 

Specifies CSI port F.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_EF 

Specifies CSI port EF.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_G 

Specifies CSI port G.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_H 

Specifies CSI port H.

NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_GH 

Specifies CSI port GH.

Definition at line 94 of file nvmedia_icp.h.

Definition at line 532 of file nvmedia_icp.h.

Definition at line 500 of file nvmedia_icp.h.

Function Documentation

NvMediaICPEx* NvMediaICPCreateEx ( NvMediaICPSettingsEx settings)

Creates an image capture object used to capture various formats of input into an NvMediaImage.

The supported surfaces must be obtained by NvMediaSurfaceFormatGetType() with:

void NvMediaICPDestroyEx ( NvMediaICPEx icpEx)

Destroys an image capture object created by NvMediaICPCreateEx().

Parameters
[in]icpExA pointer to the image capture object to be destroyed.
NvMediaStatus NvMediaICPFeedImageGroup ( NvMediaICP icp,
NvMediaImageGroup imageGrp,
unsigned int  millisecondTimeout 
)

Adds an image group to the image capture pool.

The pool size is determined by NVMEDIA_MAX_ICP_FRAME_BUFFERS.

Parameters
[in]icpThe image capture object to be used.
[in]imageGrpThe NvMedia image group to be added to the pool.
[in]millisecondTimeoutA timeout in milliseconds. Represents time elapsed from the VI hardware start of processing the capture request to the time when a frame start occurs. It helps catch frame errors early, before the capture completion timeout.

Take care when programming the frame start timeout for the first frame, for which the time required to set up the sensor to start streaming must be included.
Return values
NVMEDIA_STATUS_OKindicates that the operation was successful.
NVMEDIA_STATUS_TIMED_OUTindicates that the operation timed out.
NVMEDIA_STATUS_ERRORindicates any other error.
NvMediaStatus NvMediaICPGetErrorInfo ( NvMediaICP icp,
NvMediaICPErrorInfo icpErrorInfo 
)

Gets capture error information.

This function provides capture error details such as CSI stream ID, frame ID, and error status. You can use this information to determine a suitable response to a CSI capture error.

Parameters
[in]icpA pointer to the image capture object to be used.
[out]icpErrorInfoA pointer to the structure where information is to be put.
Return values
NVMEDIA_STATUS_OKindicates that the operation was successful.
NVMEDIA_STATUS_BAD_PARAMETERindicates that icp or icpErrorInfo was NULL, and thus no error information is returned.
NvMediaStatus NvMediaICPGetImageGroup ( NvMediaICP icp,
uint32_t  millisecondTimeout,
NvMediaImageGroup **  imageGrp 
)

Gets a captured image group with frame status.

This function blocks until a frame is available, or until a timeout occurs.

Parameters
[in]icpA pointer to the image capture object to be used.
[in]millisecondTimeoutTimeout in milliseconds. To block without a timeout, specify NVMEDIA_IMAGE_CAPTURE_TIMEOUT_INFINITE.
[in,out]imageGrpAn indirect pointer to the NvMedia image group that is ready for use.
Return values
NVMEDIA_STATUS_OKindicates that the image is valid.
NVMEDIA_STATUS_NONE_PENDINGindicates that image is NULL, there is no fed frame, or the internal pool is empty.
NVMEDIA_STATUS_TIMED_OUTindicates that image is NULL because the frame is not ready for use.
NVMEDIA_STATUS_ERRORindicates that image is NULL because the hardware engine has stopped trying to capture images.
NvMediaStatus NvMediaICPGetVersion ( NvMediaVersion version)

Checks version compatibility for the NvMedia ICP library.

Parameters
[in]versionA pointer to a version information structure that describes ICP versions compatible with the client.
Return values
NVMEDIA_STATUS_OKindicates that the ICP library is compatible with the client.
NVMEDIA_STATUS_BAD_PARAMETERindicates that version is invalid.
NVMEDIA_STATUS_INCOMPATIBLE_VERSIONindicates that the ICP library is not compatible with the client.
NvMediaStatus NvMediaICPRegisterImageGroup ( NvMediaICP icp,
NvMediaImageGroup imageGrp 
)

Maps a frame to the capture engine.

Parameters
[in]icpA pointer to the image capture object to be used.
[in]imageGrpA pointer to the NvMedia image group to be mapped to the capture engine.
Returns
A status code; NVMEDIA_STATUS_OK if the operation was successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaStatus NvMediaICPReleaseImageGroup ( NvMediaICP icp,
NvMediaImageGroup **  imageGrp 
)

Gets an image group from the internal pool that the client previously supplied with NvMediaICPFeedImageGroup().

After the hardware engine abandons a capture, call this function repeatedly until it returns NVMEDIA_STATUS_ERROR.

Parameters
[in]icpA pointer to the image capture object to be used.
[in,out]imageGrpThe image group that was fed from user but hardware gives up to capture.
Return values
NVMEDIA_STATUS_OKindicates that the function has returned the image group that the user fed.
NVMEDIA_STATUS_ERRORindicates that an error occurred while returning the image group.
NVMEDIA_STATUS_NONE_PENDINGindicates that there is nothing to return.
NvMediaStatus NvMediaICPResume ( NvMediaICP icp)

Resumes a stopped image capture operation.

Parameters
[in]icpA pointer to the image capture object to be used.
Return values
NVMEDIA_STATUS_OKindicates that the operation was successful.
NVMEDIA_STATUS_BAD_PARAMETERindicates that icp was NULL.
NVMEDIA_STATUS_ERRORindicates that the capture engine was not stopped.
NvMediaStatus NvMediaICPStop ( NvMediaICP icp)

Stops the hardware engine from capturing the image.

To restart image capture:

  1. Call NvMediaICPReleaseFrame().
  2. Call NvMediaICPResume().
Parameters
[in]icpA pointer to the image capture object to be used.
Return values
NVMEDIA_STATUS_OKindicates that the operation was successful.
NVMEDIA_STATUS_BAD_PARAMETERindicates that icp is NULL.
NVMEDIA_STATUS_ERRORindicates that the image capture pool is not empty yet.
NvMediaStatus NvMediaICPUnregisterImageGroup ( NvMediaICP icp,
NvMediaImageGroup imageGrp 
)

Unmaps a frame from the capture engine.

Parameters
[in]icpA pointer to the image capture object to be used.
[in]imageGrpA pointer to the NvMedia image group to be unmapped.
Returns
A status code; NVMEDIA_STATUS_OK if the operation was successful, or NVMEDIA_STATUS_ERROR otherwise.
NvMediaStatus NvMediaICPWaitForSoF ( NvMediaICP icp)

Waits for next SoF (Start of Frame).

The function blocks until it receives the next SoF event.

Deprecated:
Use NvMediaICPGetSOFNvSciSyncFence instead.
Parameters
[in]icpA pointer to the image capture object to be used.
Return values
NVMEDIA_STATUS_OKindicates that a SoF has been received.
NVMEDIA_STATUS_BAD_PARAMETERindicates that icp was NULL.
NVMEDIA_STATUS_NONE_PENDINGindicates that there was no fed frame, and so the internal capture pool was empty.
NVMEDIA_STATUS_ERRORindicates that another error occurred while the function was waiting for SoF.