diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-08-28 03:38:42 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-09-01 22:41:01 +0300 |
commit | ee4681b7e8899c50b6d960d3b0b52ffd09c19a22 (patch) | |
tree | 23ef1ac401184886083959ad748a85762144d7ff | |
parent | 6b3f8a78750fb6ad87f15fdecba5c5a49ceaf6e5 (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.cpp | 6 | ||||
-rw-r--r-- | src/qcam/viewfinder.h | 2 | ||||
-rw-r--r-- | src/qcam/viewfinder_gl.cpp | 5 | ||||
-rw-r--r-- | src/qcam/viewfinder_gl.h | 1 | ||||
-rw-r--r-- | src/qcam/viewfinder_qt.cpp | 5 | ||||
-rw-r--r-- | src/qcam/viewfinder_qt.h | 1 |
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; |