NVIDIA DRIVE OS Linux API Reference

5.1.6.1 Release
For Test and Development only

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
NvSIPLClient.hpp
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  */
10 
11 #ifndef _NVSIPLCLIENT_HPP_
12 #define _NVSIPLCLIENT_HPP_
13 
14 #include "NvSIPLCommon.hpp"
15 
16 #include "nvmedia_image.h"
17 #include "nvmedia_isc.h"
18 
19 #include <cstdint>
20 #include <string>
21 #include <memory>
22 
37 namespace nvsipl
38 {
39 
51 {
52  public:
55  {
57  std::uint64_t frameCaptureTSC;
59  uint32_t numExposures;
74  };
75 
80  struct ConsumerDesc
81  {
83  enum class OutputType
84  {
85  ICP,
86  ISP0,
87  ISP1,
88  };
89 
91  std::string sName;
93  std::uint32_t uSensorIndex;
96  };
97 
102  struct ClientDesc
103  {
106 
107  virtual ~ClientDesc() = default;
108  };
109 
116  {
117  public:
124  virtual std::uint32_t AddRef(void) = 0;
125 
132  virtual std::uint32_t Release(void) = 0;
133  };
134 
141  {
142  public:
146  virtual NvMediaImage* GetImage() = 0;
147 
153  virtual NvMediaImageGroup* GetImageGroup() = 0;
154 
159  virtual ImageMetaData GetImageData() = 0;
160  };
161 
169  {
170  public:
182  virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer* pBuffer) = 0;
183 
192  virtual SIPLStatus OnError(void) = 0;
193 
195  virtual ~INvMCallback(void) = default;
196  };
197 
204  static std::unique_ptr<INvSIPLClient> Create();
205 
213  virtual SIPLStatus Init(ClientDesc* pDesc, INvMCallback* pCallback) = 0;
214 
223  virtual SIPLStatus Start(void) = 0;
224 
233  virtual SIPLStatus Stop(void) = 0;
234 
238  virtual SIPLStatus Deinit(void) = 0;
239 
241  virtual ~INvSIPLClient(void) = default;
242 };
243 
246 } // namespace nvsipl
247 
248 
249 
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
SIPLStatus
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
ConsumerDesc
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.
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 ...