[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libcvd-members] libcvd cvd/Linux/v4lbuffer.h cvd_src/Linux/v4lb...
From: |
Edward Rosten |
Subject: |
[libcvd-members] libcvd cvd/Linux/v4lbuffer.h cvd_src/Linux/v4lb... |
Date: |
Wed, 23 Apr 2008 00:36:19 +0000 |
CVSROOT: /cvsroot/libcvd
Module name: libcvd
Changes by: Edward Rosten <edrosten> 08/04/23 00:36:18
Modified files:
cvd/Linux : v4lbuffer.h
cvd_src/Linux : v4lbuffer.cc
Log message:
Add buffer querying
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/Linux/v4lbuffer.h?cvsroot=libcvd&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/Linux/v4lbuffer.cc?cvsroot=libcvd&r1=1.5&r2=1.6
Patches:
Index: cvd/Linux/v4lbuffer.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/Linux/v4lbuffer.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- cvd/Linux/v4lbuffer.h 23 Apr 2008 00:13:13 -0000 1.6
+++ cvd/Linux/v4lbuffer.h 23 Apr 2008 00:36:18 -0000 1.7
@@ -115,7 +115,12 @@
double getRate();
bool pendingFrame();
virtual ~V4L2Client();
+ int num_buffers()
+ {
+ return num_bufs;
+ }
private:
+ int num_bufs;
struct State;
State* state;
};
@@ -180,6 +185,16 @@
if (v4l2)
delete v4l2;
}
+
+ int num_buffers()
+ {
+ if (v4l2) {
+ return v4l2->num_buffers();
+ } else {
+ throw Exceptions::V4LBuffer::PutFrame(devname, "V4L1 not yet
supported by V4LBuffer");
+ }
+ }
+
private:
struct V4LFrame : public VideoFrame<T> {
V4LFrame(int i, double t, void* data, ImageRef size) :
VideoFrame<T>(t,reinterpret_cast<T*>(data),size), id(i) {}
Index: cvd_src/Linux/v4lbuffer.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/Linux/v4lbuffer.cc,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- cvd_src/Linux/v4lbuffer.cc 12 Jul 2007 18:15:32 -0000 1.5
+++ cvd_src/Linux/v4lbuffer.cc 23 Apr 2008 00:36:18 -0000 1.6
@@ -109,12 +109,14 @@
throw string("Requested format not supported");
struct v4l2_requestbuffers reqbufs;
- reqbufs.count = 4;
+ reqbufs.count = 10;
reqbufs.memory = V4L2_MEMORY_MMAP;
reqbufs.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (0 != ioctl(fd,VIDIOC_REQBUFS,&reqbufs))
throw string("VIDIOC_REQBUFS");
+ num_bufs = reqbufs.count;
+
if (reqbufs.count < 2)
throw string("Insufficient buffers available");
vector<State::Frame> frames(reqbufs.count);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libcvd-members] libcvd cvd/Linux/v4lbuffer.h cvd_src/Linux/v4lb...,
Edward Rosten <=