24 #ifndef __FIREVISION_CAMS_V4L2_H_
25 #define __FIREVISION_CAMS_V4L2_H_
27 #include <fvcams/camera.h>
29 #include <linux/types.h>
30 #include <linux/videodev2.h>
32 #include <fvcams/control/color.h>
33 #include <fvcams/control/image.h>
36 #define MMAP_NUM_BUFFERS 4;
43 class CameraArgumentParser;
54 V4L2Camera(
const char *device_name =
"/dev/video0");
63 virtual void capture();
64 virtual void print_info();
67 virtual unsigned char *buffer();
68 virtual unsigned int buffer_size();
69 virtual void dispose_buffer();
71 virtual unsigned int pixel_width();
72 virtual unsigned int pixel_height();
73 virtual colorspace_t colorspace();
76 virtual void set_image_number(
unsigned int n);
78 virtual bool auto_gain();
79 virtual void set_auto_gain(
bool enabled);
80 virtual bool auto_white_balance();
81 virtual void set_auto_white_balance(
bool enabled);
82 virtual bool auto_exposure();
83 virtual void set_auto_exposure(
bool enabled);
84 virtual int red_balance();
85 virtual void set_red_balance(
int red_balance);
86 virtual int blue_balance();
87 virtual void set_blue_balance(
int blue_balance);
88 virtual int u_balance();
89 virtual void set_u_balance(
int u_balance);
90 virtual int v_balance();
91 virtual void set_v_balance(
int v_balance);
92 virtual unsigned int brightness();
93 virtual void set_brightness(
unsigned int brightness);
94 virtual unsigned int contrast();
95 virtual void set_contrast(
unsigned int contrast);
96 virtual unsigned int saturation();
97 virtual void set_saturation(
unsigned int saturation);
99 virtual void set_hue(
int hue);
100 virtual unsigned int exposure();
101 virtual void set_exposure(
unsigned int exposure);
102 virtual unsigned int gain();
103 virtual void set_gain(
unsigned int gain);
105 virtual const char * format();
106 virtual void set_format(
const char *format);
107 virtual unsigned int width();
108 virtual unsigned int height();
109 virtual void set_size(
unsigned int width,
110 unsigned int height);
111 virtual bool horiz_mirror();
112 virtual bool vert_mirror();
113 virtual void set_horiz_mirror(
bool enabled);
114 virtual void set_vert_mirror(
bool enabled);
115 virtual unsigned int fps();
116 virtual void set_fps(
unsigned int fps);
117 virtual unsigned int lens_x_corr();
118 virtual unsigned int lens_y_corr();
119 virtual void set_lens_x_corr(
unsigned int x_corr);
120 virtual void set_lens_y_corr(
unsigned int y_corr);
125 virtual void set_one_control(
const char *ctrl,
unsigned int id,
int value);
126 virtual int get_one_control(
const char *ctrl,
unsigned int id);
129 virtual void post_open();
130 virtual void select_read_method();
131 virtual void select_format();
132 virtual void set_fps();
133 virtual void set_controls();
134 virtual void create_buffer();
135 virtual void reset_cropping();
157 unsigned char *buffer;
161 struct ControlParameterInt
169 V4L2CameraData *_data;
171 ReadMethod _read_method;
175 colorspace_t _colorspace;
178 unsigned int _height;
179 unsigned int _bytes_per_line;
180 FrameBuffer *_frame_buffers;
181 unsigned int _buffers_length;
193 ControlParameterInt _brightness;
194 ControlParameterInt _contrast;
195 ControlParameterInt _saturation;
196 ControlParameterInt _hue;
197 ControlParameterInt _red_balance;
198 ControlParameterInt _blue_balance;
199 ControlParameterInt _exposure;
200 ControlParameterInt _gain;
201 ControlParameterInt _lens_x;
202 ControlParameterInt _lens_y;
210 #endif //__FIREVISION_CAMS_V4L2_H_
char * _device_name
Device name.
Camera interface for image aquiring devices in FireVision.
Camera color control interface.
Video4Linux 2 camera access implementation.
A class for handling time.
Camera image control interface.
General Video4Linux camera implementation.