X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;ds=sidebyside;f=src%2FVideoReader.h;h=79d39d04b4d36eb58bb1e3e00c0b9febf52cdadb;hb=804f325c3a26e6ff253c3eb490071434da9c3b3f;hp=340b548fb4a3b705646b0a493de0c0e4a9b63342;hpb=642ffd9803b9be0439124d1aebe2780fcbabeb07;p=trackerpp.git diff --git a/src/VideoReader.h b/src/VideoReader.h index 340b548..79d39d0 100644 --- a/src/VideoReader.h +++ b/src/VideoReader.h @@ -1,65 +1,66 @@ #ifndef _IVIDEO_READER_H_ #define _IVIDEO_READER_H_ +#include "SharedPtr.h" #include #include namespace suanzi { -typedef enum { - URL, - File, - USB -} VideoSrcType; - -class VideoReader; - -class VideoReaderFactory -{ -public: - static VideoReader* createVideoReader(VideoSrcType type, const std::string& url); -}; - -class VideoReader -{ -public: - VideoReader(VideoSrcType type, const std::string& url) : type(type), url(url){} - - virtual ~VideoReader(); - virtual bool read(cv::Mat& mat){return true;} - -private: - VideoSrcType type; - -protected: - std::string url; -}; - - -class UrlReader : public VideoReader -{ -public: - UrlReader(VideoSrcType type, const std::string& url); - virtual ~UrlReader(); - bool read(cv::Mat& mat); -private: - cv::VideoCapture vcap; -}; - -class FileReader : public VideoReader -{ -public: - FileReader(VideoSrcType type, const std::string& url):VideoReader(type, url){} -// void read(){}; -}; - -class UsbReader : public VideoReader -{ -public: - UsbReader(VideoSrcType type, const std::string& url):VideoReader(type, url){} -// void read(){}; -}; - + typedef enum { + URL, + File, + USB + } VideoSrcType; + + TK_DECLARE_PTR(VideoReaderFactory); + TK_DECLARE_PTR(VideoReader); + TK_DECLARE_PTR(URLReader); + + class VideoReaderFactory + { + public: + static VideoReaderPtr createVideoReader(VideoSrcType type, const std::string& url); + }; + + class VideoReader + { + public: + VideoReader(VideoSrcType type, const std::string& url) : type(type), url(url){} + + virtual ~VideoReader(); + virtual bool read(cv::Mat& mat){return true;} + + private: + VideoSrcType type; + + protected: + std::string url; + }; + + class UrlReader : public VideoReader + { + public: + UrlReader(VideoSrcType type, const std::string& url); + virtual ~UrlReader(); + bool read(cv::Mat& mat); + private: + cv::VideoCapture vcap; + }; + + class FileReader : public VideoReader + { + public: + FileReader(VideoSrcType type, const std::string& url):VideoReader(type, url){} + // void read(){}; + }; + + class UsbReader : public VideoReader + { + public: + UsbReader(VideoSrcType type, const std::string& url):VideoReader(type, url){} + // void read(){}; + }; }