+#include <mutex>
+#include <thread>
#include "Engine.h"
#include "Logger.h"
-#include <mutex>
using namespace suanzi;
Engine::Engine()
{
+ detector = new Detector();
+ tracker = new Tracker();
}
Engine* Engine::create()
}
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)