summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-08-28 03:38:42 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-09-01 22:41:01 +0300
commitee4681b7e8899c50b6d960d3b0b52ffd09c19a22 (patch)
tree23ef1ac401184886083959ad748a85762144d7ff
parent6b3f8a78750fb6ad87f15fdecba5c5a49ceaf6e5 (diff)
qcam: Pass color space to ViewFinder::setFormat()
To prepare for color space support in the viewfinder, pass the color space to the setFormat() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
-rw-r--r--src/qcam/main_window.cpp6
-rw-r--r--src/qcam/viewfinder.h2
-rw-r--r--src/qcam/viewfinder_gl.cpp5
-rw-r--r--src/qcam/viewfinder_gl.h1
-rw-r--r--src/qcam/viewfinder_qt.cpp5
-rw-r--r--src/qcam/viewfinder_qt.h1
6 files changed, 15 insertions, 5 deletions
diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp
index 7433d647..addf0d96 100644
--- a/src/qcam/main_window.cpp
+++ b/src/qcam/main_window.cpp
@@ -447,9 +447,13 @@ int MainWindow::startCapture()
else
rawStream_ = nullptr;
- /* Configure the viewfinder. */
+ /*
+ * Configure the viewfinder. If no color space is reported, default to
+ * sYCC.
+ */
ret = viewfinder_->setFormat(vfConfig.pixelFormat,
QSize(vfConfig.size.width, vfConfig.size.height),
+ vfConfig.colorSpace.value_or(ColorSpace::Sycc),
vfConfig.stride);
if (ret < 0) {
qInfo() << "Failed to set viewfinder format";
diff --git a/src/qcam/viewfinder.h b/src/qcam/viewfinder.h
index 260074ae..a57446e8 100644
--- a/src/qcam/viewfinder.h
+++ b/src/qcam/viewfinder.h
@@ -11,6 +11,7 @@
#include <QList>
#include <QSize>
+#include <libcamera/color_space.h>
#include <libcamera/formats.h>
#include <libcamera/framebuffer.h>
@@ -24,6 +25,7 @@ public:
virtual const QList<libcamera::PixelFormat> &nativeFormats() const = 0;
virtual int setFormat(const libcamera::PixelFormat &format, const QSize &size,
+ const libcamera::ColorSpace &colorSpace,
unsigned int stride) = 0;
virtual void render(libcamera::FrameBuffer *buffer, Image *image) = 0;
virtual void stop() = 0;
diff --git a/src/qcam/viewfinder_gl.cpp b/src/qcam/viewfinder_gl.cpp
index 3ae8b03a..ec295b6d 100644
--- a/src/qcam/viewfinder_gl.cpp
+++ b/src/qcam/viewfinder_gl.cpp
@@ -71,8 +71,9 @@ const QList<libcamera::PixelFormat> &ViewFinderGL::nativeFormats() const
return supportedFormats;
}
-int ViewFinderGL::setFormat(const libcamera::PixelFormat &format,
- const QSize &size, unsigned int stride)
+int ViewFinderGL::setFormat(const libcamera::PixelFormat &format, const QSize &size,
+ [[maybe_unused]] const libcamera::ColorSpace &colorSpace,
+ unsigned int stride)
{
if (format != format_) {
/*
diff --git a/src/qcam/viewfinder_gl.h b/src/qcam/viewfinder_gl.h
index 0a9275ba..798830a3 100644
--- a/src/qcam/viewfinder_gl.h
+++ b/src/qcam/viewfinder_gl.h
@@ -39,6 +39,7 @@ public:
const QList<libcamera::PixelFormat> &nativeFormats() const override;
int setFormat(const libcamera::PixelFormat &format, const QSize &size,
+ const libcamera::ColorSpace &colorSpace,
unsigned int stride) override;
void render(libcamera::FrameBuffer *buffer, Image *image) override;
void stop() override;
diff --git a/src/qcam/viewfinder_qt.cpp b/src/qcam/viewfinder_qt.cpp
index 7a6a60c9..c20fd6bc 100644
--- a/src/qcam/viewfinder_qt.cpp
+++ b/src/qcam/viewfinder_qt.cpp
@@ -54,8 +54,9 @@ const QList<libcamera::PixelFormat> &ViewFinderQt::nativeFormats() const
return formats;
}
-int ViewFinderQt::setFormat(const libcamera::PixelFormat &format,
- const QSize &size, unsigned int stride)
+int ViewFinderQt::setFormat(const libcamera::PixelFormat &format, const QSize &size,
+ [[maybe_unused]] const libcamera::ColorSpace &colorSpace,
+ unsigned int stride)
{
image_ = QImage();
diff --git a/src/qcam/viewfinder_qt.h b/src/qcam/viewfinder_qt.h
index 8c621452..eb3a9988 100644
--- a/src/qcam/viewfinder_qt.h
+++ b/src/qcam/viewfinder_qt.h
@@ -32,6 +32,7 @@ public:
const QList<libcamera::PixelFormat> &nativeFormats() const override;
int setFormat(const libcamera::PixelFormat &format, const QSize &size,
+ const libcamera::ColorSpace &colorSpace,
unsigned int stride) override;
void render(libcamera::FrameBuffer *buffer, Image *image) override;
void stop() override;