libcamera: pipeline: raspberrypi: Implementation of digital zoom

During configure() we update the ScalerCropMaximum to the correct
value for this camera mode and work out the minimum crop size allowed
by the ISP.

Whenever a new ScalerCrop request is received we check it's valid and
apply it to the ISP V4L2 device. When the IPA returns its metadata to
us we add the ScalerCrop information, rescaled to sensor native
pixels.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
David Plowman 2020-10-27 11:07:38 +00:00 committed by Laurent Pinchart
parent 44b5292ae3
commit 4a748394e5
3 changed files with 82 additions and 17 deletions

View file

@ -699,6 +699,11 @@ void IPARPi::queueRequest(const ControlList &controls)
break;
}
case controls::SCALER_CROP: {
/* We do nothing with this, but should avoid the warning below. */
break;
}
default:
LOG(IPARPI, Warning)
<< "Ctrl " << controls::controls.at(ctrl.first)->name()