summaryrefslogtreecommitdiff
path: root/src/protocols/httpserver.cpp
diff options
context:
space:
mode:
authorNikita Kostovsky <nikita@kostovsky.me>2025-11-22 14:09:50 +0100
committerNikita Kostovsky <nikita@kostovsky.me>2025-11-22 14:09:50 +0100
commit6aecc111a48ccc316a923e92b4b41424847be297 (patch)
tree18e6b96829d4f65aee0f51ceb803ed1a0f23bc04 /src/protocols/httpserver.cpp
parent0d91425d3b10249aa3942d3151daf0a1e41e7b22 (diff)
get rid of video buffers; refactor; add garbage code
Diffstat (limited to 'src/protocols/httpserver.cpp')
-rw-r--r--src/protocols/httpserver.cpp33
1 files changed, 20 insertions, 13 deletions
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<std::mutex> 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<VeyeIMX287m *>(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};
}