1 #include "VideoReader.h"
4 using namespace suanzi;
7 const static std::string TAG = "VideoReader";
9 VideoReaderPtr VideoReaderFactory::createVideoReader(VideoSrcType type, const std::string& url)
13 case VideoSrcType::URL:
14 v = std::make_shared<UrlReader>(type, url);
16 case VideoSrcType::File:
17 v = std::make_shared<FileReader>(type, url);
19 case VideoSrcType::USB:
20 v = std::make_shared<UsbReader>(type, url);
28 VideoReader::~VideoReader()
30 LOG_DEBUG("video", "init");
34 UrlReader::UrlReader(VideoSrcType type, const std::string& url) : VideoReader(type, url)
36 LOG_DEBUG(TAG, "UrlReader, open " + url);
38 if (!vcap.isOpened()){
39 LOG_ERROR(TAG, "open video " + url);
40 throw std::runtime_error("Cannot open video url " + url);
42 LOG_DEBUG(TAG, "reader video sourc succeed. ");
45 UrlReader::~UrlReader()
50 static long count = 0;
52 static void printImg(const cv::Mat& mat)
54 std::cout << mat.at<int>(0,0) << std::endl;
57 bool UrlReader::read(cv::Mat& mat)
59 bool ret = vcap.read(mat);
61 LOG_ERROR(TAG, "blank frame grabbed");
65 std::string name = "./temp/image_" + std::to_string(count) + ".png";
66 if ((count % 50 == 0)){
67 imwrite(name.c_str(), mat);