NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.0 Release
For Test and Development only
nvmedia_icp.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-2020, 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_ICP_H
16 #define NVMEDIA_ICP_H
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif /* __cplusplus */
21 
22 #include "nvmedia_core.h"
23 #include "nvmedia_surface.h"
24 #include "nvmedia_image.h"
25 
42 #define NVMEDIA_ICP_VERSION_MAJOR 4
43 
44 #define NVMEDIA_ICP_VERSION_MINOR 22
45 
50 #define NVMEDIA_IMAGE_CAPTURE_TIMEOUT_INFINITE 0xFFFFFFFFu
51 
53 #define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS 4u
54 
56 #define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS 3u
57 
63 #define NVMEDIA_ICP_HANDLER(icpEx, groupIdx) (icpEx->icp[groupIdx].hIcp)
64 
72 #define NVMEDIA_ICP_SETTINGS_HANDLER(icpSettingsEx, groupIdx, vcIdx) \
73  (&icpSettingsEx.virtualGroups[groupIdx].virtualChannels[vcIdx].icpSettings)
74 
82 #define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_) \
83  NVMEDIA_ICP_##_type_##_ERROR_##_error_ = _value_##u,
84 
89 #define NVMEDIA_MAX_ICP_FRAME_BUFFERS 32u
90 
92 #define NVMEDIA_ICP_MIN_IMAGE_WIDTH 640u
93 
95 #define NVMEDIA_ICP_MAX_IMAGE_WIDTH 3848u
96 
98 #define NVMEDIA_ICP_MIN_IMAGE_HEIGHT 480u
99 
101 #define NVMEDIA_ICP_MAX_IMAGE_HEIGHT 2168u
102 
104 #define NVMEDIA_ICP_MIN_FRAME_RATE 10U
105 
107 #define NVMEDIA_ICP_MAX_FRAME_RATE 60U
108 
109 #if (NV_IS_SAFETY == 1)
110 
111 #define NVMEDIA_ICP_MAX_EMBEDDED_LINES 28u
112 
114 #define NVMEDIA_ICP_PIXEL_FREQUENCY 0U
115 
117 #define NVMEDIA_ICP_THS_SETTLE_TIME 0U
118 #else
119 
120 #define NVMEDIA_ICP_MAX_EMBEDDED_LINES 256u
121 
122 #endif /* NV_IS_SAFETY */
123 
127 typedef enum {
153 
157 typedef enum {
200 
204 typedef enum {
218 
222 typedef struct {
229 
230 #if (NV_IS_SAFETY == 1)
231 
234 typedef enum {
235  NVMEDIA_ICP_CSI_MIPISPEED_297000 = 297000,
236  NVMEDIA_ICP_CSI_MIPISPEED_633000 = 633000,
237  NVMEDIA_ICP_CSI_MIPISPEED_800000 = 800000,
238  NVMEDIA_ICP_CSI_MIPISPEED_1700000 = 1700000
239 } NvMediaICPCsiMipiSpeed;
240 #endif /* NV_IS_SAFETY */
241 
245 typedef enum {
251 
255 typedef struct {
265  uint16_t width;
267  uint16_t height;
270  uint16_t startX;
273  uint16_t startY;
279  uint32_t interfaceLanes;
284  uint32_t pixelFrequency;
290  uint32_t mipiSpeed;
293  uint16_t thsSettle;
298  uint8_t tpgEnable;
306  uint32_t frameRate;
308 
312 typedef struct {
318  uint32_t interfaceLanes;
319  struct {
320  struct {
321  /* Holds the virtual Channel Index from CSI TX. */
323  /* Holds the image capture settings for CSI format. */
338  } virtualChannels[NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS];
341  } virtualGroups[NVMEDIA_ICP_MAX_VIRTUAL_GROUPS];
347 
351 typedef struct NvMediaICP NvMediaICP;
352 
356 typedef struct {
360  struct {
362  uint16_t virtualGroupId;
366 } NvMediaICPEx;
367 
439 typedef enum {
447 
448 typedef enum {
449  /* Multiple Error Bits may be set accompanying a CsiInputFrameError */
450  NVMEDIA_ICP_ERROR(CSI, FE_CSI_FAULT, 6, "A NVCSI fault received at frame end")
451  NVMEDIA_ICP_ERROR(CSI, FS_FAULT, 7, "A frame start occurred before previous frame end")
452  NVMEDIA_ICP_ERROR(CSI, FE_FORCED_FAULT, 8, "A frame end was injected by the CSI hardware")
453  NVMEDIA_ICP_ERROR(CSI, FE_FRAMEID_FAULT, 9, "Frame ID for FE packet does not match that of FS packet")
454  NVMEDIA_ICP_ERROR(CSI, PXL_ENABLE_FAULT , 10, "An illegal pixel encoding has been detected")
455  NVMEDIA_ICP_ERROR(CSI, PP_FSM_TIMEOUT, 20, "Pixel Parser FSM timeout")
456  NVMEDIA_ICP_ERROR(CSI, PH_ECC_DPHY, 21, "Single bit error correction code in DPHY packet header")
457  NVMEDIA_ICP_ERROR(CSI, PAYLOAD_CRC, 22, "Packet Payload CRC check fail error")
458  NVMEDIA_ICP_ERROR(CSI, LINE_SHORT, 23, "Packet Payload is less than word count in packet header")
459  NVMEDIA_ICP_ERROR(CSI, PH_CRC_CPHY, 24, "One of the CPHY packet headers CRC error")
460  NVMEDIA_ICP_ERROR(CSI, EMB_CRC, 25, "Embedded line CRC error")
462 
463 typedef enum {
464  /* CSI Stream Errors */
465  NVMEDIA_ICP_ERROR(CSI, SPURIOUS_DATA, 0, "FIFO data was found in the gap between frame start and frame end")
469  NVMEDIA_ICP_ERROR(CSI, FIFO_OVERFLOW, 1, "An overflow occurred in a stream FIFO")
470  NVMEDIA_ICP_ERROR(CSI, FIFO_LOF, 2, "A loss of frame overflow occurred")
471  NVMEDIA_ICP_ERROR(CSI, FIFO_BADPKT, 3, "An unknown packet type has been received on a stream")
473 
474 typedef enum {
475  /* VI Channel Sel faults from engine status */
476  NVMEDIA_ICP_ERROR(VI, FS_TIMEOUT, 0, "Frame Start Timeout Error")
477  NVMEDIA_ICP_ERROR(VI, FE_TIMEOUT, 1, "Frame End Timeout Error")
478  NVMEDIA_ICP_ERROR(VI, PXL_MISSING_LE, 5, "Two LS packets were detected without a LE packet between them")
479  NVMEDIA_ICP_ERROR(VI, PXL_RUNAWAY, 6, "More lines were received than expected")
480  NVMEDIA_ICP_ERROR(VI, PXL_SPURIOUS, 7, "A pixel data packet was received without a LS packet first")
481  NVMEDIA_ICP_ERROR(VI, PXL_LONG_LINE, 8, "More pixels were received than expected in a line")
482  NVMEDIA_ICP_ERROR(VI, PXL_SHORT_LINE, 9, "Fewer pixels were received than expected in a line")
483  NVMEDIA_ICP_ERROR(VI, EMB_MISSING_LE, 10, "Two LS packets were detected without a LE packet between them in emb data")
484  NVMEDIA_ICP_ERROR(VI, EMB_RUNAWAY, 11, "More lines were received than expected in emb data")
485  NVMEDIA_ICP_ERROR(VI, EMB_SPURIOUS, 12, "A pixel data packet was received without a LS packet first in emb data")
486  NVMEDIA_ICP_ERROR(VI, EMB_LONG_LINE, 13, "More pixels were received than expected in a line in emb data")
487  NVMEDIA_ICP_ERROR(VI, EMB_INFRINGE, 14, "Embedded data was received on a frame where no embedded data was expected")
488  NVMEDIA_ICP_ERROR(VI, DTYPE_MISMATCH, 15, "The pixel datatype changed in the middle of the line")
489  NVMEDIA_ICP_ERROR(VI, FORCED_FE, 16, "FE didn't arrive within expected frame duration, capture engine injected FE")
490  NVMEDIA_ICP_ERROR(VI, PXL_INCOMPLETE, 17, "Fewer lines of pixels in a frame were received than expected")
491  NVMEDIA_ICP_ERROR(VI, EMB_INCOMPLETE, 18, "Fewer lines of emb data in a frame were received than expected")
492  NVMEDIA_ICP_ERROR(VI, PFSD_FAULT, 19, "Permanent Fault Software Diagnostic is detected from engine status")
494 
495 typedef enum {
496  /* VI Channel Frame faults */
497  NVMEDIA_ICP_ERROR(VI, SHORT_FRAME, 0, "FE packet arrived before the normal number of pixels has appeared ")
498  NVMEDIA_ICP_ERROR(VI, SHORT_EMB, 1, "FE of EMB Data packet arrived before the normal number of pixels has appeared ")
499  NVMEDIA_ICP_ERROR(VI, PFSD_FAULT_NOTIFED, 2, "Permanent Fault Software Diagnostic is detected between frames")
500  NVMEDIA_ICP_ERROR(VI, FAULT_FE, 3, "FE is inserted due to a stream reset or early abort")
501  NVMEDIA_ICP_ERROR(VI, NOMATCH, 4, "CSI packets are discarded due to no matched capture channels")
502  NVMEDIA_ICP_ERROR(VI, COLLISION, 5, "An FS packet matches a channel which is not done processing a previously matching frame")
503  NVMEDIA_ICP_ERROR(VI, LOAD_FRAMED, 6, "A LOAD command is received for a channel while that channel is currently in a frame")
505 
506 typedef enum {
507  /* Errors while outputing data to memory */
508  NVMEDIA_ICP_ERROR(VI, PACKET_OVERFLOW, 0, "The FIFO for a surface packer has overflowed")
509  NVMEDIA_ICP_ERROR(VI, FRAME_TRUNCATED, 1, "A packer has dropped a partial frame")
510  NVMEDIA_ICP_ERROR(VI, FRAME_TOSSED, 2, "A packer has dropped an entire frame")
512 
517 typedef struct {
519  uint32_t csiStreamId;
521  uint32_t csiFrameId;
528  uint32_t errorData;
534  uint32_t notifiedErrors[NVMEDIA_ICP_ERROR_STATUS_MEMORYWRITE + 1u];
536 
553  NvMediaVersion *version
554 );
555 
563 NvMediaICPEx *
565  NvMediaICPSettingsEx *settings
566 );
567 
572 void
574  NvMediaICPEx *icpEx
575 );
576 
591  const NvMediaICP *icp,
592  const NvMediaImageGroup *imageGrp
593 );
594 
631  const NvMediaICP *icp,
632  NvMediaImageGroup *imageGrp,
633  uint32_t millisecondTimeout
634 );
635 
661  const NvMediaICP *icp,
662  uint32_t millisecondTimeout,
663  NvMediaImageGroup **imageGrp
664 );
665 
679  const NvMediaICP *icp,
680  const NvMediaImageGroup *imageGrp
681 );
682 
707  const NvMediaICP *icp,
708  NvMediaICPErrorInfo *icpErrorInfo
709 );
710 
711 #if (NV_IS_SAFETY == 0)
712 
741  const NvMediaICP *icp,
742  NvMediaImageGroup **imageGrp
743 )NVM_DEPRECATED_MSG("Use NvMediaICPGetImageGroup");;
744 #endif /* NV_IS_SAFETY */
745 
746 /*
747  * \defgroup history_nvmedia_icp History
748  * Provides change history for the NvMedia ICP API.
749  *
750  * \section history_nvmedia_icp Version History
751  *
752  * <b> Version 2.0 </b> April 4, 2016
753  * - Initial release
754  *
755  * <b> Version 2.1 </b> May 11, 2016
756  * - Added \ref NvMediaICPCheckVersion API
757  *
758  * <b> Version 2.2 </b> August 17, 2016
759  * - Added \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_UYVY image capture input
760  * format type
761  *
762  * <b> Version 2.3 </b> August 31, 2016
763  * - Added option for enabling embeddedDataType in \ref NvMediaICPSettings
764  *
765  * <b> Version 2.4 </b> Jan 23, 2017
766  * - Added \ref NvMediaICPErrorInfo and \ref NvMediaICPGetErrorInfo
767  *
768  * <b> Version 2.5 </b> March 16, 2017
769  * - Added \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER ,
770  * \ref NvMediaICPUserFormatType and option for enabling userFormatType in
771  * \ref NvMediaICPInputFormat
772  *
773  * <b> Version 3.0 </b> April 19, 2017
774  * Updated to use stdint.h instead of "unsigned int",
775  * "int", "unsigned short" and "char".
776  * NvMediaICPCreate and NvMediaICPDestroy are now deprecated.
777  * NvMediaICPGetFrame is now deprecated.
778  * NvMediaICPInterfaceFormat is now deprecated, it will be always CSI.
779  *
780  * <b> Version 3.1 </b> May 12, 2017
781  * - Added \ref NvMediaICPGetVersion API to get the version of NvMedia ICP library
782  * - NvMediaICPCheckVersion is deprecated. Use NvMediaICPGetVersion() instead
783  *
784  * <b> Version 3.2 </b> May 19, 2017
785  * Removed \ref NvMediaICPSurfaceFormatType
786  * NvMediaICPSettings now takes NvMediaSurfaceType to indicate capture surface format
787  * Removed NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_TPG0
788  * Combined NvMediaICPUserFormatType with NvMediaICPInputFormatType
789  * Removed NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV420
790  * from \ref NvMediaICPInputFormatType
791  * Added RAW6/RAW7/RAW8/RAW10/RAW12/RAW14 in NvMediaICPInputFormatType
792  * Removed pixelOrder from \ref NvMediaICPInputFormat
793  * Added tpgEnagle in \ref NvMediaICPSettings
794  *
795  * <b> Version 4.2 </b> June 12, 2017
796  * Added virtualGroupIndex inside \ref NvMediaICPSettingsEx
797  * Renamed virtualChannel to virtualGroup inside \ref NvMediaICPEx
798  * Added \ref NvMediaICPFeedImageGroup and \ref NvMediaICPGetImageGroup APIs
799  *
800  * <b> Version 4.3 </b> October 5, 2017
801  * - Added \ref NvMediaICPResume API
802  *
803  * <b> Version 4.4 </b> October 11, 2017
804  * Changed the prototypes for \ref NvMediaICPGetImageGroup and
805  * \ref NvMediaICPReleaseImageGroup to accept double pointer to imageGrp
806  *
807  * <b> Version 4.5 </b> November 10, 2017
808  * Added YUV422_10, RAW16, RAW20 support in \ref NvMediaICPInputFormatType
809  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10,
810  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16,
811  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20
812  *
813  * <b> Version 4.6 </b> November 18, 2017
814  * Added additional CSI interfaces, CSI phy mode parameter to \ref NvMediaICPSettingsEX
815  *
816  * <b> Version 4.7 </b> March 16, 2018
817  * Added mipiSpeed in \ref NvMediaICPSettings
818  *
819  * <b> Version 4.8 </b> September 12, 2018
820  * Added NvMediaICPWaitForSoF in \ref NvMediaICPWaitForSoF
821  *
822  * <b> Version 4.9 </b> March 7, 2019
823  * Added detailed capture error errorData in \ref NvMediaICPErrorInfo
824  * Refactor \ref NvMediaICPErrorStatus to group capture errors
825  *
826  * <b> Version 4.10 </b> March 10, 2019
827  * Added NvMediaICPRegisterImageGroup in \ref NvMediaICPRegisterImageGroup
828  * Added NvMediaICPUnregisterImageGroup in \ref NvMediaICPUnregisterImageGroup
829  *
830  * <b> Version 4.11 </b> March 18, 2019
831  * Deprecated API's- NvMediaICPFeedFrame, NvMediaICPGetFrameEx and NvMediaICPReleaseFrame
832  * Instead NvMediaICPFeedImageGroup,NvMediaICPGetImageGroup and NvMediaICPReleaseImageGroup
833  * should be used
834  *
835  * <b> Version 4.12 </b> March 25, 2019
836  * Added \ref NvMediaICPCSIErrorType Enum
837  * Added csiErrorMask, csiErrorType to \ref NvMediaICPSettings
838  *
839  * <b> Version 4.13 </b> March 27, 2019
840  * Added notifiedErrors in \ref NvMediaICPErrorInfo and disablePFSD \ref NvMediaICPSettingsEx.
841  *
842  * <b> Version 4.14 </b> April 2, 2019
843  * Changed \ref NvMediaICP type from void to struct.
844  *
845  * <b> Version 4.15 </b> April 4, 2019
846  * Add \ref NvMediaBitsPerPixel, NVMEDIA_MAX_ICP_FRAME_BUFFERS
847  *
848  * <b> Version 4.16 </b> April 10, 2019
849  * Added deprecated warning message for \ref NvMediaICPWaitForSoF.
850  *
851  * <b> Version 4.17 </b> May 22, 2019
852  * Remove deprecated NvMediaICPWaitForSoF
853  *
854  * <b> Version 4.18 </b> July 12, 2019
855  * removed NvMediaICPCSIErrorType Enum
856  * removed csiErrorMask, csiErrorType from \ref NvMediaICPSettings
857  * removed NVMEDIA_ICP_ERROR_STATUS_FATAL from \ref NvMediaICPErrorStatus
858  *
859  * <b> Version 4.19 </b> July 18, 2019
860  * Remove NvMediaICPStop and NvMediaICPResume
861  *
862  * <b> Version 4.20 </b> October 21, 2019
863  * Added the const keyword to appropriate pointer parameters for the following:
864  * - \ref NvMediaICPRegisterImageGroup
865  * - \ref NvMediaICPFeedImageGroup
866  * - \ref NvMediaICPGetImageGroup
867  * - \ref NvMediaICPUnregisterImageGroup
868  * - \ref NvMediaICPReleaseImageGroup
869  * - \ref NvMediaICPGetErrorInfo
870  * Added comments for the following values of \ref NvMediaStatus:
871  * - \ref NVMEDIA_STATUS_NOT_SUPPORTED
872  * - \ref NVMEDIA_STATUS_NOT_INITIALIZED
873  *
874  * <b> Version 4.21 </b> November 20, 2019
875  * NvMediaICPReleaseImageGroup() is removed from safety build and deprecated in non-safety build.
876  * Use NvMediaICPGetImageGroup() instead
877  *
878  * <b> Version 4.22 </b> January 22, 2020
879  * Add NVMEDIA_ICP_MIN_FRAME_RATE and NVMEDIA_ICP_MAX_FRAME_RATE in safety build.
880  * Remove the return value NVMEDIA_STATUS_NOT_INITIALIZED for some functions
881  *
882  */
885 #ifdef __cplusplus
886 }; /* extern "C" */
887 #endif /* __cplusplus */
888 
889 #endif /* NVMEDIA_ICP_H */
NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS
#define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS
Defines the maximum number of virtual channels per virtual group.
Definition: nvmedia_icp.h:56
NVMEDIA_ICP_MAX_VIRTUAL_GROUPS
#define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS
Defines the maximum number of virtual groups.
Definition: nvmedia_icp.h:53
NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTFRAME
@ NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTFRAME
Definition: nvmedia_icp.h:441
NvMediaICPSettings::phyMode
NvMediaICPCsiPhyMode phyMode
Holds the CSI phy mode.
Definition: nvmedia_icp.h:302
NvMediaICPInterfaceType
NvMediaICPInterfaceType
Specifies the image capture interface type for the CSI interface.
Definition: nvmedia_icp.h:127
NvMediaICPInputFormat::bitsPerPixel
NvMediaBitsPerPixel bitsPerPixel
Holds number of bits per pixel for NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_x input forma...
Definition: nvmedia_icp.h:227
NvMediaICPSettings::interfaceType
NvMediaICPInterfaceType interfaceType
Holds the interface type.
Definition: nvmedia_icp.h:259
NvMediaICPEx::hIcp
NvMediaICP * hIcp
Holds a pointer to the image capture object.
Definition: nvmedia_icp.h:364
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_8
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_8
Specifies User defined 8 (0x37).
Definition: nvmedia_icp.h:198
nvmedia_surface.h
NVIDIA Media Interface: Surface Handling
NVMEDIA_ICP_CSI_DPHY_MODE
@ NVMEDIA_ICP_CSI_DPHY_MODE
Specifies that CSI is in DPHY mode.
Definition: nvmedia_icp.h:247
NvMediaICPSettings::mipiSpeed
uint32_t mipiSpeed
For DPHY mode, holds the mipi data rate in kbps.
Definition: nvmedia_icp.h:290
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW10
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW10
Specifies RAW 10.
Definition: nvmedia_icp.h:174
NvMediaICPEx
Holds an image capture object created by NvMediaICPCreateEx().
Definition: nvmedia_icp.h:356
NvMediaICPSettings::width
uint16_t width
Holds the capture width in pixels.
Definition: nvmedia_icp.h:265
NvMediaICPSettingsEx::icpSettings
NvMediaICPSettings icpSettings
Definition: nvmedia_icp.h:324
NvMediaICPCsiInputStreamError
NvMediaICPCsiInputStreamError
Definition: nvmedia_icp.h:463
NvMediaICPSettingsEx::interfaceLanes
uint32_t interfaceLanes
Holds the number of active CSI interface lanes.
Definition: nvmedia_icp.h:318
NvMediaICPErrorInfo
Holds the capture error information populated by NvMediaICPGetErrorInfo().
Definition: nvmedia_icp.h:517
NvMediaICPSettings::embeddedDataLines
uint16_t embeddedDataLines
Holds the embedded data lines.
Definition: nvmedia_icp.h:275
NvMediaICPErrorInfo::errorStatus
NvMediaICPErrorStatus errorStatus
Holds the error status from capture HW engine.
Definition: nvmedia_icp.h:525
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_5
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_5
Specifies User defined 5 (0x34).
Definition: nvmedia_icp.h:192
NVMEDIA_ICP_ERROR_STATUS_MEMORYWRITE
@ NVMEDIA_ICP_ERROR_STATUS_MEMORYWRITE
Definition: nvmedia_icp.h:445
NvMediaICPSettingsEx::interfaceType
NvMediaICPInterfaceType interfaceType
Holds the interface type.
Definition: nvmedia_icp.h:314
NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTSTREAM
@ NVMEDIA_ICP_ERROR_STATUS_CSI_INPUTSTREAM
Definition: nvmedia_icp.h:442
NVMEDIA_ICP_ERROR
#define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_)
A macro that creates an enumerator in enum NvMediaICPErrorStatus.
Definition: nvmedia_icp.h:82
NvMediaICPSettings::interfaceLanes
uint32_t interfaceLanes
Holds the number of CSI interface lanes active.
Definition: nvmedia_icp.h:279
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_4
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_4
Specifies User defined 4 (0x33).
Definition: nvmedia_icp.h:190
NVMEDIA_BITS_PER_PIXEL_12
@ NVMEDIA_BITS_PER_PIXEL_12
Specifies 12 bits per pixel.
Definition: nvmedia_icp.h:210
NvMediaICPEx::virtualGroupId
uint16_t virtualGroupId
Holds the virtual group index.
Definition: nvmedia_icp.h:362
NvMediaICPSettingsEx
Holds the image capture settings for the CSI format per virtual group.
Definition: nvmedia_icp.h:312
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_C
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_C
Specifies CSI port C.
Definition: nvmedia_icp.h:135
NvMediaICPFrameFaultError
NvMediaICPFrameFaultError
Definition: nvmedia_icp.h:495
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_CD
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_CD
Specifies CSI port CD.
Definition: nvmedia_icp.h:139
NvMediaICPGetVersion
NvMediaStatus NvMediaICPGetVersion(NvMediaVersion *version)
Gets the version of the NvMedia ICP library.
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW14
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW14
Specifies RAW 14.
Definition: nvmedia_icp.h:178
NvMediaICPSettings::frameRate
uint32_t frameRate
Holds the capture frame rate in frames per second.
Definition: nvmedia_icp.h:306
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20
Specifies RAW 20.
Definition: nvmedia_icp.h:182
NvMediaICP
struct NvMediaICP NvMediaICP
Holds an image capture object per virtual group.
Definition: nvmedia_icp.h:351
NvMediaICPDestroyEx
void NvMediaICPDestroyEx(NvMediaICPEx *icpEx)
Destroys an image capture object created by NvMediaICPCreateEx().
NVMEDIA_ICP_ERROR_STATUS_FRAME_FAULT
@ NVMEDIA_ICP_ERROR_STATUS_FRAME_FAULT
Definition: nvmedia_icp.h:444
NvMediaICPReleaseImageGroup
NvMediaStatus NvMediaICPReleaseImageGroup(const NvMediaICP *icp, NvMediaImageGroup **imageGrp) NVM_DEPRECATED_MSG("Use NvMediaICPGetImageGroup")
Gets an image group from the internal pool that the client previously supplied with NvMediaICPFeedIma...
NvMediaICPCreateEx
NvMediaICPEx * NvMediaICPCreateEx(NvMediaICPSettingsEx *settings)
Creates an image capture object used to capture various formats of input into an NvMediaImage.
NvMediaVersion
Holds NvMedia version information.
Definition: nvmedia_core.h:237
NVMEDIA_BITS_PER_PIXEL_14
@ NVMEDIA_BITS_PER_PIXEL_14
Specifies 14 bits per pixel.
Definition: nvmedia_icp.h:212
NvMediaICPErrorInfo::errorData
uint32_t errorData
Holds a detailed error code corresponding to NvMediaICPErrorStatus, above.
Definition: nvmedia_icp.h:528
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_A
Specifies CSI port A.
Definition: nvmedia_icp.h:129
NvMediaICPInputFormat
Holds the capture input format.
Definition: nvmedia_icp.h:222
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10
Specifies YUV 4:2:2 10 bits.
Definition: nvmedia_icp.h:161
NvMediaICPSettings::pixelFrequency
uint32_t pixelFrequency
Holds the pixel clock frequency.
Definition: nvmedia_icp.h:284
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_AB
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_AB
Specifies CSI port AB.
Definition: nvmedia_icp.h:133
NvMediaICPSettingsEx::virtualChannelIndex
uint16_t virtualChannelIndex
Definition: nvmedia_icp.h:322
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW7
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW7
Specifies RAW 7.
Definition: nvmedia_icp.h:170
NVMEDIA_BITS_PER_PIXEL_16
@ NVMEDIA_BITS_PER_PIXEL_16
Specifies 16 bits per pixel.
Definition: nvmedia_icp.h:214
NvMediaICPPixelFaultError
NvMediaICPPixelFaultError
Definition: nvmedia_icp.h:474
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW8
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW8
Specifies RAW 8.
Definition: nvmedia_icp.h:172
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RGB888
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RGB888
Specifies RGB.
Definition: nvmedia_icp.h:166
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_2
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_2
Specifies User defined 2 (0x31).
Definition: nvmedia_icp.h:186
NvMediaICPErrorInfo::csiFrameId
uint32_t csiFrameId
Holds the CSI frame index generated by CSI Tx.
Definition: nvmedia_icp.h:521
NvMediaICPCsiInputFrameError
NvMediaICPCsiInputFrameError
Definition: nvmedia_icp.h:448
NvMediaICPSettings::tpgEnable
uint8_t tpgEnable
Holds a Boolean; indicates whether TPG is enabled.
Definition: nvmedia_icp.h:298
NvMediaICPSettings::inputFormat
NvMediaICPInputFormat inputFormat
Holds the input format.
Definition: nvmedia_icp.h:261
NVMEDIA_ICP_CSI_CPHY_MODE
@ NVMEDIA_ICP_CSI_CPHY_MODE
Specifies that CSI is in CPHY mode.
Definition: nvmedia_icp.h:249
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_EF
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_EF
Specifies CSI port EF.
Definition: nvmedia_icp.h:145
NvMediaICPSettings::startX
uint16_t startX
Holds the horizontal start position.
Definition: nvmedia_icp.h:270
NVM_DEPRECATED_MSG
#define NVM_DEPRECATED_MSG(fmt)
Definition: nvmedia_core.h:39
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422
Specifies YUV 4:2:2 8 bits.
Definition: nvmedia_icp.h:159
NvMediaICPSettings::embeddedDataType
NvMediaBool embeddedDataType
Holds an indicator of embedded data type.
Definition: nvmedia_icp.h:296
NVMEDIA_ICP_ERROR_STATUS_PIXEL_FAULT
@ NVMEDIA_ICP_ERROR_STATUS_PIXEL_FAULT
Definition: nvmedia_icp.h:443
NvMediaICPSettingsEx::numVirtualGroups
uint16_t numVirtualGroups
Holds the number of virtual groups.
Definition: nvmedia_icp.h:343
NvMediaICPSettings::surfaceType
NvMediaSurfaceType surfaceType
Holds the capture surface type.
Definition: nvmedia_icp.h:263
NvMediaICPFeedImageGroup
NvMediaStatus NvMediaICPFeedImageGroup(const NvMediaICP *icp, NvMediaImageGroup *imageGrp, uint32_t millisecondTimeout)
Adds an image group to the image capture pool.
NvMediaICPGetErrorInfo
NvMediaStatus NvMediaICPGetErrorInfo(const NvMediaICP *icp, NvMediaICPErrorInfo *icpErrorInfo)
Gets capture error information.
NvMediaRect
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:133
NVMEDIA_ICP_ERROR_STATUS_NONE
@ NVMEDIA_ICP_ERROR_STATUS_NONE
Definition: nvmedia_icp.h:440
nvmedia_core.h
NVIDIA Media Interface: Core
NvMediaSurfaceType
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
Definition: nvmedia_surface.h:550
NvMediaICPCsiPhyMode
NvMediaICPCsiPhyMode
Specifies the CSI phy mode.
Definition: nvmedia_icp.h:245
NvMediaICPSettings::startY
uint16_t startY
Holds the vertical start position.
Definition: nvmedia_icp.h:273
NvMediaICPSettings
Holds image capture settings for the CSI format.
Definition: nvmedia_icp.h:255
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:180
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_H
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_H
Specifies CSI port H.
Definition: nvmedia_icp.h:149
NvMediaICPSettingsEx::disablePFSD
NvMediaBool disablePFSD
Holds a flag for disabling PFSD (Permanent Fault Software Diagnostic) functionality in the capture en...
Definition: nvmedia_icp.h:337
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_B
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_B
Specifies CSI port B.
Definition: nvmedia_icp.h:131
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_E
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_E
Specifies CSI port E.
Definition: nvmedia_icp.h:141
NvMediaICPSettingsEx::phyMode
NvMediaICPCsiPhyMode phyMode
Holds the CSI phy mode.
Definition: nvmedia_icp.h:345
NvMediaICPRegisterImageGroup
NvMediaStatus NvMediaICPRegisterImageGroup(const NvMediaICP *icp, const NvMediaImageGroup *imageGrp)
Maps an image group to the capture engine.
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_7
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_7
Specifies User defined 7 (0x36).
Definition: nvmedia_icp.h:196
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW6
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW6
Specifies RAW 6.
Definition: nvmedia_icp.h:168
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV444
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV444
Specifies YUV 4:4:4.
Definition: nvmedia_icp.h:164
NvMediaICPInputFormat::inputFormatType
NvMediaICPInputFormatType inputFormatType
Holds capture input format type.
Definition: nvmedia_icp.h:224
NvMediaICPSettingsEx::clipRect
NvMediaRect clipRect
Holds the clipping rectangle.
Definition: nvmedia_icp.h:329
NvMediaICPSettingsEx::numVirtualChannels
uint16_t numVirtualChannels
Holds the number of virtual channels per group.
Definition: nvmedia_icp.h:340
NVMEDIA_BITS_PER_PIXEL_10
@ NVMEDIA_BITS_PER_PIXEL_10
Specifies 10 bits per pixel.
Definition: nvmedia_icp.h:208
NvMediaBitsPerPixel
NvMediaBitsPerPixel
Specifies bits per pixel.
Definition: nvmedia_icp.h:204
NVMEDIA_BITS_PER_PIXEL_20
@ NVMEDIA_BITS_PER_PIXEL_20
Specifies 20 bits per pixel.
Definition: nvmedia_icp.h:216
NvMediaICPErrorStatus
NvMediaICPErrorStatus
Defines error status codes.
Definition: nvmedia_icp.h:439
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_D
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_D
Specifies CSI port D.
Definition: nvmedia_icp.h:137
NvMediaImageGroup
Holds a handle representing an image group.
Definition: nvmedia_image.h:115
NvMediaICPSettings::thsSettle
uint16_t thsSettle
Holds the MIPI THS-SETTLE time.
Definition: nvmedia_icp.h:293
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW12
Specifies RAW 12.
Definition: nvmedia_icp.h:176
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_GH
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_GH
Specifies CSI port GH.
Definition: nvmedia_icp.h:151
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_3
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_3
Specifies User defined 3 (0x32).
Definition: nvmedia_icp.h:188
NvMediaICPInputFormatType
NvMediaICPInputFormatType
Specifies the image capture input format type.
Definition: nvmedia_icp.h:157
NvMediaICPErrorInfo::csiStreamId
uint32_t csiStreamId
Holds the CSI stream index.
Definition: nvmedia_icp.h:519
NvMediaICPGetImageGroup
NvMediaStatus NvMediaICPGetImageGroup(const NvMediaICP *icp, uint32_t millisecondTimeout, NvMediaImageGroup **imageGrp)
Gets a captured image group with frame status.
NvMediaBool
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16
Specifies RAW 16.
Definition: nvmedia_icp.h:180
NVMEDIA_BITS_PER_PIXEL_8
@ NVMEDIA_BITS_PER_PIXEL_8
Specifies 8 bits per pixel.
Definition: nvmedia_icp.h:206
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_6
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_6
Specifies User defined 6 (0x35).
Definition: nvmedia_icp.h:194
nvmedia_image.h
NVIDIA Media Interface: Image Processing
NvMediaICPEx::numVirtualGroups
uint16_t numVirtualGroups
Holds the number of virtual groups used.
Definition: nvmedia_icp.h:358
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_G
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_G
Specifies CSI port G.
Definition: nvmedia_icp.h:147
NvMediaICPSettings::height
uint16_t height
Holds the capture height in pixels.
Definition: nvmedia_icp.h:267
NvMediaICPMemoryWriteError
NvMediaICPMemoryWriteError
Definition: nvmedia_icp.h:506
NvMediaICPUnregisterImageGroup
NvMediaStatus NvMediaICPUnregisterImageGroup(const NvMediaICP *icp, const NvMediaImageGroup *imageGrp)
Unmaps an image group from the capture engine.
NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_F
@ NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_CSI_F
Specifies CSI port F.
Definition: nvmedia_icp.h:143
NvMediaICPErrorInfo::virtualChannelId
uint32_t virtualChannelId
Holds the virtual channel index.
Definition: nvmedia_icp.h:523
NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_1
@ NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER_DEFINED_1
Specifies User defined 1 (0x30).
Definition: nvmedia_icp.h:184