Go to the documentation of this file.
43 #include <glog/logging.h>
47 #include <linux/videodev2.h>
50 #include <sys/ioctl.h>
53 #include <unordered_map>
59 #define CLEAR(x) memset(&(x), 0, sizeof(x))
61 static int xioctl(
int fh,
unsigned int request,
void *arg) {
65 r = ioctl(fh, request, arg);
72 : m_vidPropSet(
false), m_processorPropSet(
false), m_outputFrameWidth(0),
73 m_outputFrameHeight(0), m_processedBuffer(nullptr), m_tofiConfig(nullptr),
74 m_tofiComputeContext(nullptr), m_inputVideoDev(nullptr) {
80 LOG(
INFO) <<
"freeComputeLibrary";
109 return Status::GENERIC_ERROR;
114 return Status::GENERIC_ERROR;
163 uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData,
164 uint16_t calDataLength, uint16_t
mode,
bool ispEnabled) {
169 if (iniFile !=
nullptr) {
179 &depth_ini,
mode, &status);
181 LOG(
ERROR) <<
"Failed to get calibration data";
193 LOG(
ERROR) <<
"InitTofiConfig failed";
200 LOG(
ERROR) <<
"InitTofiCompute failed";
205 LOG(
ERROR) <<
"Could not initialize compute library because config "
206 "data hasn't been loaded";
218 struct v4l2_buffer
buf[4];
221 unsigned int buf_data_len;
224 uint8_t *pdata_user_space =
nullptr;
241 pdata_user_space = (uint8_t *)malloc(
sizeof(uint8_t) * buf_data_len);
242 memcpy(pdata_user_space, pdata, buf_data_len);
268 uint32_t ret =
TofiCompute((uint16_t *)pdata_user_space,
273 return Status::GENERIC_ERROR;
278 uint32_t ret =
TofiCompute((uint16_t *)pdata_user_space,
283 return Status::GENERIC_ERROR;
309 uint32_t ret =
TofiCompute((uint16_t *)pdata_user_space,
314 return Status::GENERIC_ERROR;
319 uint32_t ret =
TofiCompute((uint16_t *)pdata_user_space,
324 return Status::GENERIC_ERROR;
336 if (pdata_user_space)
337 free(pdata_user_space);
356 FD_SET(dev->
fd, &fds);
385 buf.memory = V4L2_MEMORY_MMAP;
397 return Status::GENERIC_ERROR;
402 LOG(
WARNING) <<
"Not enough buffers avaialable";
403 return Status::GENERIC_ERROR;
410 uint8_t **
buffer, uint32_t &buf_data_len,
const struct v4l2_buffer &
buf,
416 buf_data_len =
buf.bytesused;
453 const struct v4l2_buffer &
buf) {
struct VideoDev * m_inputVideoDev
virtual aditof::Status getDeviceFileDescriptor(int &fileDescriptor) override
uint16_t * p_ab_frame
Pointer to the AB Frame.
const void * p_tofi_cal_config
Pointer to the calibration config block.
uint16_t * p_depth_frame
Pointer to the Depth Frame.
TofiConfig * getTofiCongfig()
aditof::Status waitForBufferPrivate(struct VideoDev *dev=nullptr)
@ GENERIC_ERROR
An error occured but there are no details available.
aditof::Status setVideoProperties(int frameWidth, int frameHeight)
TofiConfig * InitTofiConfig(ConfigFileData *p_cal_file_data, ConfigFileData *p_config_file_data, ConfigFileData *p_ini_file_data, uint16_t mode, uint32_t *p_status)
Function to Initialize the configuration for TOFI cal config (p_tofi_cal_config) using calibration/co...
TofiComputeContext * InitTofiCompute(const void *p_tofi_cal_config, uint32_t *p_status)
aditof::Status setInputDevice(VideoDev *inputVideoDev)
const char * m_videoDeviceName
unsigned char * p_data
Pointer to the data.
virtual aditof::Status dequeueInternalBuffer(struct v4l2_buffer &buf) override
virtual aditof::Status waitForBuffer() override
GLenum GLenum GLsizei const GLuint GLboolean enabled
uint16_t m_outputFrameWidth
static int xioctl(int fh, unsigned int request, void *arg)
void FreeTofiCompute(TofiComputeContext *p_tofi_compute_context)
uint16_t * m_processedBuffer
struct v4l2_capability m_videoCap
struct v4l2_plane planes[8]
aditof::Status enqueueInternalBufferPrivate(struct v4l2_buffer &buf, struct VideoDev *dev=nullptr)
aditof::Status setProcessorProperties(uint8_t *iniFile, uint16_t iniFileLength, uint8_t *calData, uint16_t calDataLength, uint16_t mode, bool ispEnabled)
TofiConfig * m_tofiConfig
GLenum GLuint GLenum GLsizei const GLchar * buf
aditof::Status dequeueInternalBufferPrivate(struct v4l2_buffer &buf, struct VideoDev *dev=nullptr)
Status
Status of any operation that the TOF sdk performs.
aditof::Status processBuffer(uint16_t *buffer, const uint16_t &chipID, const uint8_t &mode_num)
struct v4l2_format m_videoFormat
enum v4l2_buf_type videoBuffersType
aditof::Status getDepthComputeVersion(uint8_t &enabled)
int TofiCompute(const uint16_t *const input_frame, TofiComputeContext *const p_tofi_compute_context, TemperatureInfo *p_temperature)
TofiConfig * InitTofiConfig_isp(ConfigFileData *p_ini_file_data, uint16_t mode, uint32_t *p_status, TofiXYZDealiasData *p_xyz_dealias_data)
Function to Initialize the configuration for TOFI cal config incase of isp.
aditof::Status getInternalBufferPrivate(uint8_t **buffer, uint32_t &buf_data_len, const struct v4l2_buffer &buf, struct VideoDev *dev=nullptr)
char * strerror(int errno)
float * p_conf_frame
Pointer to the Confidence Frame.
uint8_t depthComputeOpenSourceEnabled
TofiXYZDealiasData m_xyzDealiasData[11]
struct VideoDev * m_outputVideoDev
unsigned int nVideoBuffers
virtual aditof::Status getInternalBuffer(uint8_t **buffer, uint32_t &buf_data_len, const struct v4l2_buffer &buf) override
virtual aditof::Status enqueueInternalBuffer(struct v4l2_buffer &buf) override
uint16_t m_outputFrameHeight
struct buffer * videoBuffers
TofiComputeContext * m_tofiComputeContext
void FreeTofiConfig(TofiConfig *p_tofi_cal_config)
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:48