summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Plowman <david.plowman@raspberrypi.com>2021-12-10 14:44:23 +0000
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-13 11:29:02 +0200
commit5e5eadabd812481c8975315320046972e6b76a65 (patch)
tree61e7aa85b96e4f3d18367a308de3f3b591e942d0 /include
parent4a5680998136cd4cd22e2ba40d9f09333b85942a (diff)
libcamera: camera: Add validateColorSpaces to CameraConfiguration class
This function forces raw streams to have the "raw" color space, and also optionally makes all non-raw output streams to share the same color space as some platforms may require this. When sharing color spaces we take the shared value to be the one from the largest of these streams. This choice is ultimately arbitrary, but can be appropriate if smaller output streams are used for image analysis rather than human consumption, when the precise colours may be less important. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/camera.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index a7759ccb..5bb06584 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -13,6 +13,7 @@
#include <string>
#include <libcamera/base/class.h>
+#include <libcamera/base/flags.h>
#include <libcamera/base/object.h>
#include <libcamera/base/signal.h>
@@ -69,6 +70,15 @@ public:
protected:
CameraConfiguration();
+ enum class ColorSpaceFlag {
+ None,
+ StreamsShareColorSpace,
+ };
+
+ using ColorSpaceFlags = Flags<ColorSpaceFlag>;
+
+ Status validateColorSpaces(ColorSpaceFlags flags = ColorSpaceFlag::None);
+
std::vector<StreamConfiguration> config_;
};