diff --git a/modules/highgui/src/cap.cpp b/modules/highgui/src/cap.cpp index a5b94cb880..091482206f 100644 --- a/modules/highgui/src/cap.cpp +++ b/modules/highgui/src/cap.cpp @@ -73,7 +73,11 @@ CV_IMPL void cvReleaseCapture( CvCapture** pcapture ) CV_IMPL IplImage* cvQueryFrame( CvCapture* capture ) { - return capture ? capture->queryFrame() : 0; + if(!capture) + return 0; + if(!capture->grabFrame()) + return 0; + return capture->retrieveFrame(0); } diff --git a/modules/highgui/src/cap_qtkit.mm b/modules/highgui/src/cap_qtkit.mm index 80b043c817..c999ce7668 100644 --- a/modules/highgui/src/cap_qtkit.mm +++ b/modules/highgui/src/cap_qtkit.mm @@ -99,7 +99,6 @@ public: ~CvCaptureCAM(); virtual bool grabFrame(); virtual IplImage* retrieveFrame(int); - virtual IplImage* queryFrame(); virtual double getProperty(int property_id); virtual bool setProperty(int property_id, double value); virtual int didStart(); @@ -142,7 +141,6 @@ public: ~CvCaptureFile(); virtual bool grabFrame(); virtual IplImage* retrieveFrame(int); - virtual IplImage* queryFrame(); virtual double getProperty(int property_id); virtual bool setProperty(int property_id, double value); virtual int didStart(); @@ -294,18 +292,6 @@ IplImage* CvCaptureCAM::retrieveFrame(int) { return [capture getOutput]; } -IplImage* CvCaptureCAM::queryFrame() { - while (!grabFrame()) { - cout << "WARNING: Couldn't grab new frame from camera!!!" << endl; - /* - cout << "Attempting to restart camera; set capture property DISABLE_AUTO_RESTART to disable." << endl; - stopCaptureDevice(); - startCaptureDevice(camNum); - */ - } - return retrieveFrame(0); -} - void CvCaptureCAM::stopCaptureDevice() { NSAutoreleasePool* localpool = [[NSAutoreleasePool alloc] init]; @@ -781,11 +767,6 @@ IplImage* CvCaptureFile::retrieveFrame(int) { return retrieveFramePixelBuffer(); } -IplImage* CvCaptureFile::queryFrame() { - grabFrame(); - return retrieveFrame(0); -} - double CvCaptureFile::getFPS() { if (mCaptureSession == nil) return 0; NSAutoreleasePool* localpool = [[NSAutoreleasePool alloc] init]; diff --git a/modules/highgui/src/precomp.hpp b/modules/highgui/src/precomp.hpp index 1a96b41379..8e3b1734d6 100644 --- a/modules/highgui/src/precomp.hpp +++ b/modules/highgui/src/precomp.hpp @@ -98,7 +98,6 @@ struct CvCapture virtual bool setProperty(int, double) { return 0; } virtual bool grabFrame() { return true; } virtual IplImage* retrieveFrame(int) { return 0; } - virtual IplImage* queryFrame() { return grabFrame() ? retrieveFrame(0) : 0; } virtual int getCaptureDomain() { return CV_CAP_ANY; } // Return the type of the capture object: CV_CAP_VFW, etc... };