42 #define NVMEDIA_ICP_VERSION_MAJOR 4
44 #define NVMEDIA_ICP_VERSION_MINOR 19
50 #define NVMEDIA_IMAGE_CAPTURE_TIMEOUT_INFINITE (0xFFFFFFFFu)
53 #define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS 4u
56 #define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS 3u
63 #define NVMEDIA_ICP_HANDLER(icpEx, groupIdx) (icpEx->icp[groupIdx].hIcp)
72 #define NVMEDIA_ICP_SETTINGS_HANDLER(icpSettingsEx, groupIdx, vcIdx) \
73 (&icpSettingsEx.virtualGroups[groupIdx].virtualChannels[vcIdx].icpSettings)
82 #define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_) \
83 NVMEDIA_ICP_##_type_##_ERROR_##_error_ = _value_##u,
89 #define NVMEDIA_MAX_ICP_FRAME_BUFFERS 32u
405 NVMEDIA_ICP_ERROR(CSI, FS_FAULT, 7,
"A frame start occurred before previous frame end")
406 NVMEDIA_ICP_ERROR(CSI, FE_FORCED_FAULT, 8,
"A frame end was injected by the CSI hardware")
407 NVMEDIA_ICP_ERROR(CSI, FE_FRAMEID_FAULT, 9,
"Frame ID for FE packet does not match that of FS packet")
408 NVMEDIA_ICP_ERROR(CSI, PXL_ENABLE_FAULT , 10,
"An illegal pixel encoding has been detected")
410 NVMEDIA_ICP_ERROR(CSI, PH_ECC_DPHY, 21,
"Single bit error correction code in DPHY packet header")
412 NVMEDIA_ICP_ERROR(CSI, LINE_SHORT, 23,
"Packet Payload is less than word count in packet header")
413 NVMEDIA_ICP_ERROR(CSI, PH_CRC_CPHY, 24,
"One of the CPHY packet headers CRC error")
419 NVMEDIA_ICP_ERROR(CSI, SPURIOUS_DATA, 0,
"FIFO data was found in the gap between frame start and frame end")
423 NVMEDIA_ICP_ERROR(CSI, FIFO_OVERFLOW, 1,
"An overflow occurred in a stream FIFO")
425 NVMEDIA_ICP_ERROR(CSI, FIFO_BADPKT, 3,
"An unknown packet type has been received on a stream")
432 NVMEDIA_ICP_ERROR(VI, PXL_MISSING_LE, 5,
"Two LS packets were detected without a LE packet between them")
434 NVMEDIA_ICP_ERROR(VI, PXL_SPURIOUS, 7,
"A pixel data packet was received without a LS packet first")
435 NVMEDIA_ICP_ERROR(VI, PXL_LONG_LINE, 8,
"More pixels were received than expected in a line")
436 NVMEDIA_ICP_ERROR(VI, PXL_SHORT_LINE, 9,
"Fewer pixels were received than expected in a line")
437 NVMEDIA_ICP_ERROR(VI, EMB_MISSING_LE, 10,
"Two LS packets were detected without a LE packet between them in emb data")
438 NVMEDIA_ICP_ERROR(VI, EMB_RUNAWAY, 11,
"More lines were received than expected in emb data")
439 NVMEDIA_ICP_ERROR(VI, EMB_SPURIOUS, 12,
"A pixel data packet was received without a LS packet first in emb data")
440 NVMEDIA_ICP_ERROR(VI, EMB_LONG_LINE, 13,
"More pixels were received than expected in a line in emb data")
441 NVMEDIA_ICP_ERROR(VI, EMB_INFRINGE, 14,
"Embedded data was received on a frame where no embedded data was expected")
442 NVMEDIA_ICP_ERROR(VI, DTYPE_MISMATCH, 15,
"The pixel datatype changed in the middle of the line")
443 NVMEDIA_ICP_ERROR(VI, FORCED_FE, 16,
"FE didn't arrive within expected frame duration, capture engine injected FE")
444 NVMEDIA_ICP_ERROR(VI, PXL_INCOMPLETE, 17,
"Fewer lines of pixels in a frame were received than expected")
445 NVMEDIA_ICP_ERROR(VI, EMB_INCOMPLETE, 18,
"Fewer lines of emb data in a frame were received than expected")
446 NVMEDIA_ICP_ERROR(VI, PFSD_FAULT, 19,
"Permanent Fault Software Diagnostic is detected from engine status")
451 NVMEDIA_ICP_ERROR(VI, SHORT_FRAME, 0,
"FE packet arrived before the normal number of pixels has appeared ")
452 NVMEDIA_ICP_ERROR(VI, SHORT_EMB, 1,
"FE of EMB Data packet arrived before the normal number of pixels has appeared ")
453 NVMEDIA_ICP_ERROR(VI, PFSD_FAULT_NOTIFED, 2,
"Permanent Fault Software Diagnostic is detected between frames")
454 NVMEDIA_ICP_ERROR(VI, FAULT_FE, 3,
"FE is inserted due to a stream reset or early abort")
455 NVMEDIA_ICP_ERROR(VI, NOMATCH, 4,
"CSI packets are discarded due to no matched capture channels")
456 NVMEDIA_ICP_ERROR(VI, COLLISION, 5,
"An FS packet matches a channel which is not done processing a previously matching frame")
457 NVMEDIA_ICP_ERROR(VI, LOAD_FRAMED, 6,
"A LOAD command is received for a channel while that channel is currently in a frame")
462 NVMEDIA_ICP_ERROR(VI, PACKET_OVERFLOW, 0,
"The FIFO for a surface packer has overflowed")
463 NVMEDIA_ICP_ERROR(VI, FRAME_TRUNCATED, 1,
"A packer has dropped a partial frame")
588 unsigned int millisecondTimeout
612 uint32_t millisecondTimeout,
Specifies 20 bits per pixel.
NvMediaBitsPerPixel
Specifies bits per pixel.
NvMediaICPInterfaceType
Specifies the image capture interface type for the CSI interface.
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
NvMediaStatus NvMediaICPFeedImageGroup(NvMediaICP *icp, NvMediaImageGroup *imageGrp, unsigned int millisecondTimeout)
Adds an image group to the image capture pool.
Specifies User defined 6 (0x35).
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Specifies User defined 4 (0x33).
Specifies User defined 3 (0x32).
NvMediaStatus NvMediaICPGetImageGroup(NvMediaICP *icp, uint32_t millisecondTimeout, NvMediaImageGroup **imageGrp)
Gets a captured image group with frame status.
Specifies User defined 5 (0x34).
struct NvMediaICP NvMediaICP
Holds an image capture object per virtual group.
#define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS
Defines the maximum number of virtual channels per virtual group.
Specifies User defined 7 (0x36).
Specifies YUV 4:2:2 8 bits.
Specifies 14 bits per pixel.
#define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS
Defines the maximum number of virtual groups.
NvMediaICPEx * NvMediaICPCreateEx(NvMediaICPSettingsEx *settings)
Creates an image capture object used to capture various formats of input into an NvMediaImage.
Specifies 10 bits per pixel.
NvMediaStatus NvMediaICPReleaseImageGroup(NvMediaICP *icp, NvMediaImageGroup **imageGrp)
Gets an image group from the internal pool that the client previously supplied with NvMediaICPFeedIma...
NvMediaStatus
Defines all possible error codes.
NvMediaStatus NvMediaICPRegisterImageGroup(NvMediaICP *icp, NvMediaImageGroup *imageGrp)
Maps an image group to the capture engine.
Specifies that CSI is in CPHY mode.
Specifies YUV 4:2:2 10 bits.
NvMediaICPPixelFaultError
NvMediaStatus NvMediaICPGetErrorInfo(NvMediaICP *icp, NvMediaICPErrorInfo *icpErrorInfo)
Gets capture error information.
NvMediaICPCsiInputFrameError
Specifies User defined 8 (0x37).
NvMediaICPFrameFaultError
Specifies 16 bits per pixel.
NvMediaICPInputFormatType
Specifies the image capture input format type.
Specifies 8 bits per pixel.
NvMediaICPErrorStatus
Defines error status codes.
Specifies that CSI is in DPHY mode.
NvMediaStatus NvMediaICPUnregisterImageGroup(NvMediaICP *icp, NvMediaImageGroup *imageGrp)
Unmaps a frame from the capture engine.
NvMediaICPCsiPhyMode
Specifies the CSI phy mode.
Specifies User defined 1 (0x30).
Specifies User defined 2 (0x31).
NvMediaICPCsiInputStreamError
Specifies 12 bits per pixel.
NvMediaStatus NvMediaICPGetVersion(NvMediaVersion *version)
Gets the version of the NvMedia ICP library.
#define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_)
A macro that creates an enumerator in enum NvMediaICPErrorStatus.
NvMediaICPMemoryWriteError
void NvMediaICPDestroyEx(NvMediaICPEx *icpEx)
Destroys an image capture object created by NvMediaICPCreateEx().