[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libcvd-members] libcvd cvd/videosource.h cvd/Linux/dvbuffer3.h ...
From: |
Edward Rosten |
Subject: |
[libcvd-members] libcvd cvd/videosource.h cvd/Linux/dvbuffer3.h ... |
Date: |
Fri, 22 Jan 2010 14:42:38 +0000 |
CVSROOT: /cvsroot/libcvd
Module name: libcvd
Changes by: Edward Rosten <edrosten> 10/01/22 14:42:38
Modified files:
cvd : videosource.h
cvd/Linux : dvbuffer3.h
cvd_src : videosource.cpp videosource_dvbuffer.cc
videosource_nodvbuffer.cc
cvd_src/Linux : dvbuffer3_dc1394v2.cc
Log message:
Added explicit format 7 mode selection, eg:
dc1394:[format7=2]//
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/videosource.h?cvsroot=libcvd&r1=1.26&r2=1.27
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/Linux/dvbuffer3.h?cvsroot=libcvd&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/videosource.cpp?cvsroot=libcvd&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/videosource_dvbuffer.cc?cvsroot=libcvd&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/videosource_nodvbuffer.cc?cvsroot=libcvd&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd_src/Linux/dvbuffer3_dc1394v2.cc?cvsroot=libcvd&r1=1.8&r2=1.9
Patches:
Index: cvd/videosource.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/videosource.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- cvd/videosource.h 21 Jan 2010 16:48:28 -0000 1.26
+++ cvd/videosource.h 22 Jan 2010 14:42:37 -0000 1.27
@@ -217,22 +217,22 @@
//
// DC1394 buffer
//
- template <class T> VideoBuffer<T>* makeDVBuffer2(int , ImageRef , float
, ImageRef, bool)
+ template <class T> VideoBuffer<T>* makeDVBuffer2(int , ImageRef , float
, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer2 cannot handle " +
PNM::type_name<T>::name());
}
- template <> VideoBuffer<byte>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<unsigned short>* makeDVBuffer2(int cam,
ImageRef size, float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<yuv411>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<yuv422>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose);
- template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose);
+ template <> VideoBuffer<byte>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<unsigned short>* makeDVBuffer2(int cam,
ImageRef size, float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<yuv411>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<yuv422>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose, int format7_mode);
+ template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool verbose, int format7_mode);
- void get_dc1394_options(const VideoSource& vs, ImageRef& size, float&
fps, ImageRef& offset, bool& verbose);
+ void get_dc1394_options(const VideoSource& vs, ImageRef& size, float&
fps, ImageRef& offset, bool& verbose, int& format7_mode);
////////////////////////////////////////////////////////////////////////////////
//
@@ -306,8 +306,9 @@
ImageRef size, offset;
float fps;
bool verbose;
- get_dc1394_options(vs, size, fps, offset, verbose);
- return makeDVBuffer2<T>(cam_no, size, fps, offset,
verbose);
+ int format7_mode;
+ get_dc1394_options(vs, size, fps, offset, verbose,
format7_mode);
+ return makeDVBuffer2<T>(cam_no, size, fps, offset,
verbose, format7_mode);
}
else if (vs.protocol == "file") {
int ra_frames = 0;
@@ -457,6 +458,8 @@
fps = <number> (default is camera default)
size = <size>
offset = <offset>
+ verbose [ = <bool> ]
+ mode | format7 | format7_mode = <number>
'qt' protocol (QTBuffer): identifier is camera number
size = vga | qvga | <width>x<height> (default vga)
Index: cvd/Linux/dvbuffer3.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/Linux/dvbuffer3.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- cvd/Linux/dvbuffer3.h 21 Jan 2010 16:48:28 -0000 1.6
+++ cvd/Linux/dvbuffer3.h 22 Jan 2010 14:42:37 -0000 1.7
@@ -123,7 +123,8 @@
bool verbose=0,
ImageRef irSize = ImageRef(-1,-1),
float fFrameRate=-1.0,
- ImageRef irOffset = ImageRef(-1,-1));
+ ImageRef irOffset = ImageRef(-1,-1),
+ int format7_mode=-1);
~RawDVBuffer3();
inline ImageRef size() {return mirSize;}
@@ -165,9 +166,10 @@
ImageRef irSize = ImageRef(-1,-1),
float fFPS = -1.0,
ImageRef irOffset = ImageRef(-1,-1),
- bool verbose=0)
+ bool verbose=0,
+ int format7_mode=-1)
: VideoBuffer<pixel_T>(VideoBufferType::Live),
- RawDVBuffer3(DV3::CSConvert<pixel_T>::space, nCamNumber, 0, -1,
verbose, irSize, fFPS, irOffset)
+ RawDVBuffer3(DV3::CSConvert<pixel_T>::space, nCamNumber, 0, -1,
verbose, irSize, fFPS, irOffset, format7_mode)
{
if(DV3::CSFilter<pixel_T>::filter != DV3::UNDEFINED &&
colour_filter() != DV3::CSFilter<pixel_T>::filter )
throw(Exceptions::DVBuffer3::All("wrong colour filter
expected"));
Index: cvd_src/videosource.cpp
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/videosource.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- cvd_src/videosource.cpp 21 Jan 2010 16:48:28 -0000 1.16
+++ cvd_src/videosource.cpp 22 Jan 2010 14:42:37 -0000 1.17
@@ -365,10 +365,12 @@
}
- void get_dc1394_options(const VideoSource& vs, ImageRef& size, float&
fps, ImageRef& offset, bool& verbose)
+ void get_dc1394_options(const VideoSource& vs, ImageRef& size, float&
fps, ImageRef& offset, bool& verbose, int& format7_mode)
{
size = offset = ImageRef(-1, -1);
fps = -1;
+ verbose = 0;
+ format7_mode = -1;
for (VideoSource::option_list::const_iterator
it=vs.options.begin(); it != vs.options.end(); ++it) {
if (it->first == "fps")
@@ -379,6 +381,8 @@
offset = parseImageRef(it->second, false);
else if (it->first == "verbose")
verbose =
parseBoolFlag(it->second);
+ else if(it->first == "mode" || it->first ==
"format7_mode" || it->first == "format7")
+ format7_mode = atoi(it->second.c_str());
else
throw VideoSourceException("invalid option for
dc1394 protocol: "+it->first+"\n\t valid options: fps, size, offset, verbose");
}
Index: cvd_src/videosource_dvbuffer.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/videosource_dvbuffer.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- cvd_src/videosource_dvbuffer.cc 21 Jan 2010 16:48:28 -0000 1.2
+++ cvd_src/videosource_dvbuffer.cc 22 Jan 2010 14:42:37 -0000 1.3
@@ -3,49 +3,49 @@
namespace CVD{
- template <> VideoBuffer<byte>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<byte>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<byte>(cam,size, fps, offset, v);
+ return new DVBuffer3<byte>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<unsigned short>* makeDVBuffer2(int cam,
ImageRef size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<unsigned short>* makeDVBuffer2(int cam,
ImageRef size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<unsigned short>(cam,size, fps, offset, v);
+ return new DVBuffer3<unsigned short>(cam,size, fps, offset, v,
m);
}
- template <> VideoBuffer<yuv411>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<yuv411>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<yuv411>(cam,size, fps, offset, v);
+ return new DVBuffer3<yuv411>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<yuv422>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<yuv422>* makeDVBuffer2(int cam, ImageRef size,
float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<yuv422>(cam,size, fps, offset, v);
+ return new DVBuffer3<yuv422>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<bayer_grbg>(cam,size, fps, offset, v);
+ return new DVBuffer3<bayer_grbg>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<bayer_gbrg>(cam,size, fps, offset, v);
+ return new DVBuffer3<bayer_gbrg>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<bayer_rggb>(cam,size, fps, offset, v);
+ return new DVBuffer3<bayer_rggb>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<bayer_bggr>(cam,size, fps, offset, v);
+ return new DVBuffer3<bayer_bggr>(cam,size, fps, offset, v, m);
}
- template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v)
+ template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int cam, ImageRef
size, float fps, ImageRef offset, bool v, int m)
{
- return new DVBuffer3<Rgb<byte> >(cam, size, fps, offset, v);
+ return new DVBuffer3<Rgb<byte> >(cam, size, fps, offset, v, m);
}
}
Index: cvd_src/videosource_nodvbuffer.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/videosource_nodvbuffer.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- cvd_src/videosource_nodvbuffer.cc 21 Jan 2010 16:48:28 -0000 1.2
+++ cvd_src/videosource_nodvbuffer.cc 22 Jan 2010 14:42:37 -0000 1.3
@@ -2,47 +2,47 @@
namespace CVD{
- template <> VideoBuffer<byte>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool)
+ template <> VideoBuffer<byte>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<unsigned short>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<unsigned short>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<yuv411>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool)
+ template <> VideoBuffer<yuv411>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<yuv422>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool)
+ template <> VideoBuffer<yuv422>* makeDVBuffer2(int, ImageRef, float,
ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<bayer_grbg>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<bayer_gbrg>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<bayer_rggb>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<bayer_bggr>* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
- template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool)
+ template <> VideoBuffer<Rgb<byte> >* makeDVBuffer2(int, ImageRef,
float, ImageRef, bool, int)
{
throw VideoSourceException("DVBuffer3 is not compiled in to
libcvd.");
}
Index: cvd_src/Linux/dvbuffer3_dc1394v2.cc
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd_src/Linux/dvbuffer3_dc1394v2.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- cvd_src/Linux/dvbuffer3_dc1394v2.cc 21 Jan 2010 16:48:28 -0000 1.8
+++ cvd_src/Linux/dvbuffer3_dc1394v2.cc 22 Jan 2010 14:42:37 -0000 1.9
@@ -188,7 +188,8 @@
bool verbose,
ImageRef irSize,
float fFrameRate,
- ImageRef irOffset)
+ ImageRef irOffset,
+ int format7_mode)
{
VPrint log(verbose);
@@ -214,6 +215,7 @@
log << " size: " << irSize << "\n";
log << " framerate: " << fFrameRate << "\n";
log << " offset: " << irOffset << "\n";
+ log << " format7 mode: " << format7_mode << "\n";
if(pCameraList->num == 0)
{
@@ -258,7 +260,7 @@
bool foundAStandardMode = false;
dc1394video_mode_t nMode;
mColourfilter = UNDEFINED;
- if(irOffset.x == -1){
+ if(irOffset.x == -1 && format7_mode == -1){
try {
// First, get a list of the modes which the camera
supports.
dc1394video_modes_t modes;
@@ -394,6 +396,9 @@
log << " total bytes: " << mode.total_bytes <<
"\n";
log << " color filter: " << mode.color_filter
<< "(" << filter(mode.color_filter) << ")\n";
+ if(format7_mode != -1 && format7_mode != index)
+ continue;
+
// does the mode exist ?
// does it support the colour format we need ?
unsigned int i;