X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=src%2FVideoReader.cpp;h=17d551879e9a0b498e1d81e0e6185f125e491262;hb=804f325c3a26e6ff253c3eb490071434da9c3b3f;hp=22036cb2b52e8226d1e65e78a8f52f133aed5565;hpb=642ffd9803b9be0439124d1aebe2780fcbabeb07;p=trackerpp.git diff --git a/src/VideoReader.cpp b/src/VideoReader.cpp index 22036cb..17d5518 100644 --- a/src/VideoReader.cpp +++ b/src/VideoReader.cpp @@ -6,23 +6,28 @@ using namespace cv; 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; switch(type){ case VideoSrcType::URL: - v = new UrlReader(type, url); - break; + { + VideoReaderPtr v (new UrlReader(type, url)); + return v; + } case VideoSrcType::File: - v = new FileReader(type, url); - break; + { + VideoReaderPtr v (new FileReader(type, url)); + return v; + } case VideoSrcType::USB: - v = new UsbReader(type, url); - break; + { + VideoReaderPtr v (new UsbReader(type, url)); + return v; + } default: break; } - return v; + return nullptr; } VideoReader::~VideoReader() @@ -39,10 +44,12 @@ UrlReader::UrlReader(VideoSrcType type, const std::string& url) : VideoReader(ty LOG_ERROR(TAG, "open video " + url); throw std::runtime_error("Cannot open video url " + url); } + LOG_DEBUG(TAG, "reader video sourc succeed. "); } UrlReader::~UrlReader() { + vcap.release(); } bool UrlReader::read(cv::Mat& mat)