diff options
-rw-r--r-- | include/libcamera/geometry.h | 10 | ||||
-rw-r--r-- | src/libcamera/geometry.cpp | 26 | ||||
-rw-r--r-- | src/libcamera/pipeline/ipu3/ipu3.cpp | 17 | ||||
-rw-r--r-- | test/v4l2_subdevice/list_formats.cpp | 8 |
4 files changed, 23 insertions, 38 deletions
diff --git a/include/libcamera/geometry.h b/include/libcamera/geometry.h index 7704ab5a..80f79c6b 100644 --- a/include/libcamera/geometry.h +++ b/include/libcamera/geometry.h @@ -38,21 +38,17 @@ struct Size { struct SizeRange { SizeRange() - : SizeRange(0, 0, 0, 0) { } SizeRange(unsigned int minW, unsigned int minH, unsigned int maxW, unsigned int maxH) - : minWidth(minW), minHeight(minH), maxWidth(maxW), - maxHeight(maxH) + : min(minW, minH), max(maxW, maxH) { } - unsigned int minWidth; - unsigned int minHeight; - unsigned int maxWidth; - unsigned int maxHeight; + Size min; + Size max; }; } /* namespace libcamera */ diff --git a/src/libcamera/geometry.cpp b/src/libcamera/geometry.cpp index 1f875bbe..c1c7daed 100644 --- a/src/libcamera/geometry.cpp +++ b/src/libcamera/geometry.cpp @@ -93,11 +93,11 @@ const std::string Rectangle::toString() const /** * \struct SizeRange - * \brief Describe a range of image sizes + * \brief Describe a range of sizes * - * SizeRange describes a range of image sizes included in the (minWidth, - * minHeight) - (maxWidth, maxHeight) interval. If the minimum and - * maximum sizes are identical it represents a single image resolution. + * SizeRange describes a range of sizes included in the [min, max] + * interval for both the width and the height. If the minimum and + * maximum sizes are identical it represents a single size. */ /** @@ -115,23 +115,13 @@ const std::string Rectangle::toString() const */ /** - * \var SizeRange::minWidth - * \brief The minimum image width + * \var SizeRange::min + * \brief The minimum size */ /** - * \var SizeRange::minHeight - * \brief The minimum image height - */ - -/** - * \var SizeRange::maxWidth - * \brief The maximum image width - */ - -/** - * \var SizeRange::maxHeight - * \brief The maximum image height + * \var SizeRange::max + * \brief The maximum size */ } /* namespace libcamera */ diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp index f2306efb..fb9ee0af 100644 --- a/src/libcamera/pipeline/ipu3/ipu3.cpp +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp @@ -1058,10 +1058,9 @@ int CIO2Device::init(const MediaDevice *media, unsigned int index) continue; for (const SizeRange &size : it.second) { - if (maxSize_.width < size.maxWidth && - maxSize_.height < size.maxHeight) { - maxSize_.width = size.maxWidth; - maxSize_.height = size.maxHeight; + if (maxSize_.width < size.max.width && + maxSize_.height < size.max.height) { + maxSize_ = size.max; mbusCode_ = mbusCode; } } @@ -1116,19 +1115,19 @@ int CIO2Device::configure(const StreamConfiguration &config, * as possible. This will need to be revisited when * implementing the scaling policy. */ - if (size.maxWidth < config.width || - size.maxHeight < config.height) + if (size.max.width < config.width || + size.max.height < config.height) continue; - unsigned int diff = size.maxWidth * size.maxHeight + unsigned int diff = size.max.width * size.max.height - imageSize; if (diff >= best) continue; best = diff; - sensorFormat.width = size.maxWidth; - sensorFormat.height = size.maxHeight; + sensorFormat.width = size.max.width; + sensorFormat.height = size.max.height; sensorFormat.mbus_code = it.first; } } diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp index 47ae3a1c..09dec9ab 100644 --- a/test/v4l2_subdevice/list_formats.cpp +++ b/test/v4l2_subdevice/list_formats.cpp @@ -37,10 +37,10 @@ void ListFormatsTest::printFormats(unsigned int pad, for (SizeRange &size : sizes) { cout << " mbus code: 0x" << setfill('0') << setw(4) << hex << code << endl; - cout << " min width: " << dec << size.minWidth << endl; - cout << " min height: " << dec << size.minHeight << endl; - cout << " max width: " << dec << size.maxWidth << endl; - cout << " max height: " << dec << size.maxHeight << endl; + cout << " min width: " << dec << size.min.width << endl; + cout << " min height: " << dec << size.min.height << endl; + cout << " max width: " << dec << size.max.width << endl; + cout << " max height: " << dec << size.max.height << endl; } } |