X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=src%2FEngine.cpp;h=e51dd657bf71248b205185f77bc562e012756299;hb=642ffd9803b9be0439124d1aebe2780fcbabeb07;hp=7b00ce6c188be041213dc335b9fce62ae25a6955;hpb=b5342c4a4bbfb17346e7bffc5dae129290d184be;p=trackerpp.git diff --git a/src/Engine.cpp b/src/Engine.cpp index 7b00ce6..e51dd65 100644 --- a/src/Engine.cpp +++ b/src/Engine.cpp @@ -1,6 +1,7 @@ +#include +#include #include "Engine.h" #include "Logger.h" -#include using namespace suanzi; @@ -11,6 +12,8 @@ static Engine* g_instance = nullptr; Engine::Engine() { + detector = new Detector(); + tracker = new Tracker(); } Engine* Engine::create() @@ -31,21 +34,35 @@ void Engine::destroy() } Engine::~Engine() -{ +{ + delete detector; + delete tracker; } void Engine::setVideoSrc(const std::string& url) { videoSrc = url; + reader = VideoReaderFactory::createVideoReader(VideoSrcType::URL,"rtsp://192.168.1.75:554/stream1"); +} + +void Engine::run() +{ + LOG_DEBUG(TAG, "run"); + cv::Mat frame; + while (reader->read(frame)){ + detector->detect(frame); + } } void Engine::start() { LOG_DEBUG(TAG, "start"); - Person p; - for(auto& o: observer_list){ - o->onPersonIn(p); + if (!reader){ + LOG_ERROR(TAG, "reader is null. exit"); + return; } + std::thread t(&Engine::run, this); + t.join(); } void Engine::addObserver(EngineObserver *observer)