From 6aecc111a48ccc316a923e92b4b41424847be297 Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Sat, 22 Nov 2025 14:09:50 +0100 Subject: get rid of video buffers; refactor; add garbage code --- src/protocols/httpserver.cpp | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'src/protocols/httpserver.cpp') diff --git a/src/protocols/httpserver.cpp b/src/protocols/httpserver.cpp index d10518b..96b87db 100644 --- a/src/protocols/httpserver.cpp +++ b/src/protocols/httpserver.cpp @@ -76,14 +76,17 @@ void HttpServer::stop() QHttpServerResponse HttpServer::GET_image() { - Image img; + // Image img; - if (!m_camera->getImage(&img)) { + const auto image = m_camera->getImage(); + + // if (!m_camera->getImage(&img)) { + if (!image) { qCritical() << "cannot get image"; return QHttpServerResponse::StatusCode::ServiceUnavailable; } - pgm_save(&img); + pgm_save(image.get()); std::lock_guard lg(pgm_image_mtx); return QHttpServerResponse{QByteArray{(const char *) (pgm_image), @@ -108,7 +111,14 @@ QHttpServerResponse HttpServer::GET_pixels() }}; } - Image img; + // Image img; + if (!m_camera) { + qWarning() << "NO CAM"; + return QHttpServerResponse::StatusCode::ServiceUnavailable; + } + + const auto image = m_camera->getImage(); + { // const auto sharedCam = m_camera.lock(); // FIME: don't cast anything, use interface @@ -116,15 +126,12 @@ QHttpServerResponse HttpServer::GET_pixels() // auto cam = dynamic_cast(m_camera); // if (!cam) { - if (!m_camera) { - qWarning() << "NO CAM"; - return QHttpServerResponse::StatusCode::ServiceUnavailable; - } // yeaah // ::img = &img; // if (!cam->getImage(img)) { - if (!m_camera->getImage(&img)) { + // if (!m_camera->getImage(&img)) { + if (!image) { qWarning() << "cannot get image"; return QHttpServerResponse::StatusCode::ServiceUnavailable; } @@ -136,7 +143,7 @@ QHttpServerResponse HttpServer::GET_pixels() } // FIXME: not thread-safe, don't use this static shared_ptr at all - const auto pixels = img.sharedPixels(); + const auto pixels = image->sharedPixels(); // const auto lines = pixelsToLines(::pixels); const auto lines = pixelsToLines(*pixels); @@ -168,8 +175,8 @@ QHttpServerResponse HttpServer::GET_pixels() // jd.AddMember("encoderPosition", qint64{encoder.position()}); // FIXME: get prom pixels struct - jd.AddMember("measurementCounter", img.counters.measurementCounter, al); - jd.AddMember("timestampUs", img.counters.timestampUs, al); + jd.AddMember("measurementCounter", image->counters.measurementCounter, al); + jd.AddMember("timestampUs", image->counters.timestampUs, al); jd.AddMember("pixels", rjPixels.Move(), al); jd.AddMember("lines", rjLines.Move(), al); @@ -179,7 +186,7 @@ QHttpServerResponse HttpServer::GET_pixels() jd.Accept(writer); const QString res{(const char *) buffer.GetString()}; // qDebug() << "size:" << res.size(); - // qDebug().noquote() << "ret pix"; + // qDebug().noquote().nospace() << "ret pix: " << res; return QHttpServerResponse{res}; } -- cgit v1.2.3-70-g09d2