summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/geometry.h10
-rw-r--r--src/libcamera/geometry.cpp26
-rw-r--r--src/libcamera/pipeline/ipu3/ipu3.cpp17
-rw-r--r--test/v4l2_subdevice/list_formats.cpp8
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;
}
}