diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-10-13 04:23:11 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-10-15 05:05:19 +0300 |
commit | ca5fb994091e7b3ba6db484ae0a58e2ecd00abbf (patch) | |
tree | a3c166afafdbff5c1fa80a4780fcdba365426b81 | |
parent | e229b35edff5aeb2dbe819ec7b4cf9816f90460a (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>
-rw-r--r-- | src/libcamera/pipeline/ipu3/ipu3.cpp | 25 |
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 |