From f28ca209602a93a3b7176d86a6329ddb2a341293 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Date: Fri, 28 Feb 2020 02:38:18 +0100 Subject: libcamera: Use PixelFormat instead of unsigned int where appropriate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use the PixelFormat instead of unsigned int where a pixel format is to be used. PixelFormat is defined as an unsigned int but is about to be turned into a class to add functionality. There is no functional change in this patch. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart --- src/cam/main.cpp | 2 +- src/gstreamer/gstlibcamera-utils.cpp | 10 +++++----- src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- src/libcamera/pipeline/uvcvideo.cpp | 4 ++-- src/libcamera/pipeline/vimc.cpp | 4 ++-- src/qcam/format_converter.cpp | 2 +- src/qcam/format_converter.h | 6 ++++-- src/qcam/viewfinder.cpp | 2 +- src/qcam/viewfinder.h | 6 ++++-- 10 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/cam/main.cpp b/src/cam/main.cpp index ea6f7914..af516f1c 100644 --- a/src/cam/main.cpp +++ b/src/cam/main.cpp @@ -303,7 +303,7 @@ int CamApp::infoConfiguration() std::cout << index << ": " << cfg.toString() << std::endl; const StreamFormats &formats = cfg.formats(); - for (unsigned int pixelformat : formats.pixelformats()) { + for (PixelFormat pixelformat : formats.pixelformats()) { std::cout << " * Pixelformat: 0x" << std::hex << std::setw(8) << pixelformat << " " << formats.range(pixelformat).toString() diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp index 44a993fa..3b3973bc 100644 --- a/src/gstreamer/gstlibcamera-utils.cpp +++ b/src/gstreamer/gstlibcamera-utils.cpp @@ -79,16 +79,16 @@ gst_libcamera_stream_formats_to_caps(const StreamFormats &formats) { GstCaps *caps = gst_caps_new_empty(); - for (unsigned int fourcc : formats.pixelformats()) { - g_autoptr(GstStructure) bare_s = bare_structure_from_fourcc(fourcc); + for (PixelFormat pixelformat : formats.pixelformats()) { + g_autoptr(GstStructure) bare_s = bare_structure_from_fourcc(pixelformat); if (!bare_s) { GST_WARNING("Unsupported DRM format %" GST_FOURCC_FORMAT, - GST_FOURCC_ARGS(fourcc)); + GST_FOURCC_ARGS(pixelformat)); continue; } - for (const Size &size : formats.sizes(fourcc)) { + for (const Size &size : formats.sizes(pixelformat)) { GstStructure *s = gst_structure_copy(bare_s); gst_structure_set(s, "width", G_TYPE_INT, size.width, @@ -97,7 +97,7 @@ gst_libcamera_stream_formats_to_caps(const StreamFormats &formats) gst_caps_append_structure(caps, s); } - const SizeRange &range = formats.range(fourcc); + const SizeRange &range = formats.range(pixelformat); if (range.hStep && range.vStep) { GstStructure *s = gst_structure_copy(bare_s); GValue val = G_VALUE_INIT; diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index 387bb070..33f97b34 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -349,7 +349,7 @@ CameraConfiguration::Status IPU3CameraConfiguration::validate() for (unsigned int i = 0; i < config_.size(); ++i) { StreamConfiguration &cfg = config_[i]; - const unsigned int pixelFormat = cfg.pixelFormat; + const PixelFormat pixelFormat = cfg.pixelFormat; const Size size = cfg.size; const IPU3Stream *stream; diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 13433b21..11e8c494 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -433,7 +433,7 @@ RkISP1CameraConfiguration::RkISP1CameraConfiguration(Camera *camera, CameraConfiguration::Status RkISP1CameraConfiguration::validate() { - static const std::array formats{ + static const std::array formats{ DRM_FORMAT_YUYV, DRM_FORMAT_YVYU, DRM_FORMAT_VYUY, diff --git a/src/libcamera/pipeline/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo.cpp index 29afb121..cf419e8b 100644 --- a/src/libcamera/pipeline/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo.cpp @@ -107,10 +107,10 @@ CameraConfiguration::Status UVCCameraConfiguration::validate() StreamConfiguration &cfg = config_[0]; const StreamFormats &formats = cfg.formats(); - const unsigned int pixelFormat = cfg.pixelFormat; + const PixelFormat pixelFormat = cfg.pixelFormat; const Size size = cfg.size; - const std::vector pixelFormats = formats.pixelformats(); + const std::vector pixelFormats = formats.pixelformats(); auto iter = std::find(pixelFormats.begin(), pixelFormats.end(), pixelFormat); if (iter == pixelFormats.end()) { cfg.pixelFormat = pixelFormats.front(); diff --git a/src/libcamera/pipeline/vimc.cpp b/src/libcamera/pipeline/vimc.cpp index 5d3d12fe..5b846cf5 100644 --- a/src/libcamera/pipeline/vimc.cpp +++ b/src/libcamera/pipeline/vimc.cpp @@ -106,7 +106,7 @@ private: namespace { -constexpr std::array pixelformats{ +constexpr std::array pixelformats{ DRM_FORMAT_RGB888, DRM_FORMAT_BGR888, DRM_FORMAT_BGRA8888, @@ -177,7 +177,7 @@ CameraConfiguration *PipelineHandlerVimc::generateConfiguration(Camera *camera, ImageFormats formats; - for (unsigned int pixelformat : pixelformats) { + for (PixelFormat pixelformat : pixelformats) { /* The scaler hardcodes a x3 scale-up ratio. */ std::vector sizes{ SizeRange{ 48, 48, 4096, 2160 } diff --git a/src/qcam/format_converter.cpp b/src/qcam/format_converter.cpp index 46041434..d4a66f38 100644 --- a/src/qcam/format_converter.cpp +++ b/src/qcam/format_converter.cpp @@ -27,7 +27,7 @@ #define CLIP(x) CLAMP(x,0,255) #endif -int FormatConverter::configure(unsigned int format, unsigned int width, +int FormatConverter::configure(libcamera::PixelFormat format, unsigned int width, unsigned int height) { switch (format) { diff --git a/src/qcam/format_converter.h b/src/qcam/format_converter.h index 391e6a44..ff488b99 100644 --- a/src/qcam/format_converter.h +++ b/src/qcam/format_converter.h @@ -9,12 +9,14 @@ #include +#include + class QImage; class FormatConverter { public: - int configure(unsigned int format, unsigned int width, + int configure(libcamera::PixelFormat format, unsigned int width, unsigned int height); void convert(const unsigned char *src, size_t size, QImage *dst); @@ -31,7 +33,7 @@ private: void convertRGB(const unsigned char *src, unsigned char *dst); void convertYUV(const unsigned char *src, unsigned char *dst); - unsigned int format_; + libcamera::PixelFormat format_; unsigned int width_; unsigned int height_; diff --git a/src/qcam/viewfinder.cpp b/src/qcam/viewfinder.cpp index d51eebb1..0ebb8edd 100644 --- a/src/qcam/viewfinder.cpp +++ b/src/qcam/viewfinder.cpp @@ -44,7 +44,7 @@ QImage ViewFinder::getCurrentImage() return image_->copy(); } -int ViewFinder::setFormat(unsigned int format, unsigned int width, +int ViewFinder::setFormat(libcamera::PixelFormat format, unsigned int width, unsigned int height) { int ret; diff --git a/src/qcam/viewfinder.h b/src/qcam/viewfinder.h index 2ba28b60..2668aa44 100644 --- a/src/qcam/viewfinder.h +++ b/src/qcam/viewfinder.h @@ -10,6 +10,8 @@ #include #include +#include + #include "format_converter.h" class QImage; @@ -20,7 +22,7 @@ public: ViewFinder(QWidget *parent); ~ViewFinder(); - int setFormat(unsigned int format, unsigned int width, + int setFormat(libcamera::PixelFormat format, unsigned int width, unsigned int height); void display(const unsigned char *rgb, size_t size); @@ -31,7 +33,7 @@ protected: QSize sizeHint() const override; private: - unsigned int format_; + libcamera::PixelFormat format_; unsigned int width_; unsigned int height_; -- cgit v1.2.1