15 #ifndef _CAM_V4L2_CONFIG_H_
16 #define _CAM_V4L2_CONFIG_H_
21 #include <linux/videodev2.h>
25 #include <sys/ioctl.h>
28 #include <sys/types.h>
42 #include <base-logging/Logging.hpp>
44 #include <base/samples/Frame.hpp>
77 memset(&
mCtrl, 0,
sizeof(
struct v4l2_queryctrl));
137 void readControl(
struct v4l2_queryctrl& queryctrl_tmp);
208 bool getControlFlag(uint32_t
const id, uint32_t
const flag,
bool* set);
229 uint32_t
const pixelformat=0);
270 void writeStreamparm(uint32_t
const numerator, uint32_t
const denominator);
319 bool getBuffer(std::vector<uint8_t>& buffer,
bool blocking_read, int32_t timeout_ms);
327 struct v4l2_capability mCapability;
329 std::map<uint32_t, struct CamCtrl> mCamCtrls;
331 struct v4l2_format mFormat;
332 struct v4l2_cropcap mCropcap;
333 std::vector<struct v4l2_fmtdesc> mFormatDescriptions;
335 struct v4l2_streamparm mStreamparm;
339 std::set<uint32_t> mAutoManualDependentControlIds;
342 bool mStreamingActivated;
343 bool mConversionRequiredYUYV2RGB;
351 void getQueryBuffer(
struct v4l2_buffer& query_buffer);
356 int xioctl(
int fd,
int request,
void *arg);
struct v4l2_queryctrl mCtrl
Definition: cam_config.h:83
int32_t readControlValue(uint32_t const id)
Definition: cam_config.cpp:429
bool getControlMaximum(uint32_t const id, int32_t *maximum)
Definition: cam_config.cpp:627
void writeImagePixelFormat(uint32_t const width=0, uint32_t const height=0, uint32_t const pixelformat=0)
Definition: cam_config.cpp:756
CamCtrl()
Definition: cam_config.h:75
void writeControlValue(uint32_t const id, int32_t value, bool just_write=false)
Definition: cam_config.cpp:446
bool getFPS(float *fps)
Definition: cam_config.cpp:1066
std::string getCapabilityDriver()
Definition: cam_config.cpp:130
bool mWriteable
Definition: cam_config.h:86
std::vector< uint32_t > getControlValidIDs()
Definition: cam_config.cpp:516
bool getBuffer(std::vector< uint8_t > &buffer, bool blocking_read, int32_t timeout_ms)
Definition: cam_config.cpp:1175
bool getControlMinimum(uint32_t const id, int32_t *minimum)
Definition: cam_config.cpp:613
std::string getCapabilityCard()
Definition: cam_config.cpp:136
bool getImageSizeimage(uint32_t *sizeimage)
Definition: cam_config.cpp:896
bool getControlName(uint32_t const id, std::string *name)
Definition: cam_config.cpp:596
void readStreamparm()
Definition: cam_config.cpp:960
bool hasCapturemodeStreamparm(uint32_t capturemode)
Definition: cam_config.cpp:1087
void initRequesting()
Definition: cam_config.cpp:1105
Definition: cam_config.h:56
bool getControlValue(uint32_t const id, int32_t *value)
Definition: cam_config.cpp:568
bool readFPS(float *fps)
Definition: cam_config.cpp:1041
std::vector< std::string > mMenuItems
Definition: cam_config.h:84
bool getImagePixelformatString(std::string *pixelformat_str)
Definition: cam_config.cpp:858
void listImageFormat()
Definition: cam_config.cpp:788
bool getImagePixelformat(uint32_t *pixelformat)
Definition: cam_config.cpp:849
void readImageFormat()
Definition: cam_config.cpp:706
bool getImageWidth(uint32_t *width)
Definition: cam_config.cpp:831
void listCapabilities()
Definition: cam_config.cpp:84
bool getImageHeight(uint32_t *height)
Definition: cam_config.cpp:840
std::string getCapabilityBusInfo()
Definition: cam_config.cpp:142
bool getControlDefaultValue(uint32_t const id, int32_t *default_value)
Definition: cam_config.cpp:655
CamConfigException(const std::string &what_arg)
Definition: cam_config.h:58
uint32_t toV4L2ImageFormat(base::samples::frame::frame_mode_t mode)
Definition: cam_config.cpp:918
bool getControlFlag(uint32_t const id, uint32_t const flag, bool *set)
Definition: cam_config.cpp:669
Definition: cam_config.h:73
Definition: cam_config.h:67
bool mReadable
Definition: cam_config.h:87
void cleanupRequesting()
Definition: cam_config.cpp:1214
std::string getCapabilityVersion()
Definition: cam_config.cpp:148
bool getImageField(uint32_t *field)
Definition: cam_config.cpp:874
bool isControlIdValid(uint32_t const id) const
Definition: cam_config.cpp:559
bool hasCapability(uint32_t capability_field)
Definition: cam_config.cpp:155
void writeStreamparm(uint32_t const numerator, uint32_t const denominator)
Definition: cam_config.cpp:977
bool getControlStep(uint32_t const id, int32_t *step)
Definition: cam_config.cpp:641
int getFd()
Definition: cam_config.h:102
void readControl()
Definition: cam_config.cpp:173
void setControlValuesToDefault()
Definition: cam_config.cpp:695
int32_t mValue
Definition: cam_config.h:85
bool getControlType(uint32_t const id, uint32_t *type)
Definition: cam_config.cpp:582
bool getImageBytesperline(uint32_t *bytesperline)
Definition: cam_config.cpp:885
void listStreamparm()
Definition: cam_config.cpp:1012
bool isControlIdWritable(uint32_t const id) const
Definition: cam_config.cpp:564
bool hasCapabilityStreamparm(uint32_t capability_field)
Definition: cam_config.cpp:1070
~CamConfig()
Definition: cam_config.cpp:63
std::vector< struct CamConfig::CamCtrl > getControlList()
Definition: cam_config.cpp:527
bool getImageColorspace(uint32_t *colorspace)
Definition: cam_config.cpp:907
void readCapability()
Definition: cam_config.cpp:69
bool isImageAvailable(int32_t timeout_ms)
Definition: cam_config.cpp:1146
void listControls()
Definition: cam_config.cpp:538
~CamCtrl()
Definition: cam_config.h:80
void writeFPS(uint32_t const fps)
Definition: cam_config.cpp:1057