24#ifndef _FIREVISION_CAMS_V4L2_H_
25#define _FIREVISION_CAMS_V4L2_H_
27#include <fvcams/camera.h>
28#include <fvcams/control/color.h>
29#include <fvcams/control/image.h>
30#include <linux/types.h>
31#include <linux/videodev2.h>
34#define MMAP_NUM_BUFFERS 4;
38class CameraArgumentParser;
47 V4L2Camera(
const char *device_name =
"/dev/video0");
60 virtual unsigned char *
buffer();
95 virtual unsigned int gain();
98 virtual const char *
format();
100 virtual unsigned int width();
101 virtual unsigned int height();
107 virtual unsigned int fps();
125 virtual void set_one_control(
const char *ctrl,
unsigned int id,
int value);
129 virtual void post_open();
130 virtual void select_read_method();
131 virtual void select_standard();
132 virtual void select_input();
133 virtual void select_format();
134 virtual void set_fps();
135 virtual void set_controls();
136 virtual void create_buffer();
137 virtual void reset_cropping();
161 struct ControlParameterInt
169 V4L2CameraData *_data;
171 ReadMethod _read_method;
177 colorspace_t _colorspace;
180 unsigned int _height;
181 unsigned int _bytes_per_line;
182 FrameBuffer * _frame_buffers;
183 unsigned int _buffers_length;
194 ControlParameterInt _brightness;
195 ControlParameterInt _contrast;
196 ControlParameterInt _saturation;
197 ControlParameterInt _hue;
198 ControlParameterInt _red_balance;
199 ControlParameterInt _blue_balance;
200 ControlParameterInt _exposure;
201 ControlParameterInt _gain;
202 ControlParameterInt _lens_x;
203 ControlParameterInt _lens_y;
205 ControlParameterInt _white_balance_temperature;
206 TriState _exposure_auto_priority;
207 ControlParameterInt _exposure_auto;
208 ControlParameterInt _exposure_absolute;
209 ControlParameterInt _sharpness;
A class for handling time.
Camera color control interface.
Camera image control interface.
virtual void size(unsigned int &width, unsigned int &height)
Get the current image size.
Camera interface for image aquiring devices in FireVision.
Video4Linux 2 camera access implementation.
virtual void set_fps(unsigned int fps)
Set the number of frames per second the camera tries to deliver.
virtual void close()
Close camera.
virtual void set_exposure_absolute(unsigned int exposure_absolute)
set absolute exposure time (1/s)
virtual void stop()
Stop image transfer from the camera.
virtual unsigned int exposure_absolute()
Get absolute exposure time.
virtual void set_one_control(const char *ctrl, unsigned int id, int value)
Set one Camera control value.
virtual void set_contrast(unsigned int contrast)
Set new contrast.
virtual unsigned int pixel_width()
Width of image in pixels.
virtual int red_balance()
Get current red balance.
virtual unsigned int pixel_height()
Height of image in pixels.
virtual void set_exposure(unsigned int exposure)
Set new exposure.
virtual bool exposure_auto_priority()
Get exposure_auto_priority V4L2 control.
virtual void set_gain(unsigned int gain)
Set new gain.
virtual void set_red_balance(int red_balance)
Set red balance.
virtual unsigned int buffer_size()
Size of buffer.
virtual unsigned int contrast()
Get current contrast.
virtual ~V4L2Camera()
Destructor.
virtual void set_blue_balance(int blue_balance)
Set blue balance.
virtual void dispose_buffer()
Dispose current buffer.
virtual void set_image_number(unsigned int n)
Set image number to retrieve.
virtual void capture()
Capture an image.
virtual void set_size(unsigned int width, unsigned int height)
Set the image size the camera should use.
virtual void set_hue(int hue)
Set new hue.
virtual const char * format()
Get the image format the camera currently uses.
virtual unsigned int brightness()
Get current brightness.
char * _device_name
Device name.
virtual unsigned int exposure()
Get current exposure.
virtual void set_white_balance_temperature(unsigned int white_balance_temperature)
Set white balance.
virtual bool horiz_mirror()
Return whether the camera image is horizontally mirrored.
virtual colorspace_t colorspace()
Colorspace of returned image.
virtual bool ready()
Camera is ready for taking pictures.
virtual void set_brightness(unsigned int brightness)
Set new brightness.
virtual unsigned int lens_y_corr()
Get current lens y correction.
virtual unsigned int fps()
Get the number of frames per second that have been requested from the camera.
virtual void flush()
Flush image queue.
virtual unsigned char * buffer()
Get access to current image buffer.
virtual void start()
Start image transfer from the camera.
virtual void set_lens_x_corr(unsigned int x_corr)
Set lens x correction.
virtual unsigned int height()
Get the current height of the image.
virtual void set_u_balance(int u_balance)
Set u balance.
virtual unsigned int gain()
Get current gain.
virtual void print_info()
Print out camera information.
virtual void set_auto_white_balance(bool enabled)
Enable/disable auto white balance.
virtual fawkes::Time * capture_time()
Get the Time of the last successfully captured image.
virtual void set_exposure_auto(unsigned int exposure_auto)
Enable/disable auto exposure.
virtual void set_v_balance(int v_balance)
Set v balance.
virtual bool auto_gain()
Return whether auto gain is enabled.
virtual void set_format(const char *format)
Set the image format the camera should use.
virtual unsigned int exposure_auto()
Return whether auto exposure is enabled.
virtual void set_exposure_auto_priority(bool enabled)
Set exposure_auto_priority V4L2 control.
virtual unsigned int width()
Get the current width of the image.
virtual unsigned int lens_x_corr()
Get current lens x correction.
virtual void set_saturation(unsigned int saturation)
Set new saturation.
virtual unsigned int saturation()
Get current saturation.
virtual unsigned int sharpness()
Get sharpness value.
V4L2Camera(const char *device_name="/dev/video0")
Constructor.
virtual int v_balance()
Get current v balance.
virtual bool auto_white_balance()
Return whether auto white balance is enabled.
virtual int blue_balance()
Get current blue balance.
virtual void set_vert_mirror(bool enabled)
Set whether the camera should mirror images vertically.
virtual void open()
Open the camera.
virtual int get_one_control(const char *ctrl, unsigned int id)
Get one Camera control value.
virtual void set_sharpness(unsigned int sharpness)
Set sharpness.
virtual int u_balance()
Get current u balance.
virtual bool vert_mirror()
Return whether the camera image is vertically mirrored.
virtual unsigned int white_balance_temperature()
Get absolute white balance setting.
virtual void set_horiz_mirror(bool enabled)
Set whether the camera should mirror images horizontally.
virtual void set_auto_gain(bool enabled)
Enable/disable auto gain.
virtual void set_lens_y_corr(unsigned int y_corr)
Set lens y correction.
virtual int hue()
Get current hue.
General Video4Linux camera implementation.