#include #include #include #include #include "BufferUtils.hpp" #include "formats.hpp" #include "../include/JfjFrameCache.hpp" #include "../include/JfjFrameWorker.hpp" #include "../include/ZmqImagePublisher.hpp" int main (int argc, char *argv[]) { if (argc != 2) { std::cout << "\nUsage: jf_buffer_writer [detector_json_filename]\n"; std::cout << "\tdetector_json_filename: detector config file path." << std::endl; exit(-1); } const auto config = BufferUtils::read_json_config(std::string(argv[1])); std::cout << "Creating ZMQ socket..." << std::endl; ZmqImagePublisher pub("*", 5200); // ... and extracting sender function std::function zmq_publish = std::bind(&ZmqImagePublisher::sendImage, &pub, std::placeholders::_1); std::cout << "Creating frame cache..." << std::endl; FrameCache cache(128, 3, zmq_publish); // ... and extracting push function std::function push_cb = std::bind(&FrameCache::emplace, &cache, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3); std::cout << "Creating workers..." << std::endl; std::vector> vWorkers; for(int mm=0; mm(config.start_udp_port+mm, moduleName, mm, push_cb) ); } std::cout << "Starting worker threads..." << std::endl; std::vector vThreads; for(int mm=0; mm