[libcamera-devel] [PATCH 14/21] qcam: viewfinder: Move multi-planar check into viewfinder

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Mar 23 15:21:58 CET 2020


The lack of support for multiplanar buffers comes from the viewfinder.
Move the corresponding check from MainWindow.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/qcam/main_window.cpp | 7 +------
 src/qcam/main_window.h   | 2 +-
 src/qcam/viewfinder.cpp  | 6 ++++++
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index c0feb91a6fb1..ad0d6bf4f3e5 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -519,14 +519,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 0918ae5307d8..03db761b58e4 100644
--- a/src/qcam/main_window.h
+++ b/src/qcam/main_window.h
@@ -65,7 +65,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 d00edc33dfb7..b8feabd5d189 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_);
 
 	/*
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list