#include #include #include #include #include using namespace libcamera; using namespace std::chrono_literals; static std::atomic capturing{true}; static std::shared_ptr camera; static void requestComplete(Request *request) { } int main() { std::unique_ptr cm = std::make_unique(); cm->start(); auto cameras = cm->cameras(); if (cameras.empty()) { std::cerr << "What? No camera?" << std::endl; cameras.clear(); cm->stop(); return 1; } camera = cm->get(cameras[0]->id()); cameras.clear(); camera->acquire(); std::unique_ptr config = camera->generateConfiguration({StreamRole::Viewfinder}); StreamConfiguration &streamConfig = config->at(0); /*streamConfig.size.width = 640; streamConfig.size.height = 480;*/ config->validate(); camera->configure(config.get()); camera->requestCompleted.connect(requestCompleted); camera->start(); for (auto &req : requests) { camera->queueRequest(req.get()); } // end the cameras capturing = false; camera->stop(); camera->requestCompleted.disconnect(); requests.clear(); allocator->free(streamConfig.stream()); delete allocator; camera->release(); camera.reset(); cm->stop(); cm.reset(); return 0; }