Add shared ptr
[trackerpp.git] / src / VideoReader.cpp
index 0945527..17d5518 100644 (file)
@@ -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()