summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-23 01:58:19 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-24 10:34:03 +0200
commitb73192036db19f09057c64f350b53093ee9e7797 (patch)
tree3adce72c9f90c9d3062c7d51d7e8eebe2afc2b68
parent275fd5bd33107a10b1e47a0d36d834b390831af0 (diff)
qcam: viewfinder: Move multi-planar check into viewfinder
The lack of support for multiplanar buffers comes from the viewfinder. Move the corresponding check from MainWindow. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/qcam/main_window.cpp7
-rw-r--r--src/qcam/main_window.h2
-rw-r--r--src/qcam/viewfinder.cpp6
3 files changed, 8 insertions, 7 deletions
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index d10c542c..3711a02c 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -524,14 +524,9 @@ void MainWindow::processCapture()
queueRequest(buffer);
}
-int MainWindow::display(FrameBuffer *buffer)
+void MainWindow::display(FrameBuffer *buffer)
{
- if (buffer->planes().size() != 1)
- return -EINVAL;
-
viewfinder_->display(buffer, &mappedBuffers_[buffer]);
-
- return 0;
}
void MainWindow::queueRequest(FrameBuffer *buffer)
diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h
index 71206bc9..33522115 100644
--- a/src/qcam/main_window.h
+++ b/src/qcam/main_window.h
@@ -66,7 +66,7 @@ private:
void requestComplete(Request *request);
void processCapture();
- int display(FrameBuffer *buffer);
+ void display(FrameBuffer *buffer);
void queueRequest(FrameBuffer *buffer);
/* UI elements */
diff --git a/src/qcam/viewfinder.cpp b/src/qcam/viewfinder.cpp
index d00edc33..b8feabd5 100644
--- a/src/qcam/viewfinder.cpp
+++ b/src/qcam/viewfinder.cpp
@@ -11,6 +11,7 @@
#include <QImageWriter>
#include <QMutexLocker>
#include <QPainter>
+#include <QtDebug>
#include "format_converter.h"
@@ -27,6 +28,11 @@ ViewFinder::~ViewFinder()
void ViewFinder::display(const libcamera::FrameBuffer *buffer,
MappedBuffer *map)
{
+ if (buffer->planes().size() != 1) {
+ qWarning() << "Multi-planar buffers are not supported";
+ return;
+ }
+
QMutexLocker locker(&mutex_);
/*