libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd Makefile.in cvd/Linux/v4l1buffer.h cvd_s...


From: Edward Rosten
Subject: [libcvd-members] libcvd Makefile.in cvd/Linux/v4l1buffer.h cvd_s...
Date: Tue, 29 Apr 2008 19:57:54 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        08/04/29 19:57:54

Modified files:
        .              : Makefile.in 
        cvd/Linux      : v4l1buffer.h 
        cvd_src/Linux  : v4l1buffer.cc 

Log message:
        Proper shutdown of v4l1buffer

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/Makefile.in?cvsroot=libcvd&r1=1.75&r2=1.76
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/Linux/v4l1buffer.h?cvsroot=libcvd&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/Linux/v4l1buffer.cc?cvsroot=libcvd&r1=1.8&r2=1.9

Patches:
Index: Makefile.in
===================================================================
RCS file: /cvsroot/libcvd/libcvd/Makefile.in,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -b -r1.75 -r1.76
--- Makefile.in 24 Apr 2008 23:30:37 -0000      1.75
+++ Makefile.in 29 Apr 2008 19:57:54 -0000      1.76
@@ -23,6 +23,7 @@
 
 CC = @CC@
 address@hidden@
+LD=arm-linux-ld -lstdc++ 
 address@hidden@
 CPPFLAGS = @CPPFLAGS@
 CFLAGS = @CFLAGS@
@@ -144,13 +145,13 @@
 
 $(soname): $(OBJS)
        rm -f $(sos)
-       $(CXX) $(CXXFLAGS) $(shared) -o $(soname2) $(OBJS) $(LDFLAGS) 
$(LOADLIBES)
+       $(LD) $(shared) -o $(soname2) $(OBJS) $(LDFLAGS) $(LOADLIBES)
        ln -s $(soname2) $(soname1)
        ln -s $(soname1) $(soname)
 
 $(dsoname): $(DEBUG_OBJS)
        rm -f $(dsos)
-       $(CXX) $(CXXFLAGS) $(shared) -o $(dsoname2) $(DEBUG_OBJS) $(LDFLAGS) 
$(LOADLIBES)
+       $(LD) $(shared) -o $(dsoname2) $(DEBUG_OBJS) $(LDFLAGS) $(LOADLIBES)
        ln -s $(dsoname2) $(dsoname1)
        ln -s $(dsoname1) $(dsoname)
 

Index: cvd/Linux/v4l1buffer.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/Linux/v4l1buffer.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- cvd/Linux/v4l1buffer.h      24 Apr 2008 23:52:38 -0000      1.13
+++ cvd/Linux/v4l1buffer.h      29 Apr 2008 19:57:54 -0000      1.14
@@ -165,6 +165,9 @@
         unsigned int myBpp;
         int autoexp;
 
+               void *mmaped_memory;
+               size_t mmaped_len;
+
         std::vector<unsigned char*> myFrameBuf;
         std::vector<bool> myFrameBufState;
         unsigned int myNextRetrieveBuf;
@@ -218,6 +221,10 @@
         return RawV4L1::frame_rate();
     }
 
+       virtual ~V4L1Buffer()
+       {
+       }
+
 private:
     V4L1Buffer( V4L1Buffer& copyof );
     int operator = ( V4L1Buffer& copyof );

Index: cvd_src/Linux/v4l1buffer.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/Linux/v4l1buffer.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- cvd_src/Linux/v4l1buffer.cc 24 Apr 2008 23:52:38 -0000      1.8
+++ cvd_src/Linux/v4l1buffer.cc 29 Apr 2008 19:57:54 -0000      1.9
@@ -98,10 +98,14 @@
     struct video_mbuf mbuf;
     if (ioctl(myDevice, VIDIOCGMBUF, &mbuf) != 0)
         throw Exceptions::V4L1Buffer::DeviceSetup(deviceName, "get memory 
buffer info");
-    unsigned char* theMap = (unsigned char*)mmap(0, mbuf.size, 
PROT_READ|PROT_WRITE, MAP_SHARED, myDevice, 0);
-    if (theMap == (unsigned char*)-1)
+
+       mmaped_len = mbuf.size;
+    mmaped_memory = mmap(0, mbuf.size, PROT_READ|PROT_WRITE, MAP_SHARED, 
myDevice, 0);
+    if (mmaped_memory == MAP_FAILED)
         throw Exceptions::V4L1Buffer::DeviceSetup(deviceName, "mmap()");
 
+       unsigned char* theMap = static_cast<unsigned char*>(mmaped_memory);
+
     myFrameBuf.resize(mbuf.frames);
     myFrameBufState.resize(myFrameBuf.size(), false);
     myNextRetrieveBuf = 0;
@@ -123,7 +127,10 @@
 RawV4L1::~RawV4L1()
 {
     if (myDevice != -1)
+       {
         close(myDevice);
+               munmap(mmaped_memory, mmaped_len);
+       }
 }
 
 void RawV4L1::retrieveSettings()




reply via email to

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