@@ -772,9 +772,21 @@ CameraConfiguration::Status RkISP1CameraConfiguration::validate()
sensorFormat_ = sensor->getFormat(mbusCodes, accumulatedSensorSize,
mainPath->maxResolution());
+
+ /*
+ * TODO: There doesn't seem to be a valid occasion to set the size to
+ * the native resolution if there was not a supported size found above.
+ */
if (sensorFormat_.size.isNull())
sensorFormat_.size = sensor->resolution();
+ if (sensorFormat_.size > mainPath->maxResolution()) {
+ LOG(RkISP1, Error)
+ << "Sensor format size " << sensorFormat_.size
+ << " exceeds maximum possible size " << mainPath->maxResolution();
+ return Invalid;
+ }
+
return status;
}
If we select a Sensor Format that is larger than the ISP capabilities the pipeline will not be able to successfully start. Detect this during validate - and report accordingly, returning an 'Invalid' state to reflect that we were not able to reconfigure to adjust to a working state in this instance. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> --- src/libcamera/pipeline/rkisp1/rkisp1.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+)