From 101de2b07aa2feefa74f7e73876fd5cc8fc696cf Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Tue, 20 Mar 2018 21:40:01 +0000
Subject: [PATCH] More stable web-cam
---
src/http_stream.cpp | 28 ++++++++++++++++++++++------
1 files changed, 22 insertions(+), 6 deletions(-)
diff --git a/src/http_stream.cpp b/src/http_stream.cpp
index d42ecff..ca57728 100644
--- a/src/http_stream.cpp
+++ b/src/http_stream.cpp
@@ -197,16 +197,32 @@
CvCapture* get_capture_webcam(int index) {
- CvCapture* cap = (CvCapture*)new cv::VideoCapture(index);
+ CvCapture* cap = NULL;
+ try {
+ cap = (CvCapture*)new cv::VideoCapture(index);
+ //((cv::VideoCapture*)cap)->set(CV_CAP_PROP_FRAME_WIDTH, 1280);
+ //((cv::VideoCapture*)cap)->set(CV_CAP_PROP_FRAME_HEIGHT, 960);
+ }
+ catch (...) {
+ std::cout << " Error: Web-camera " << index << " can't be opened! \n";
+ }
return cap;
}
IplImage* get_webcam_frame(CvCapture *cap) {
- cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap;
- cv::Mat frame;
- cpp_cap >> frame;
- IplImage* src = cvCreateImage(cvSize(frame.cols, frame.rows), 8, frame.channels());
- *src = frame;
+ IplImage* src = NULL;
+ try {
+ cv::VideoCapture &cpp_cap = *(cv::VideoCapture *)cap;
+ cv::Mat frame;
+ if (cpp_cap.isOpened()) {
+ cpp_cap >> frame;
+ src = cvCreateImage(cvSize(frame.cols, frame.rows), 8, frame.channels());
+ *src = frame;
+ }
+ }
+ catch (...) {
+ std::cout << " Web-camera stoped! \n";
+ }
return src;
}
--
Gitblit v1.10.0