18#ifndef __FPSDK_COMMON_CAM_HPP__
19#define __FPSDK_COMMON_CAM_HPP__
CamStreamParams params_
Parameters.
virtual bool Connect()=0
Connect stream.
CamStream(const CamStreamParams ¶ms)
Constructor.
virtual ~CamStream()
Destructor.
virtual bool NextFrame(CamData &data)=0
Get next frame.
virtual void Disconnect()=0
Disconnect stream.
static Duration FromSec(const double sec)
Make Duration from seconds.
Camera types and utilities.
std::unique_ptr< CamStream > CamStreamPtr
Pointer to a CamStream instance, see CreateCamStream().
CamId CamIdFromValOr(const uint8_t val, const CamId def)
Convert camera ID value to enum.
const char * CamIdToStr(const CamId camid)
Stringify camera ID enum.
CamDataFmt CamDataFmtFromStrOr(const char *str, const CamDataFmt def)
Convert camera data format string to enum.
CamDataFrm CamDataFrmFromValOr(const uint8_t val, const CamDataFrm def)
Convert camera data frame type value to enum.
const char * CamDataFmtToStr(const CamDataFmt fmt)
Stringify camera data format enum.
CamId CamIdFromStrOr(const char *str, const CamId def)
Convert camera ID string to enum.
@ UNSPECIFIED
Unspecified.
CamDataFmt CamDataFmtFromValOr(const uint8_t val, const CamDataFmt def)
Convert camera data format value to enum.
const char * CamDataTypeToStr(const CamDataType type)
Stringify camera data type enum.
CamDataType
Camera data type (type of data).
@ UNSPECIFIED
Unspecified.
@ HIRES_VID
High-res video.
@ LORES_IMG
Low-res image.
@ HIRES_IMG
High-res image.
@ LORES_VID
Low-res video.
const char * CamDataFrmToStr(const CamDataFrm frm)
Stringify camera data frame type enum.
CamDataType CamDataTypeFromValOr(const uint8_t val, const CamDataType def)
Convert camera data type value to enum.
CamDataFmt
Camera data format.
@ RGB24
Packed RGB 8:8:8, 24bpp.
@ MJPEG
Motion JPEG (image/jpeg).
@ NV12
Planar YUV 4:2:0, 12bpp.
@ H264_NAL
H.264 NAL (AVC) (video/avc).
@ H265_NAL
H.265 NAL (HEVC) (video/hevc).
@ Y8
Planar Y (greyscale), 8bpp.
CamDataFrm CamDataFrmFromStrOr(const char *str, const CamDataFrm def)
Convert camera data frame type string to enum.
CamDataFrm
Camera frame type.
@ OTHER
Other frame type (unexpected).
@ UNSPECIFIED
Unspecified, invalid data.
@ I_FRAME
I-frame (= Horizon camsys MC_H26[45]_NALU_TYPE_I).
@ FULL
Full frame (non-encoded, e.g. NV12 or JPEG).
@ P_FRAME
P-frame (= Horizon camsys MC_H26[45]_NALU_TYPE_P).
CamStreamPtr CreateCamStream(const CamStreamParams ¶ms)
Create a camera stream instance.
CamDataType CamDataTypeFromStrOr(const char *str, const CamDataType def)
Convert camera data type string to enum.
Fixposition SDK: Common library.
Camera data from CamStream (or from FPL, see fpl::CamData).
uint64_t ts_
Camera image time (middle of exposure) [CLOCK_REALTIME ns] (0 = invalid).
CamId cam_id_
= meta_.cam_id_ as enum (if value in range)
uint32_t dt_
Exposure time (duration) [ns] (0 = not available).
CamDataFmt fmt_
= meta_.fmt_ as enum (if value in range)
uint64_t seq_
Sequence number.
CamDataType type_
= meta_.type_ as enum (if value in range)
bool valid_
Data valid, successfully extracted from message.
uint32_t height_
Height of the fram [px].
std::vector< uint8_t > data_
Image/frame data, contents depends on fmt_ etc.
uint32_t width_
Width of the frame [px].
CamDataFrm frm_
= meta_.frm_ as enum (if value in range)
Camera stream parameters.
int rate_
Rate (1 = every frame, 2 = every 2nd frame, ...), not for video streams.
std::string host_
Host name or IP address.
CamDataType type_
Camera data type.
static constexpr int RATE_MAX
Max rate_.
static constexpr int RATE_MIN
Min rate_.
std::string name_
Name (for debug logging).
time::Duration timeout_
Timeout receiving data (> 0.1s).
Fixposition SDK: Time utilities.