[Top][All Lists]
[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()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libcvd-members] libcvd Makefile.in cvd/Linux/v4l1buffer.h cvd_s...,
Edward Rosten <=