diff options
author | David Plowman <david.plowman@raspberrypi.com> | 2020-09-07 08:16:00 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2020-09-29 11:43:06 +0100 |
commit | dcae0513f799c78ad513c9c9c7dc5426e7a25161 (patch) | |
tree | 62d17d43aaea2c493eabab2169199bd34084a236 /src/libcamera/camera.cpp | |
parent | 78cbd6a93fbb49a20b97793b925769eefb52e516 (diff) |
libcamera: Add user Transform to CameraConfiguration
Add a field to the CameraConfiguration (including the necessary
documentation) to represent a 2D transform requested by the
application. All pipeline handlers are amended to coerce this to the
Identity, marking the configuration as "adjusted" if something
different had been requested.
Pipeline handlers that support Transforms can be amended subsequently.
Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/libcamera/camera.cpp')
-rw-r--r-- | src/libcamera/camera.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index ae16a64a..fb76077f 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -94,7 +94,7 @@ LOG_DECLARE_CATEGORY(Camera) * \brief Create an empty camera configuration */ CameraConfiguration::CameraConfiguration() - : config_({}) + : transform(Transform::Identity), config_({}) { } @@ -252,6 +252,20 @@ std::size_t CameraConfiguration::size() const } /** + * \var CameraConfiguration::transform + * \brief User-specified transform to be applied to the image + * + * The transform is a user-specified 2D plane transform that will be applied + * to the camera images by the processing pipeline before being handed to + * the application. This is subsequent to any transform that is already + * required to fix up any platform-defined rotation. + * + * The usual 2D plane transforms are allowed here (horizontal/vertical + * flips, multiple of 90-degree rotations etc.), but the validate() function + * may adjust this field at its discretion if the selection is not supported. + */ + +/** * \var CameraConfiguration::config_ * \brief The vector of stream configurations */ |