NVIDIA DRIVE OS Linux API Reference Release
For Test and Development only

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2018-2019, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
14 #include "NvSIPLCommon.hpp"
16 #include "nvmedia_image.h"
17 #include "nvmedia_isc.h"
19 #include <cstdint>
20 #include <string>
21 #include <memory>
37 namespace nvsipl
38 {
51 {
52  public:
55  {
57  std::uint64_t frameCaptureTSC;
59  uint32_t numExposures;
74  };
80  struct ConsumerDesc
81  {
83  enum class OutputType
84  {
85  ICP,
86  ISP0,
87  ISP1,
88  };
91  std::string sName;
93  std::uint32_t uSensorIndex;
96  };
102  struct ClientDesc
103  {
107  virtual ~ClientDesc() = default;
108  };
116  {
117  public:
124  virtual std::uint32_t AddRef(void) = 0;
132  virtual std::uint32_t Release(void) = 0;
133  };
141  {
142  public:
146  virtual NvMediaImage* GetImage() = 0;
153  virtual NvMediaImageGroup* GetImageGroup() = 0;
159  virtual ImageMetaData GetImageData() = 0;
160  };
169  {
170  public:
182  virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer* pBuffer) = 0;
192  virtual SIPLStatus OnError(void) = 0;
195  virtual ~INvMCallback(void) = default;
196  };
204  static std::unique_ptr<INvSIPLClient> Create();
213  virtual SIPLStatus Init(ClientDesc* pDesc, INvMCallback* pCallback) = 0;
223  virtual SIPLStatus Start(void) = 0;
233  virtual SIPLStatus Stop(void) = 0;
238  virtual SIPLStatus Deinit(void) = 0;
241  virtual ~INvSIPLClient(void) = default;
242 };
246 } // namespace nvsipl
250 #endif //_NVSIPLCLIENT_HPP_
Holds the sensor companding piecewise linear (PWL) structure.
Definition: nvmedia_isc.h:1257
virtual ~INvSIPLClient(void)=default
Default destructor.
virtual std::uint32_t Release(void)=0
Release a reference.
Holds a handle representing image objects.
Definition: nvmedia_image.h:69
static std::unique_ptr< INvSIPLClient > Create()
Create an instance of NvSIPL Client (libnvsipl.so).
virtual SIPLStatus Deinit(void)=0
De-initializes NvSIPL Client (libnvsipl.so).
std::uint32_t uSensorIndex
Holds the ID of the sensor.
virtual std::uint32_t AddRef(void)=0
Adds a reference.
Defines a consumer of the output of the SIPL pipeline.
Indicates the second output of NvMediaISP.
virtual NvMediaImageGroup * GetImageGroup()=0
Gets a handle to NvMediaImageGroup.
Holds sensor exposure information.
Definition: nvmedia_isc.h:1182
virtual SIPLStatus OnError(void)=0
An error occurred in the image processing pipeline.
NvMediaISCTemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
NVIDIA Media Interface: Image Processing
NvMediaISCFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
virtual ImageMetaData GetImageData()=0
Gets an nvsipl::INvSIPLClient::ImageMetaData associated with NvMediaImage or NvMediaImageGroup.
virtual NvMediaImage * GetImage()=0
Gets a handle to NvMediaImage.
NVIDIA Sensor Input Processing Library: Common Data Structures - Sensor Input Processing Library (SI...
Holds the sensor temperature structure.
Definition: nvmedia_isc.h:1280
Describes the interfaces of SIPL buffer.
NvMediaISCWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
std::string sName
Holds the name of the consumer.
Defines the public data structures and describes the interfaces for NvSIPL Client (libnvsipl...
NvMediaISCPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Holds a handle representing an image group.
Defines the metadata associated with the image.
Indicates the unprocessed output of the image sensor.
Holds the sensor CRC structure.
Definition: nvmedia_isc.h:1303
Defines the status codes returned by functions in Sensor Input Processing Library (SIPL) modules...
virtual SIPLStatus Stop(void)=0
Stops NvSIPL Client (libnvsipl.so).
virtual ~INvMCallback(void)=default
Default destructor.
NvMediaISCExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Indicates the first output of NvMediaISP.
ConsumerDesc oConsDesc
NvMediaISCFrameSeqNum frameSeqNumInfo
Holds parsed embedded data frame sequence number info for the captured frame.
Describes a SIPL buffer containing an NvMediaImage or NvMediaImageGroup.
NvMediaISCCRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
NVIDIA Media Interface: Image Sensor Control (ISC)
virtual SIPLStatus Init(ClientDesc *pDesc, INvMCallback *pCallback)=0
Initializes NvSIPL Client (libnvsipl.so).
Describes a client of the pipeline.
OutputType eOutputType
Holds the OutputType.
Defines the types of the SIPL pipeline output.
uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
std::uint64_t frameCaptureTSC
Holds the TSC timestamp of the frame capture.
Holds the sensor frame sequence number structure.
Definition: nvmedia_isc.h:1325
virtual SIPLStatus Start(void)=0
Starts NvSIPL Client (libnvsipl.so).
Holds the sensor report frame report structure.
Definition: nvmedia_isc.h:1234
Holds the sensor white balance gain structure.
Definition: nvmedia_isc.h:1211
virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer *pBuffer)=0
A new output frame is available.
Describes a class with callback functions that must be implemented by the consumer of the SIPL image ...