const static std::string TAG = "VideoReader";
-VideoReader* VideoReaderFactory::createVideoReader(VideoSrcType type, const std::string& url)
+VideoReaderPtr VideoReaderFactory::createVideoReader(VideoSrcType type, const std::string& url)
{
- VideoReader* v = nullptr;
+ VideoReaderPtr v;
switch(type){
case VideoSrcType::URL:
- v = new UrlReader(type, url);
+ v = std::make_shared<UrlReader>(type, url);
break;
case VideoSrcType::File:
- v = new FileReader(type, url);
+ v = std::make_shared<FileReader>(type, url);
break;
case VideoSrcType::USB:
- v = new UsbReader(type, url);
+ v = std::make_shared<UsbReader>(type, url);
break;
default:
break;
LOG_ERROR(TAG, "open video " + url);
throw std::runtime_error("Cannot open video url " + url);
}
- LOG_DEBUG(TAG, "reader video sourc succeed.");
+ LOG_DEBUG(TAG, "reader video sourc succeed. ");
}
UrlReader::~UrlReader()
{
+ vcap.release();
}
bool UrlReader::read(cv::Mat& mat)