pipeline: raspberrypi: Return all ISP resolutions from generateConfiguration()

The libcamerasrc gstreamer component does seem to not allow stream resolutions
that are not advertised by PipelineHandler::generateConfiguration(). This has
been raised in a bug report [1].

Fix this behavior by advertising a SizeRange from the minimum ISP resolution, up
to the sensor resolution from PipelineHandlerRPi::generateConfiguration().

[1] https://bugs.libcamera.org/show_bug.cgi?id=105

Fixes: f16acb275c ("pipeline: raspberrypi: Restrict the advertised maximum ISP output resolution")
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2022-01-06 11:32:42 +00:00 committed by Kieran Bingham
parent b2290573c0
commit 7b84a17e21

View file

@ -653,8 +653,11 @@ CameraConfiguration *PipelineHandlerRPi::generateConfiguration(Camera *camera,
*/ */
for (const auto &format : fmts) { for (const auto &format : fmts) {
PixelFormat pf = format.first.toPixelFormat(); PixelFormat pf = format.first.toPixelFormat();
if (pf.isValid()) if (pf.isValid()) {
deviceFormats[pf].emplace_back(sensorSize); const SizeRange &ispSizes = format.second[0];
deviceFormats[pf].emplace_back(ispSizes.min, sensorSize,
ispSizes.hStep, ispSizes.vStep);
}
} }
} }