|
|
|
|
@ -60,6 +60,8 @@
|
|
|
|
|
#pragma warning(disable: 4748)
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
using namespace cv;
|
|
|
|
|
|
|
|
|
|
namespace cv
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
@ -178,11 +180,11 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
|
|
|
|
|
if (pref) break;
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_MSMF
|
|
|
|
|
case CV_CAP_MSMF:
|
|
|
|
|
case CAP_MSMF:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_MSMF(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
case CV_CAP_VFW:
|
|
|
|
|
case CAP_VFW: // or CAP_V4L or CAP_V4L2
|
|
|
|
|
#ifdef HAVE_VFW
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_VFW(index))
|
|
|
|
|
#endif
|
|
|
|
|
@ -190,7 +192,6 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
|
|
|
|
|
#if defined HAVE_LIBV4L || defined HAVE_CAMV4L || defined HAVE_CAMV4L2 || defined HAVE_VIDEOIO
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_V4L(index))
|
|
|
|
|
#endif
|
|
|
|
|
if (pref) break; // CV_CAP_VFW
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_GSTREAMER
|
|
|
|
|
TRY_OPEN(capture, cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L2, reinterpret_cast<char *>(index)))
|
|
|
|
|
@ -198,7 +199,9 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
|
|
|
|
|
TRY_OPEN(capture, cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_V4L, reinterpret_cast<char *>(index)))
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case CV_CAP_FIREWIRE:
|
|
|
|
|
if (pref) break; // CAP_VFW or CAP_V4L or CAP_V4L2
|
|
|
|
|
|
|
|
|
|
case CAP_FIREWIRE:
|
|
|
|
|
#ifdef HAVE_DC1394_2
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_DC1394_2(index))
|
|
|
|
|
#endif
|
|
|
|
|
@ -216,64 +219,64 @@ CV_IMPL CvCapture * cvCreateCameraCapture (int index)
|
|
|
|
|
TRY_OPEN(capture, cvCreateCapture_GStreamer(CV_CAP_GSTREAMER_1394, 0))
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
if (pref) break; // CV_CAP_FIREWIRE
|
|
|
|
|
if (pref) break; // CAP_FIREWIRE
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_MIL
|
|
|
|
|
case CV_CAP_MIL:
|
|
|
|
|
case CAP_MIL:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_MIL(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(HAVE_QUICKTIME) || defined(HAVE_QTKIT)
|
|
|
|
|
case CV_CAP_QT:
|
|
|
|
|
case CAP_QT:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_QT(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_UNICAP
|
|
|
|
|
case CV_CAP_UNICAP:
|
|
|
|
|
case CAP_UNICAP:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_Unicap(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_PVAPI
|
|
|
|
|
case CV_CAP_PVAPI:
|
|
|
|
|
case CAP_PVAPI:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_PvAPI(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_OPENNI
|
|
|
|
|
case CV_CAP_OPENNI:
|
|
|
|
|
case CAP_OPENNI:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_OpenNI(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_OPENNI2
|
|
|
|
|
case CV_CAP_OPENNI2:
|
|
|
|
|
case CAP_OPENNI2:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_OpenNI2(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_XIMEA
|
|
|
|
|
case CV_CAP_XIAPI:
|
|
|
|
|
case CAP_XIAPI:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_XIMEA(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_AVFOUNDATION
|
|
|
|
|
case CV_CAP_AVFOUNDATION:
|
|
|
|
|
case CAP_AVFOUNDATION:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_AVFoundation(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_GIGE_API
|
|
|
|
|
case CV_CAP_GIGANETIX:
|
|
|
|
|
case CAP_GIGANETIX:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_Giganetix(index))
|
|
|
|
|
if (pref) break; // CV_CAP_GIGANETIX
|
|
|
|
|
if (pref) break; // CAP_GIGANETIX
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_ARAVIS_API
|
|
|
|
|
case CV_CAP_ARAVIS:
|
|
|
|
|
case CAP_ARAVIS:
|
|
|
|
|
TRY_OPEN(capture, cvCreateCameraCapture_Aravis(index))
|
|
|
|
|
if (pref) break;
|
|
|
|
|
#endif
|
|
|
|
|
@ -297,12 +300,12 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_FFMPEG
|
|
|
|
|
case CV_CAP_FFMPEG:
|
|
|
|
|
case CAP_FFMPEG:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_FFMPEG_proxy (filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case CV_CAP_VFW:
|
|
|
|
|
case CAP_VFW:
|
|
|
|
|
#ifdef HAVE_VFW
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_VFW (filename))
|
|
|
|
|
#endif
|
|
|
|
|
@ -312,7 +315,7 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
|
|
|
|
|
#endif
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
|
|
|
|
|
case CV_CAP_MSMF:
|
|
|
|
|
case CAP_MSMF:
|
|
|
|
|
#ifdef HAVE_MSMF
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_MSMF (filename))
|
|
|
|
|
#endif
|
|
|
|
|
@ -323,36 +326,36 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_GSTREAMER
|
|
|
|
|
case CV_CAP_GSTREAMER:
|
|
|
|
|
case CAP_GSTREAMER:
|
|
|
|
|
TRY_OPEN(result, cvCreateCapture_GStreamer (CV_CAP_GSTREAMER_FILE, filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if defined(HAVE_QUICKTIME) || defined(HAVE_QTKIT)
|
|
|
|
|
case CV_CAP_QT:
|
|
|
|
|
case CAP_QT:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_QT (filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_AVFOUNDATION
|
|
|
|
|
case CV_CAP_AVFOUNDATION:
|
|
|
|
|
case CAP_AVFOUNDATION:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_AVFoundation (filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_OPENNI
|
|
|
|
|
case CV_CAP_OPENNI:
|
|
|
|
|
case CAP_OPENNI:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_OpenNI (filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_OPENNI2
|
|
|
|
|
case CV_CAP_OPENNI2:
|
|
|
|
|
case CAP_OPENNI2:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_OpenNI2 (filename))
|
|
|
|
|
if (apiPreference) break;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
case CV_CAP_IMAGES:
|
|
|
|
|
case CAP_IMAGES:
|
|
|
|
|
TRY_OPEN(result, cvCreateFileCapture_Images (filename))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -361,7 +364,7 @@ CV_IMPL CvCapture * cvCreateFileCaptureWithPreference (const char * filename, in
|
|
|
|
|
|
|
|
|
|
CV_IMPL CvCapture * cvCreateFileCapture (const char * filename)
|
|
|
|
|
{
|
|
|
|
|
return cvCreateFileCaptureWithPreference(filename, CV_CAP_ANY);
|
|
|
|
|
return cvCreateFileCaptureWithPreference(filename, CAP_ANY);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -383,40 +386,40 @@ static CvVideoWriter* cvCreateVideoWriterWithPreference(const char* filename, in
|
|
|
|
|
{
|
|
|
|
|
default:
|
|
|
|
|
//exit if the specified API is unavaliable
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#ifdef HAVE_FFMPEG
|
|
|
|
|
case CV_CAP_FFMPEG:
|
|
|
|
|
case CAP_FFMPEG:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_FFMPEG_proxy (filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_VFW
|
|
|
|
|
case CV_CAP_VFW:
|
|
|
|
|
case CAP_VFW:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_VFW(filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_MSMF
|
|
|
|
|
case CV_CAP_MSMF:
|
|
|
|
|
case CAP_MSMF:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_MSMF(filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_AVFOUNDATION
|
|
|
|
|
case CV_CAP_AVFOUNDATION:
|
|
|
|
|
case CAP_AVFOUNDATION:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_AVFoundation(filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
#if defined(HAVE_QUICKTIME) || defined(HAVE_QTKIT)
|
|
|
|
|
case(CV_CAP_QT):
|
|
|
|
|
case(CAP_QT):
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_QT(filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_GSTREAMER
|
|
|
|
|
case CV_CAP_GSTREAMER:
|
|
|
|
|
case CAP_GSTREAMER:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_GStreamer (filename, fourcc, fps, frameSize, is_color))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
#endif
|
|
|
|
|
case CV_CAP_IMAGES:
|
|
|
|
|
case CAP_IMAGES:
|
|
|
|
|
TRY_OPEN(result, cvCreateVideoWriter_Images(filename))
|
|
|
|
|
if (apiPreference != CV_CAP_ANY) break;
|
|
|
|
|
if (apiPreference != CAP_ANY) break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
@ -425,7 +428,7 @@ static CvVideoWriter* cvCreateVideoWriterWithPreference(const char* filename, in
|
|
|
|
|
CV_IMPL CvVideoWriter* cvCreateVideoWriter( const char* filename, int fourcc,
|
|
|
|
|
double fps, CvSize frameSize, int is_color )
|
|
|
|
|
{
|
|
|
|
|
return cvCreateVideoWriterWithPreference(filename, CV_CAP_ANY, fourcc, fps, frameSize, is_color);
|
|
|
|
|
return cvCreateVideoWriterWithPreference(filename, CAP_ANY, fourcc, fps, frameSize, is_color);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CV_IMPL int cvWriteFrame( CvVideoWriter* writer, const IplImage* image )
|
|
|
|
|
@ -450,16 +453,16 @@ static Ptr<IVideoCapture> IVideoCapture_create(int index)
|
|
|
|
|
int domains[] =
|
|
|
|
|
{
|
|
|
|
|
#ifdef HAVE_DSHOW
|
|
|
|
|
CV_CAP_DSHOW,
|
|
|
|
|
CAP_DSHOW,
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_INTELPERC
|
|
|
|
|
CV_CAP_INTELPERC,
|
|
|
|
|
CAP_INTELPERC,
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef WINRT_VIDEO
|
|
|
|
|
CAP_WINRT,
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_GPHOTO2
|
|
|
|
|
CV_CAP_GPHOTO2,
|
|
|
|
|
CAP_GPHOTO2,
|
|
|
|
|
#endif
|
|
|
|
|
-1, -1
|
|
|
|
|
};
|
|
|
|
|
@ -486,14 +489,14 @@ static Ptr<IVideoCapture> IVideoCapture_create(int index)
|
|
|
|
|
switch (domains[i])
|
|
|
|
|
{
|
|
|
|
|
#ifdef HAVE_DSHOW
|
|
|
|
|
case CV_CAP_DSHOW:
|
|
|
|
|
case CAP_DSHOW:
|
|
|
|
|
capture = makePtr<VideoCapture_DShow>(index);
|
|
|
|
|
break; // CV_CAP_DSHOW
|
|
|
|
|
break; // CAP_DSHOW
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_INTELPERC
|
|
|
|
|
case CV_CAP_INTELPERC:
|
|
|
|
|
case CAP_INTELPERC:
|
|
|
|
|
capture = makePtr<VideoCapture_IntelPerC>();
|
|
|
|
|
break; // CV_CAP_INTEL_PERC
|
|
|
|
|
break; // CAP_INTEL_PERC
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef WINRT_VIDEO
|
|
|
|
|
case CAP_WINRT:
|
|
|
|
|
@ -503,7 +506,7 @@ static Ptr<IVideoCapture> IVideoCapture_create(int index)
|
|
|
|
|
break; // CAP_WINRT
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_GPHOTO2
|
|
|
|
|
case CV_CAP_GPHOTO2:
|
|
|
|
|
case CAP_GPHOTO2:
|
|
|
|
|
capture = createGPhoto2Capture(index);
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
@ -522,9 +525,9 @@ static Ptr<IVideoCapture> IVideoCapture_create(const String& filename)
|
|
|
|
|
{
|
|
|
|
|
int domains[] =
|
|
|
|
|
{
|
|
|
|
|
CV_CAP_ANY,
|
|
|
|
|
CAP_ANY,
|
|
|
|
|
#ifdef HAVE_GPHOTO2
|
|
|
|
|
CV_CAP_GPHOTO2,
|
|
|
|
|
CAP_GPHOTO2,
|
|
|
|
|
#endif
|
|
|
|
|
#ifdef HAVE_MFX
|
|
|
|
|
CAP_INTEL_MFX,
|
|
|
|
|
@ -539,11 +542,11 @@ static Ptr<IVideoCapture> IVideoCapture_create(const String& filename)
|
|
|
|
|
|
|
|
|
|
switch (domains[i])
|
|
|
|
|
{
|
|
|
|
|
case CV_CAP_ANY:
|
|
|
|
|
case CAP_ANY:
|
|
|
|
|
capture = createMotionJpegCapture(filename);
|
|
|
|
|
break;
|
|
|
|
|
#ifdef HAVE_GPHOTO2
|
|
|
|
|
case CV_CAP_GPHOTO2:
|
|
|
|
|
case CAP_GPHOTO2:
|
|
|
|
|
capture = createGPhoto2Capture(filename);
|
|
|
|
|
break;
|
|
|
|
|
#endif
|
|
|
|
|
@ -575,7 +578,7 @@ static Ptr<IVideoWriter> IVideoWriter_create(const String& filename, int apiPref
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
if( (apiPreference == CAP_OCV_MJPEG || apiPreference == CAP_ANY)
|
|
|
|
|
if( (apiPreference == CAP_OPENCV_MJPEG || apiPreference == CAP_ANY)
|
|
|
|
|
&& _fourcc == CV_FOURCC('M', 'J', 'P', 'G') )
|
|
|
|
|
iwriter = createMotionJpegWriter(filename, fps, frameSize, isColor);
|
|
|
|
|
|
|
|
|
|
|