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_icp.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014-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_ICP_H
16 #define NVMEDIA_ICP_H
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
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 16
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 
94 typedef enum {
120 
124 typedef enum {
166 
170 typedef enum {
184 
188 typedef struct {
195 
199 typedef enum {
200  /* Specifies that CSI is in DPHY mode. */
202  /* Specifies that CSI is in CPHY mode. */
205 
209 typedef struct {
217  uint16_t width;
219  uint16_t height;
221  uint16_t startX;
223  uint16_t startY;
227  uint32_t interfaceLanes;
231  uint32_t pixelFrequency;
233  uint32_t mipiSpeed;
236  uint16_t thsSettle;
241  uint8_t tpgEnable;
247  uint32_t frameRate;
250  uint32_t csiErrorMask;
253  uint32_t csiErrorType;
255 
259 typedef struct {
265  uint32_t interfaceLanes;
266  struct {
267  struct {
268  /* Holds the virtual Channel Index from CSI TX. */
270  /* Holds the image capture settings for CSI format. */
272  /* Holds the clipping rectangle. */
282  } virtualChannels[NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS];
285  } virtualGroups[NVMEDIA_ICP_MAX_VIRTUAL_GROUPS];
291 
297 typedef enum {
298  /* Specifies an LP sequence error detected on clock lane[A/B]. */
300  /* Specifies a one-bit error detected on the lane[A/B]0 sync word. */
302  /* Specifies a more than one-bit error detected on the lane[A/B]0 sync
303  word. */
305  /* Specifies an LP sequence error detected on lane [A/B]0. */
307  /* Specifies a lane [A/B]0 FIFO overflow. */
309  /* Specifies a one-bit error detected on the lane[A/B]1 sync word. */
311  /* Specifies a more than one-bit error detected on the lane[A/B]1 sync
312  word. */
314  /* Specifies an LP sequence error detected on lane [A/B]1. */
316  /* Specifies a Lane [A/B]1 FIFO overflow. */
318  /* Specifies a DPHY de-skew calibration not complete when sweeping the
319  trimmer of data lane [A/B]0. Happens when the calibration sequence length
320  is not long enough. */
322  /* Specifies a DPHY de-skew calibration not complete when sweeping the
323  trimmer of data lane [A/B]1. Happens when the calibration sequence length
324  is not long enough. */
326  /* Specifies a DPHY de-skew calibration not complete when sweeping the
327  trimmer of clock lane [A/B]. Happens when the calibration sequence length
328  is not long enough. */
330  /* Specifies that an error is detected in the PHY partition [A/B]: some
331  lanes detected a sync word while other lanes did not. */
333  /* Specifies that an error is detected in the escape mode sync of lane
334  [A/B]0. */
336  /* Specifies that an error is detected in the escape mode sync of lane
337  [A/B]0. */
339  /* Specifies that an error is detected in the 2 LSBs of the lane [A/B]0
340  sync word. */
342  /* Specifies that an error is detected in the 2 LSBs of the lane [A/B]1
343  sync word. */
345  /* For DPHY mode, CSI packet header uses ECC check. If multi-bit errors
346  are detected in the packet header the error bits are not able to correct
347  them, the packet is not able to do the unpack, the packet is dropped, and
348  this error status is set. */
350  /* Specifies that for CPHY mode, the CSI packet has two packet headers,
351  each with CRC check. If both packet headers fail the CRC check, the packet
352  cannot be unpacked and is dropped, and this error status is set. */
354  /* Specifies that there is a watchdog timer inside NVCSI to detect packets
355  that are incomplete after a sufficient amount of time. If the timer
356  expires, this error status is set. */
358  /* Specifies that for DPHY mode, the CSI packet header includes an ECC
359  check. If a one-bit error in the packet header is detected the error is
360  corrected, the packet can still be unpacked, and this error status is
361  set. */
363  /* Specifies that the CSI packet include a payload CRC check. If the CRC
364  check fails, this error status is set. */
366  /* Specifies that the CSI packet header includes the length of the packet.
367  If the packet is shorter than the expected length, this error status is
368  set. */
370  /* Specifies that for CPHY mode, the CSI packet has two packet headers,
371  each with CRC check. If one packet header passes CRC check and the other
372  fails, the packet can still be unpacked and this error status is set. */
375 
379 typedef struct NvMediaICP NvMediaICP;
380 
384 typedef struct {
385  /* Holds the number of virtual groups used. */
387  struct {
388  /* Holds the virtual group index. */
389  uint16_t virtualGroupId;
390  /* Holds a pointer to the image capture object. */
393 } NvMediaICPEx;
394 
466 typedef enum {
475 
476 typedef enum {
477  /* Multiple Error Bits may be set accompanying a CsiInputFrameError */
478  NVMEDIA_ICP_ERROR(CSI, FE_CSI_FAULT, 6, "A NVCSI fault received at frame end")
479  NVMEDIA_ICP_ERROR(CSI, FS_FAULT, 7, "A frame start occurred before previous frame end")
480  NVMEDIA_ICP_ERROR(CSI, FE_FORCED_FAULT, 8, "A frame end was injected by the CSI hardware")
481  NVMEDIA_ICP_ERROR(CSI, FE_FRAMEID_FAULT, 9, "Frame ID for FE packet does not match that of FS packet")
482  NVMEDIA_ICP_ERROR(CSI, PXL_ENABLE_FAULT , 10, "An illegal pixel encoding has been detected")
483  NVMEDIA_ICP_ERROR(CSI, PP_FSM_TIMEOUT, 20, "Pixel Parser FSM timeout")
484  NVMEDIA_ICP_ERROR(CSI, PH_ECC_DPHY, 21, "Single bit error correction code in DPHY packet header")
485  NVMEDIA_ICP_ERROR(CSI, PAYLOAD_CRC, 22, "Packet Payload CRC check fail error")
486  NVMEDIA_ICP_ERROR(CSI, LINE_SHORT, 23, "Packet Payload is less than word count in packet header")
487  NVMEDIA_ICP_ERROR(CSI, PH_CRC_CPHY, 24, "One of the CPHY packet headers CRC error")
488  NVMEDIA_ICP_ERROR(CSI, EMB_CRC, 25, "Embedded line CRC error")
490 
491 typedef enum {
492  /* CSI Stream Errors */
493  NVMEDIA_ICP_ERROR(CSI, SPURIOUS_DATA, 0, "FIFO data was found in the gap between frame start and frame end")
494  /* FIFO_OVERFLOW & FIFO_LOF Events are NOT Recoverable, application is expected to stop the capture on these errors */
495  NVMEDIA_ICP_ERROR(CSI, FIFO_OVERFLOW, 1, "An overflow occurred in a stream FIFO")
496  NVMEDIA_ICP_ERROR(CSI, FIFO_LOF, 2, "A loss of frame overflow occurred")
497  NVMEDIA_ICP_ERROR(CSI, FIFO_BADPKT, 3, "An unknown packet type has been received on a stream")
499 
500 typedef enum {
501  /* VI Channel Sel faults from engine status */
502  NVMEDIA_ICP_ERROR(VI, FS_TIMEOUT, 0, "Frame Start Timeout Error")
503  NVMEDIA_ICP_ERROR(VI, FE_TIMEOUT, 1, "Frame End Timeout Error")
504  NVMEDIA_ICP_ERROR(VI, PXL_MISSING_LE, 5, "Two LS packets were detected without a LE packet between them")
505  NVMEDIA_ICP_ERROR(VI, PXL_RUNAWAY, 6, "More lines were received than expected")
506  NVMEDIA_ICP_ERROR(VI, PXL_SPURIOUS, 7, "A pixel data packet was received without a LS packet first")
507  NVMEDIA_ICP_ERROR(VI, PXL_LONG_LINE, 8, "More pixels were received than expected in a line")
508  NVMEDIA_ICP_ERROR(VI, PXL_SHORT_LINE, 9, "Fewer pixels were received than expected in a line")
509  NVMEDIA_ICP_ERROR(VI, EMB_MISSING_LE, 10, "Two LS packets were detected without a LE packet between them in emb data")
510  NVMEDIA_ICP_ERROR(VI, EMB_RUNAWAY, 11, "More lines were received than expected in emb data")
511  NVMEDIA_ICP_ERROR(VI, EMB_SPURIOUS, 12, "A pixel data packet was received without a LS packet first in emb data")
512  NVMEDIA_ICP_ERROR(VI, EMB_LONG_LINE, 13, "More pixels were received than expected in a line in emb data")
513  NVMEDIA_ICP_ERROR(VI, EMB_INFRINGE, 14, "Embedded data was received on a frame where no embedded data was expected")
514  NVMEDIA_ICP_ERROR(VI, DTYPE_MISMATCH, 15, "The pixel datatype changed in the middle of the line")
515  NVMEDIA_ICP_ERROR(VI, FORCED_FE, 16, "FE didn't arrive within expected frame duration, capture engine injected FE")
516  NVMEDIA_ICP_ERROR(VI, PXL_INCOMPLETE, 17, "Fewer lines of pixels in a frame were received than expected")
517  NVMEDIA_ICP_ERROR(VI, EMB_INCOMPLETE, 18, "Fewer lines of emb data in a frame were received than expected")
518  NVMEDIA_ICP_ERROR(VI, PFSD_FAULT, 19, "Permanent Fault Software Diagnostic is detected from engine status")
520 
521 typedef enum {
522  /* VI Channel Frame faults */
523  NVMEDIA_ICP_ERROR(VI, SHORT_FRAME, 0, "FE packet arrived before the normal number of pixels has appeared ")
524  NVMEDIA_ICP_ERROR(VI, SHORT_EMB, 1, "FE of EMB Data packet arrived before the normal number of pixels has appeared ")
525  NVMEDIA_ICP_ERROR(VI, PFSD_FAULT_NOTIFED, 2, "Permanent Fault Software Diagnostic is detected between frames")
526  NVMEDIA_ICP_ERROR(VI, FAULT_FE, 3, "FE is inserted due to a stream reset or early abort")
527  NVMEDIA_ICP_ERROR(VI, NOMATCH, 4, "CSI packets are discarded due to no matched capture channels")
528  NVMEDIA_ICP_ERROR(VI, COLLISION, 5, "An FS packet matches a channel which is not done processing a previously matching frame")
529  NVMEDIA_ICP_ERROR(VI, LOAD_FRAMED, 6, "A LOAD command is received for a channel while that channel is currently in a frame")
531 
532 typedef enum {
533  /* Errors while outputing data to memory */
534  NVMEDIA_ICP_ERROR(VI, PACKET_OVERFLOW, 0, "The FIFO for a surface packer has overflowed")
535  NVMEDIA_ICP_ERROR(VI, FRAME_TRUNCATED, 1, "A packer has dropped a partial frame")
536  NVMEDIA_ICP_ERROR(VI, FRAME_TOSSED, 2, "A packer has dropped an entire frame")
538 
543 typedef struct {
544  /* Holds the CSI stream index. */
545  uint32_t csiStreamId;
546  /* Holds the CSI frame index generated by CSI Tx. */
547  uint32_t csiFrameId;
548  /* Holds the virtual channel index. */
550  /* Holds the error status from capture HW engine. */
552  /* Holds a detailed error code corresponding to \ref NvMediaICPErrorStatus,
553  above. */
554  uint32_t errorData;
555  /* Holds notified errors. Notified errors are applicable only when the
556  @c errorStatus member is @c NVMEDIA_ICP_ERROR_STATUS_NONE. The array holds
557  all notified errors to ICP that occurred between the current successful
558  frame and the previously captured frame. @c notifiedErrors must be parsed
559  for each \ref NvMediaICPErrorStatus, and may contain one or more types of
560  errors per @c NvMediaICPErrorStatus. */
561  uint32_t notifiedErrors[NVMEDIA_ICP_ERROR_STATUS_FATAL];
563 
577  NvMediaVersion *version
578 );
579 
600 NvMediaICPEx *
602  NvMediaICPSettingsEx *settings
603 );
604 
609 void
611  NvMediaICPEx *icpEx
612 );
613 
614 
625  NvMediaICP *icp,
626  NvMediaImageGroup *imageGrp
627 );
628 
629 
650  NvMediaICP *icp,
651  NvMediaImageGroup *imageGrp,
652  unsigned int millisecondTimeout
653 );
654 
670  NvMediaICP *icp
671 );
672 
684  NvMediaICP *icp);
685 
706  NvMediaICP *icp,
707  uint32_t millisecondTimeout,
708  NvMediaImageGroup **imageGrp
709 );
710 
720  NvMediaICP *icp,
721  NvMediaImageGroup *imageGrp
722 );
723 
743  NvMediaICP *icp,
744  NvMediaImageGroup **imageGrp
745 );
746 
764  NvMediaICP *icp,
765  NvMediaICPErrorInfo *icpErrorInfo
766 );
767 
784  NvMediaICP *icp
785 )NVM_DEPRECATED_MSG("Use NvMediaICPGetSOFNvSciSyncFence");
786 
787 /*
788  * \defgroup history_nvmedia_icp History
789  * Provides change history for the NvMedia ICP API.
790  *
791  * \section history_nvmedia_icp Version History
792  *
793  * <b> Version 2.0 </b> April 4, 2016
794  * - Initial release
795  *
796  * <b> Version 2.1 </b> May 11, 2016
797  * - Added \ref NvMediaICPCheckVersion API
798  *
799  * <b> Version 2.2 </b> August 17, 2016
800  * - Added \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_UYVY image capture input
801  * format type
802  *
803  * <b> Version 2.3 </b> August 31, 2016
804  * - Added option for enabling embeddedDataType in \ref NvMediaICPSettings
805  *
806  * <b> Version 2.4 </b> Jan 23, 2017
807  * - Added \ref NvMediaICPErrorInfo and \ref NvMediaICPGetErrorInfo
808  *
809  * <b> Version 2.5 </b> March 16, 2017
810  * - Added \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_USER ,
811  * \ref NvMediaICPUserFormatType and option for enabling userFormatType in
812  * \ref NvMediaICPInputFormat
813  *
814  * <b> Version 3.0 </b> April 19, 2017
815  * Updated to use stdint.h instead of "unsigned int",
816  * "int", "unsigned short" and "char".
817  * NvMediaICPCreate and NvMediaICPDestroy are now deprecated.
818  * NvMediaICPGetFrame is now deprecated.
819  * NvMediaICPInterfaceFormat is now deprecated, it will be always CSI.
820  *
821  * <b> Version 3.1 </b> May 12, 2017
822  * - Added \ref NvMediaICPGetVersion API to get the version of NvMedia ICP library
823  * - NvMediaICPCheckVersion is deprecated. Use NvMediaICPGetVersion() instead
824  *
825  * <b> Version 3.2 </b> May 19, 2017
826  * Removed \ref NvMediaICPSurfaceFormatType
827  * NvMediaICPSettings now takes NvMediaSurfaceType to indicate capture surface format
828  * Removed NVMEDIA_IMAGE_CAPTURE_CSI_INTERFACE_TYPE_TPG0
829  * Combined NvMediaICPUserFormatType with NvMediaICPInputFormatType
830  * Removed NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV420
831  * from \ref NvMediaICPInputFormatType
832  * Added RAW6/RAW7/RAW8/RAW10/RAW12/RAW14 in NvMediaICPInputFormatType
833  * Removed pixelOrder from \ref NvMediaICPInputFormat
834  * Added tpgEnagle in \ref NvMediaICPSettings
835  *
836  * <b> Version 4.2 </b> June 12, 2017
837  * Added virtualGroupIndex inside \ref NvMediaICPSettingsEx
838  * Renamed virtualChannel to virtualGroup inside \ref NvMediaICPEx
839  * Added \ref NvMediaICPFeedImageGroup and \ref NvMediaICPGetImageGroup APIs
840  *
841  * <b> Version 4.3 </b> October 5, 2017
842  * - Added \ref NvMediaICPResume API
843  *
844  * <b> Version 4.4 </b> October 11, 2017
845  * Changed the prototypes for \ref NvMediaICPGetImageGroup and
846  * \ref NvMediaICPReleaseImageGroup to accept double pointer to imageGrp
847  *
848  * <b> Version 4.5 </b> November 10, 2017
849  * Added YUV422_10, RAW16, RAW20 support in \ref NvMediaICPInputFormatType
850  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_YUV422_10,
851  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW16,
852  * \ref NVMEDIA_IMAGE_CAPTURE_INPUT_FORMAT_TYPE_RAW20
853  *
854  * <b> Version 4.6 </b> November 18, 2017
855  * Added additional CSI interfaces, CSI phy mode parameter to \ref NvMediaICPSettingsEX
856  *
857  * <b> Version 4.7 </b> March 16, 2018
858  * Added mipiSpeed in \ref NvMediaICPSettings
859  *
860  * <b> Version 4.8 </b> September 12, 2018
861  * Added NvMediaICPWaitForSoF in \ref NvMediaICPWaitForSoF
862  *
863  * <b> Version 4.9 </b> March 7, 2019
864  * Added detailed capture error errorData in \ref NvMediaICPErrorInfo
865  * Refactor \ref NvMediaICPErrorStatus to group capture errors
866  *
867  * <b> Version 4.10 </b> March 10, 2019
868  * Added NvMediaICPRegisterImageGroup in \ref NvMediaICPRegisterImageGroup
869  * Added NvMediaICPUnregisterImageGroup in \ref NvMediaICPUnregisterImageGroup
870  *
871  * <b> Version 4.11 </b> March 18, 2019
872  * Deprecated API's- NvMediaICPFeedFrame, NvMediaICPGetFrameEx and NvMediaICPReleaseFrame
873  * Instead NvMediaICPFeedImageGroup,NvMediaICPGetImageGroup and NvMediaICPReleaseImageGroup
874  * should be used
875  *
876  * <b> Version 4.12 </b> March 25, 2019
877  * Added \ref NvMediaICPCSIErrorType Enum
878  * Added csiErrorMask, csiErrorType to \ref NvMediaICPSettings
879  *
880  * <b> Version 4.13 </b> March 27, 2019
881  * Added notifiedErrors in \ref NvMediaICPErrorInfo and disablePFSD \ref NvMediaICPSettingsEx.
882  *
883  * <b> Version 4.14 </b> April 2, 2019
884  * Changed \ref NvMediaICP type from void to struct.
885  *
886  * <b> Version 4.15 </b> April 4, 2019
887  * Add \ref NvMediaBitsPerPixel, NVMEDIA_MAX_ICP_FRAME_BUFFERS
888  *
889  * <b> version 4.16 </b> April 10, 2019
890  * Added deprecated warning message for \ref NvMediaICPWaitForSoF.
891  */
894 #ifdef __cplusplus
895 }; /* extern "C" */
896 #endif
897 
898 #endif /* _NVMEDIA_ICP_H */
Specifies 20 bits per pixel.
Definition: nvmedia_icp.h:182
NvMediaBitsPerPixel
Specifies bits per pixel.
Definition: nvmedia_icp.h:170
NvMediaICPInputFormat inputFormat
Holds the input format.
Definition: nvmedia_icp.h:213
NvMediaICPInterfaceType
Specifies the image capture interface type for the CSI interface.
Definition: nvmedia_icp.h:94
#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.
uint16_t thsSettle
Holds the MIPI THS-SETTLE time.
Definition: nvmedia_icp.h:236
NvMediaICPInputFormatType inputFormatType
Holds capture input format type.
Definition: nvmedia_icp.h:190
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
Holds image capture settings for the CSI format.
Definition: nvmedia_icp.h:209
NvMediaStatus NvMediaICPGetImageGroup(NvMediaICP *icp, uint32_t millisecondTimeout, NvMediaImageGroup **imageGrp)
Gets a captured image group with frame status.
NVIDIA Media Interface: Surface Handling
struct NvMediaICP NvMediaICP
Holds an image capture object per virtual group.
Definition: nvmedia_icp.h:379
uint16_t width
Holds the capture width.
Definition: nvmedia_icp.h:217
NVIDIA Media Interface: Image Processing
NvMediaICPInterfaceType interfaceType
Holds the interface type.
Definition: nvmedia_icp.h:211
uint32_t frameRate
Holds the capture frame rate in frames per second.
Definition: nvmedia_icp.h:247
NvMediaStatus NvMediaICPWaitForSoF(NvMediaICP *icp) NVM_DEPRECATED_MSG("Use NvMediaICPGetSOFNvSciSyncFence")
Waits for next SoF (Start of Frame).
#define NVMEDIA_ICP_MAX_VIRTUAL_CHANNELS
Defines the maximum number of virtual channels per virtual group.
Definition: nvmedia_icp.h:56
Holds NvMedia version information.
Definition: nvmedia_core.h:226
Holds the image capture settings for the CSI format per virtual group.
Definition: nvmedia_icp.h:259
uint16_t startX
Holds the horizontal start position.
Definition: nvmedia_icp.h:221
uint16_t embeddedDataLines
Holds the embedded data lines.
Definition: nvmedia_icp.h:225
uint16_t numVirtualGroups
Definition: nvmedia_icp.h:386
uint16_t startY
Holds the vertical start position.
Definition: nvmedia_icp.h:223
NvMediaICPSettings icpSettings
Definition: nvmedia_icp.h:271
Specifies 14 bits per pixel.
Definition: nvmedia_icp.h:178
#define NVMEDIA_ICP_MAX_VIRTUAL_GROUPS
Defines the maximum number of virtual groups.
Definition: nvmedia_icp.h:53
NvMediaBitsPerPixel bitsPerPixel
Holds number of bits per pixel.
Definition: nvmedia_icp.h:193
NvMediaStatus NvMediaICPResume(NvMediaICP *icp)
Resumes a stopped image capture operation.
NvMediaICPEx * NvMediaICPCreateEx(NvMediaICPSettingsEx *settings)
Creates an image capture object used to capture various formats of input into an NvMediaImage.
Specifies 10 bits per pixel.
Definition: nvmedia_icp.h:174
NvMediaStatus NvMediaICPReleaseImageGroup(NvMediaICP *icp, NvMediaImageGroup **imageGrp)
Gets an image group from the internal pool that the client previously supplied with NvMediaICPFeedIma...
Holds a handle representing an image group.
NVIDIA Media Interface: Core
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:169
NvMediaStatus NvMediaICPRegisterImageGroup(NvMediaICP *icp, NvMediaImageGroup *imageGrp)
Maps a frame to the capture engine.
NvMediaICPPixelFaultError
Definition: nvmedia_icp.h:500
uint16_t numVirtualChannels
Holds the number of virtual channels per group.
Definition: nvmedia_icp.h:284
NvMediaICPCSIErrorType
Defines error status codes that specify the meanings of the "masked" bits in NvMediaICPSettings::csiE...
Definition: nvmedia_icp.h:297
Holds the capture input format.
Definition: nvmedia_icp.h:188
NvMediaICPCsiPhyMode phyMode
Holds the CSI phy mode.
Definition: nvmedia_icp.h:243
NvMediaStatus NvMediaICPGetErrorInfo(NvMediaICP *icp, NvMediaICPErrorInfo *icpErrorInfo)
Gets capture error information.
NvMediaICPCsiInputFrameError
Definition: nvmedia_icp.h:476
Holds a rectangular region of a surface.
Definition: nvmedia_core.h:133
NvMediaRect clipRect
Definition: nvmedia_icp.h:273
NvMediaICPFrameFaultError
Definition: nvmedia_icp.h:521
Specifies 16 bits per pixel.
Definition: nvmedia_icp.h:180
NvMediaICPInputFormatType
Specifies the image capture input format type.
Definition: nvmedia_icp.h:124
uint16_t virtualChannelIndex
Definition: nvmedia_icp.h:269
NvMediaICPErrorStatus errorStatus
Definition: nvmedia_icp.h:551
Holds the capture error information populated by NvMediaICPGetErrorInfo().
Definition: nvmedia_icp.h:543
NvMediaBool embeddedDataType
Holds an indicator of embedded data type.
Definition: nvmedia_icp.h:239
uint32_t csiErrorType
Holds the CSI error interrupt type.
Definition: nvmedia_icp.h:253
uint16_t numVirtualGroups
Holds the number of virtual groups.
Definition: nvmedia_icp.h:287
NvMediaStatus NvMediaICPStop(NvMediaICP *icp)
Stops the hardware engine from capturing the image.
uint32_t pixelFrequency
Holds the pixel clock frequency.
Definition: nvmedia_icp.h:231
uint32_t interfaceLanes
Holds the number of CSI interface lanes active.
Definition: nvmedia_icp.h:227
uint32_t virtualChannelId
Definition: nvmedia_icp.h:549
#define NVM_DEPRECATED_MSG(fmt)
Definition: nvmedia_core.h:39
Specifies 8 bits per pixel.
Definition: nvmedia_icp.h:172
NvMediaICPCsiPhyMode phyMode
Holds the CSI phy mode.
Definition: nvmedia_icp.h:289
NvMediaICPErrorStatus
Defines error status codes.
Definition: nvmedia_icp.h:466
uint16_t height
Holds the capture height.
Definition: nvmedia_icp.h:219
uint32_t interfaceLanes
Holds the number of active CSI interface lanes.
Definition: nvmedia_icp.h:265
NvMediaStatus NvMediaICPUnregisterImageGroup(NvMediaICP *icp, NvMediaImageGroup *imageGrp)
Unmaps a frame from the capture engine.
NvMediaICPCsiPhyMode
Specifies the CSI phy mode.
Definition: nvmedia_icp.h:199
uint16_t virtualGroupId
Definition: nvmedia_icp.h:389
NvMediaICPCsiInputStreamError
Definition: nvmedia_icp.h:491
uint32_t mipiSpeed
Holds the mipi speed in kilohertz.
Definition: nvmedia_icp.h:233
NvMediaBool disablePFSD
Holds a flag for disabling PFSD (Permanent Fault Software Diagnostic) functionality in the capture en...
Definition: nvmedia_icp.h:281
NvMediaICPInterfaceType interfaceType
Holds the interface type.
Definition: nvmedia_icp.h:261
NvMediaICP * hIcp
Definition: nvmedia_icp.h:391
Specifies 12 bits per pixel.
Definition: nvmedia_icp.h:176
NvMediaSurfaceType surfaceType
Holds the capture surface type.
Definition: nvmedia_icp.h:215
NvMediaStatus NvMediaICPGetVersion(NvMediaVersion *version)
Checks version compatibility for the NvMedia ICP library.
Holds an image capture object created by NvMediaICPCreateEx().
Definition: nvmedia_icp.h:384
uint8_t tpgEnable
Holds a Boolean; indicates whether TPG is enabled.
Definition: nvmedia_icp.h:241
uint32_t csiErrorMask
Holds the CSI error mask type.
Definition: nvmedia_icp.h:250
#define NVMEDIA_ICP_ERROR(_type_, _error_, _value_, _desc_)
A macro that creates an enumerator in enum NvMediaICPErrorStatus.
Definition: nvmedia_icp.h:82
NvMediaICPMemoryWriteError
Definition: nvmedia_icp.h:532
void NvMediaICPDestroyEx(NvMediaICPEx *icpEx)
Destroys an image capture object created by NvMediaICPCreateEx().