1 #ifndef GCP_GRABBER_FRAMEGRABBER_H
2 #define GCP_GRABBER_FRAMEGRABBER_H
15 #include <linux/types.h>
16 #include <linux/videodev.h>
25 #include "gcp/program/common/Program.h"
27 #include "gcp/util/common/Angle.h"
28 #include "gcp/util/common/HourAngle.h"
29 #include "gcp/util/common/Declination.h"
30 #include "gcp/util/common/Debug.h"
31 #include "gcp/util/common/Exception.h"
32 #include "gcp/util/common/LogStream.h"
34 #include "gcp/pgutil/common/PgUtil.h"
47 #include <sys/types.h>
50 #include <sys/ioctl.h>
52 #include <linux/videodev2.h>
54 #define CLEAR(x) memset(&(x), 0, sizeof(x))
87 static enum io_method io;
90 unsigned int n_buffers;
93 static int frame_count;
97 void errno_exit(
const char *s);
98 int xioctl(
int fh,
int request,
void *arg);
99 void process_image(
const void *p,
int size);
100 int read_frame(
void);
101 void init_read(
unsigned int buffer_size);
102 void stop_capturing(
void);
103 void start_capturing(
void);
104 void uninit_device(
void);
105 void init_mmap(
void);
106 void init_userp(
unsigned int buffer_size);
107 void init_device(
void);
108 void close_device(
void);
109 void open_device(
void);
115 void queryProperties();
116 void printProperties();
119 void printCapabilities();
123 void setWindow(
unsigned short width = defaultWidth_,
124 unsigned short height = defaultHeight_);
127 void printChannel(
struct video_channel& cp);
128 void setTunerToPal();
132 void setChannel(
unsigned short channel = defaultChannel_);
134 void getImage(std::vector<char> &theImage);
137 void queryImageBuffer();
138 void printImageBuffer();
143 void setDepth(
int depth=defaultPixelDepth_);
144 void setBrightness(
unsigned short brightness = defaultBrightness_);
145 void setContrast(
unsigned short contrast = defaultContrast_);
154 static std::string defaultDevFileName_;
155 static const unsigned short defaultWidth_ = 512;
156 static const unsigned short defaultHeight_ = 480;
157 static const int defaultPixelDepth_ = 8;
158 static const unsigned short defaultBrightness_ = 32768;
159 static const unsigned short defaultContrast_ = 27648;
162 static const unsigned short defaultChannel_ = 1;
170 std::string devFileName_;
172 struct video_capability vc_;
173 struct video_channel cp_;
174 struct video_picture vp_;
175 struct video_window vw_;
176 struct video_mbuf vm_;
177 struct video_mmap vb_;
178 struct video_tuner vt_;
179 struct v4l2_output v4out_;
181 void openFrameGrabber(std::string devFileName);
183 void printImageBuffer(
struct video_mbuf& vm);
184 void printCapabilities(
struct video_capability& vc);
185 void printWindow(
struct video_window& vw);
186 void printPicture(
struct video_picture& vp);
187 void printTuner(
struct video_tuner& vt);
195 #endif // End #ifndef GCP_GRABBER_FRAMEGRABBER_H
void queryWindow()
Definition: FrameGrabber.cc:531
int queryChannel()
Definition: FrameGrabber.cc:565
void setBrightness(unsigned short brightness=defaultBrightness_)
Definition: FrameGrabber.cc:674
void createCaptureBuffer()
Definition: FrameGrabber.cc:237
void setChannel(int channel=defaultChannel_)
Definition: FrameGrabber.cc:201
FrameGrabber()
Definition: frameshit.cc:44
virtual ~FrameGrabber()
Definition: FrameGrabber.cc:44
void setImageSize(int width=defaultWidth_, int height=defaultHeight_)
Definition: FrameGrabber.cc:440
void queryCapabilities()
Definition: FrameGrabber.cc:452
Definition: frameshit.h:81
void setContrast(unsigned short contrast=defaultContrast_)
Definition: FrameGrabber.cc:700
void setDeviceFileName(std::string devFileName)
Definition: FrameGrabber.cc:57
void queryPicture()
Definition: FrameGrabber.cc:506