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

Message ID 20200323173559.21109-15-laurent.pinchart@ideasonboard.com
State Accepted
Headers show
Series
  • qcam: Bypass format conversion when not required
Related show

Commit Message

Laurent Pinchart March 23, 2020, 5:35 p.m. UTC
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>
---
 src/qcam/main_window.cpp | 7 +------
 src/qcam/main_window.h   | 2 +-
 src/qcam/viewfinder.cpp  | 6 ++++++
 3 files changed, 8 insertions(+), 7 deletions(-)

Patch

diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index d10c542c0b6d..3711a02c7fdc 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 71206bc96fc4..33522115b6be 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 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_);
 
 	/*