summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-10-13 04:23:11 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-10-15 05:05:19 +0300
commitca5fb994091e7b3ba6db484ae0a58e2ecd00abbf (patch)
treea3c166afafdbff5c1fa80a4780fcdba365426b81 /src
parente229b35edff5aeb2dbe819ec7b4cf9816f90460a (diff)
libcamera: pipeline: ipu3: Use new Size grownBy() and shrunkBy() helpers
The Size class has new helpers that can simplify the code in the IPU3 pipeline handler. Use them. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Diffstat (limited to 'src')
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 92e86925..13791a8b 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -438,11 +438,10 @@ CameraConfiguration *PipelineHandlerIPU3::generateConfiguration(Camera *camera,
* \todo Clarify the alignment constraints as explained
* in validate()
*/
- size = sensorResolution.boundedTo(IMGU_OUTPUT_MAX_SIZE);
- size.width = utils::alignDown(size.width - 1,
- IMGU_OUTPUT_WIDTH_MARGIN);
- size.height = utils::alignDown(size.height - 1,
- IMGU_OUTPUT_HEIGHT_MARGIN);
+ size = sensorResolution.boundedTo(IMGU_OUTPUT_MAX_SIZE)
+ .shrunkBy({ 1, 1 })
+ .alignedDownTo(IMGU_OUTPUT_WIDTH_MARGIN,
+ IMGU_OUTPUT_HEIGHT_MARGIN);
pixelFormat = formats::NV12;
bufferCount = IPU3_BUFFER_COUNT;
streamFormats[pixelFormat] = { { IMGU_OUTPUT_MIN_SIZE, size } };
@@ -996,20 +995,18 @@ int PipelineHandlerIPU3::initControls(IPU3CameraData *data)
*/
/* The strictly smaller size than the sensor resolution, aligned to margins. */
- Size minSize = Size(sensor->resolution().width - 1,
- sensor->resolution().height - 1)
- .alignedDownTo(IMGU_OUTPUT_WIDTH_MARGIN,
- IMGU_OUTPUT_HEIGHT_MARGIN);
+ Size minSize = sensor->resolution().shrunkBy({ 1, 1 })
+ .alignedDownTo(IMGU_OUTPUT_WIDTH_MARGIN,
+ IMGU_OUTPUT_HEIGHT_MARGIN);
/*
* Either the smallest margin-aligned size larger than the viewfinder
* size or the adjusted sensor resolution.
*/
- minSize = Size(IPU3ViewfinderSize.width + 1,
- IPU3ViewfinderSize.height + 1)
- .alignedUpTo(IMGU_OUTPUT_WIDTH_MARGIN,
- IMGU_OUTPUT_HEIGHT_MARGIN)
- .boundedTo(minSize);
+ minSize = IPU3ViewfinderSize.grownBy({ 1, 1 })
+ .alignedUpTo(IMGU_OUTPUT_WIDTH_MARGIN,
+ IMGU_OUTPUT_HEIGHT_MARGIN)
+ .boundedTo(minSize);
/*
* Re-scale in the sensor's native coordinates. Report (0,0) as