From a0e460036462d73fc051cddbb78e9d055a2ce0a5 Mon Sep 17 00:00:00 2001 From: PhilLab Date: Tue, 26 Aug 2014 09:42:46 +0200 Subject: [PATCH] VideoCapture did not detect an unopened camera --- modules/videoio/src/cap.cpp | 8 ++++---- modules/videoio/src/cap_dshow.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp index e36dc0573..30ec7ecc9 100644 --- a/modules/videoio/src/cap.cpp +++ b/modules/videoio/src/cap.cpp @@ -621,15 +621,15 @@ Ptr VideoCapture::createCameraCapture(int index) { #ifdef HAVE_DSHOW case CV_CAP_DSHOW: - capture = Ptr(new cv::VideoCapture_DShow(index)); - if (capture) + capture = makePtr(index); + if (capture && capture.dynamicCast()->isOpened()) return capture; break; // CV_CAP_DSHOW #endif #ifdef HAVE_INTELPERC case CV_CAP_INTELPERC: - capture = Ptr(new cv::VideoCapture_IntelPerC()); - if (capture) + capture = makePtr(); + if (capture && capture.dynamicCast()->isOpened()) return capture; break; // CV_CAP_INTEL_PERC #endif diff --git a/modules/videoio/src/cap_dshow.cpp b/modules/videoio/src/cap_dshow.cpp index bc9f05eb8..efbbd0866 100644 --- a/modules/videoio/src/cap_dshow.cpp +++ b/modules/videoio/src/cap_dshow.cpp @@ -1590,7 +1590,7 @@ bool videoInput::isFrameNew(int id){ bool videoInput::isDeviceSetup(int id){ - if(idreadyToCapture)return true; + if(id>=0 && idreadyToCapture)return true; else return false; }