libcvd-members
[Top][All Lists]
Advanced

[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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]