libcamera: rkisp1: Add support for Transform
Add support for Transform to the RkISP1 pipeline handler. The pipeline rotates using the sensor's V/H flips, hence use the CameraSensor helpers to handle transformation requests from applications. Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
@@ -25,6 +25,7 @@
|
||||
#include <libcamera/framebuffer.h>
|
||||
#include <libcamera/request.h>
|
||||
#include <libcamera/stream.h>
|
||||
#include <libcamera/transform.h>
|
||||
|
||||
#include <libcamera/ipa/core_ipa_interface.h>
|
||||
#include <libcamera/ipa/rkisp1_ipa_interface.h>
|
||||
@@ -470,17 +471,17 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate()
|
||||
|
||||
status = validateColorSpaces(ColorSpaceFlag::StreamsShareColorSpace);
|
||||
|
||||
if (transform != Transform::Identity) {
|
||||
transform = Transform::Identity;
|
||||
status = Adjusted;
|
||||
}
|
||||
|
||||
/* Cap the number of entries to the available streams. */
|
||||
if (config_.size() > pathCount) {
|
||||
config_.resize(pathCount);
|
||||
status = Adjusted;
|
||||
}
|
||||
|
||||
Transform requestedTransform = transform;
|
||||
Transform combined = sensor->validateTransform(&transform);
|
||||
if (transform != requestedTransform)
|
||||
status = Adjusted;
|
||||
|
||||
/*
|
||||
* Simultaneous capture of raw and processed streams isn't possible. If
|
||||
* there is any raw stream, cap the number of streams to one.
|
||||
@@ -590,6 +591,8 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate()
|
||||
if (sensorFormat_.size.isNull())
|
||||
sensorFormat_.size = sensor->resolution();
|
||||
|
||||
sensorFormat_.transform = combined;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user