NVIDIA DRIVE OS Linux SDK API Reference

5.1.15.2 Release
For Test and Development only
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 #ifdef NVMEDIA_NVSCI_ENABLE
20 #include "nvscisync.h"
21 #include "nvscistream.h"
22 #endif // NVMEDIA_NVSCI_ENABLE
23 
24 #include <cstdint>
25 #include <string>
26 #include <memory>
27 
42 namespace nvsipl
43 {
44 
56 {
57  public:
60  {
62  std::uint64_t frameCaptureTSC;
64  std::uint32_t numExposures;
79  };
80 
87  {
88  public:
93  virtual void AddRef(void) = 0;
94 
101  virtual SIPLStatus Release(void) = 0;
102 
103 #ifdef NVMEDIA_NVSCI_ENABLE
104 
111  virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence &prefence) = 0;
112 
123  virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence) = 0;
124 
127 #endif // NVMEDIA_NVSCI_ENABLE
128  };
129 
136  {
137  public:
141  virtual NvMediaImage* GetImage() = 0;
142 
148  virtual NvMediaImageGroup* GetImageGroup() = 0;
149 
154  virtual ImageMetaData GetImageData() = 0;
155  };
156 
164  {
165  public:
177  virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer* pBuffer) = 0;
178  };
179 
182  {
184  enum class OutputType
185  {
186  ICP,
187  ISP0,
188  ISP1,
189  };
190 
195  };
196 };
197 
200 } // namespace nvsipl
201 
202 
203 
204 #endif // NVSIPLCLIENT_HPP
nvsipl::INvSIPLClient::ImageMetaData::sensorCRCInfo
NvMediaISCCRC sensorCRCInfo
Holds the parsed embedded data sensor crc info for the captured frame.
Definition: NvSIPLClient.hpp:72
nvsipl::INvSIPLClient::ImageMetaData::sensorWBInfo
NvMediaISCWhiteBalance sensorWBInfo
Holds the parsed embedded data sensor white balance info for the captured frame.
Definition: NvSIPLClient.hpp:68
nvsipl::INvSIPLClient::ConsumerDesc::callback
INvMCallback * callback
Holds a pointer to a user-implemented class object inheriting from INvMCallback.
Definition: NvSIPLClient.hpp:194
nvsipl::INvSIPLClient::ImageMetaData::sensorPWLInfo
NvMediaISCPWL sensorPWLInfo
Holds the parsed embedded data sensor PWL info for the captured frame.
Definition: NvSIPLClient.hpp:70
NvMediaISCFrameReport
Holds the sensor report frame report structure.
Definition: nvmedia_isc.h:1062
nvsipl::INvSIPLClient::ImageMetaData::sensorExpInfo
NvMediaISCExposure sensorExpInfo
Holds the parsed embedded data sensor exposure info for the captured frame.
Definition: NvSIPLClient.hpp:66
NvMediaISCFrameSeqNum
Holds the sensor frame sequence number structure.
Definition: nvmedia_isc.h:1152
nvsipl::INvSIPLClient::ConsumerDesc::eOutputType
OutputType eOutputType
Holds an OutputType.
Definition: NvSIPLClient.hpp:192
nvsipl::INvSIPLClient::ImageMetaData::frameCaptureTSC
std::uint64_t frameCaptureTSC
Holds the TSC timestamp of the frame capture.
Definition: NvSIPLClient.hpp:62
NvMediaISCWhiteBalance
Holds the sensor white balance gain structure.
Definition: nvmedia_isc.h:1039
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ICP
@ ICP
Indicates the unprocessed output of the image sensor.
nvsipl::INvSIPLClient
Defines the public data structures and describes the interfaces for NvSIPL Client (libnvsipl....
Definition: NvSIPLClient.hpp:55
NvSIPLCommon.hpp
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP0
@ ISP0
Indicates the first output of NvMediaISP.
nvsipl::INvSIPLClient::INvSIPLBuffer::Release
virtual SIPLStatus Release(void)=0
Release a reference.
nvsipl::INvSIPLClient::ImageMetaData
Defines the metadata associated with the image.
Definition: NvSIPLClient.hpp:59
NvMediaISCExposure
Holds sensor exposure information.
Definition: nvmedia_isc.h:1010
nvscisync.h
NVIDIA Software Communications Interface (SCI) : NvSciSync
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImage
virtual NvMediaImage * GetImage()=0
Gets a handle to NvMediaImage.
nvsipl::INvSIPLClient::ImageMetaData::sensorReportInfo
NvMediaISCFrameReport sensorReportInfo
Holds the parsed embedded data frame report info for the captured frame.
Definition: NvSIPLClient.hpp:74
nvsipl::INvSIPLClient::INvSIPLBuffer
Describes the interfaces of SIPL buffer.
Definition: NvSIPLClient.hpp:86
nvsipl::INvSIPLClient::ConsumerDesc::OutputType
OutputType
Defines the types of the SIPL pipeline output.
Definition: NvSIPLClient.hpp:184
nvsipl::INvSIPLClient::ConsumerDesc
Describes a client of the pipeline.
Definition: NvSIPLClient.hpp:181
NvMediaImageRec
Holds a handle representing image objects.
Definition: nvmedia_image.h:71
nvsipl::INvSIPLClient::ImageMetaData::numExposures
std::uint32_t numExposures
Holds the parsed embedded data frame number of exposures info for the captured frame.
Definition: NvSIPLClient.hpp:64
nvmedia_isc.h
NVIDIA Media Interface: Image Sensor Control (ISC)
nvsipl::INvSIPLClient::INvMCallback::OnFrameAvailable
virtual SIPLStatus OnFrameAvailable(INvSIPLBuffer *pBuffer)=0
A new output frame is available.
nvsipl::INvSIPLClient::INvSIPLBuffer::AddRef
virtual void AddRef(void)=0
Adds a reference.
NvMediaISCPWL
Holds the sensor companding piecewise linear (PWL) structure.
Definition: nvmedia_isc.h:1085
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in Sensor Input Processing Library (SIPL) modules.
Definition: NvSIPLCommon.hpp:38
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageGroup
virtual NvMediaImageGroup * GetImageGroup()=0
Gets a handle to NvMediaImageGroup.
NvSciStreamCookie
uintptr_t NvSciStreamCookie
Component-assigned cookie for a packet.
Definition: nvscistream.h:64
NvSciSyncFence
Defines the opaque NvSciSyncFence.
Definition: nvscisync.h:227
nvscistream.h
NVIDIA Software Communications Interface (SCI) : NvSciStream
nvsipl::INvSIPLClient::ConsumerDesc::OutputType::ISP1
@ ISP1
Indicates the second output of NvMediaISP.
nvsipl::INvSIPLClient::ImageMetaData::frameSeqNumInfo
NvMediaISCFrameSeqNum frameSeqNumInfo
Holds parsed embedded data frame sequence number info for the captured frame.
Definition: NvSIPLClient.hpp:78
NvMediaImageGroup
Holds a handle representing an image group.
Definition: nvmedia_image.h:115
nvsipl::INvSIPLClient::INvSIPLBuffer::AddNvSciSyncPrefence
virtual SIPLStatus AddNvSciSyncPrefence(NvSciSyncFence &prefence)=0
Add an NvSciSync prefence.
nvsipl::INvSIPLClient::INvSIPLBuffer::cookie
NvSciStreamCookie cookie
NvSciStreamCookie associated with the buffer.
Definition: NvSIPLClient.hpp:126
nvsipl::INvSIPLClient::INvSIPLNvMBuffer
Describes a SIPL buffer containing an NvMediaImage or NvMediaImageGroup.
Definition: NvSIPLClient.hpp:135
nvsipl
Contains the classes and variables for implementation of Sensor Input Processing Library (SIPL).
Definition: NvSIPLDeviceBlock.hpp:32
NvMediaISCCRC
Holds the sensor CRC structure.
Definition: nvmedia_isc.h:1131
nvsipl::INvSIPLClient::ImageMetaData::sensorTempInfo
NvMediaISCTemperature sensorTempInfo
Holds the parsed embedded data sensor temperature info for the captured frame.
Definition: NvSIPLClient.hpp:76
nvmedia_image.h
NVIDIA Media Interface: Image Processing
nvsipl::INvSIPLClient::INvSIPLNvMBuffer::GetImageData
virtual ImageMetaData GetImageData()=0
Gets an nvsipl::INvSIPLClient::ImageMetaData associated with NvMediaImage or NvMediaImageGroup.
nvsipl::INvSIPLClient::INvSIPLBuffer::GetEOFNvSciSyncFence
virtual SIPLStatus GetEOFNvSciSyncFence(NvSciSyncFence *postfence)=0
Retrieve the latest NvSciSync EOF fence.
NvMediaISCTemperature
Holds the sensor temperature structure.
Definition: nvmedia_isc.h:1108
nvsipl::INvSIPLClient::INvMCallback
Describes a class with callback functions that must be implemented by the consumer of the SIPL image ...
Definition: NvSIPLClient.hpp:163