summaryrefslogtreecommitdiff
path: root/src/libcamera/camera_sensor.cpp
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-05-25 02:20:55 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-06-19 03:06:33 +0200
commitce02ea29cda94f065d857ae00101e2fef5467a40 (patch)
tree0dda3d96451acd515629f73adb592ff273c279f3 /src/libcamera/camera_sensor.cpp
parentbe78ffbe9abbd0fa6aab7a76c4a56d655d7b7548 (diff)
libcamera: v4l2_subdevice: Replace FormatEnum with ImageFormats
Replace all usage of FormatEnum with ImageFormats and completely remove FormatEnum which is no longer needed. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/libcamera/camera_sensor.cpp')
-rw-r--r--src/libcamera/camera_sensor.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index cb6649ef..a804a68c 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -90,27 +90,25 @@ int CameraSensor::init()
return ret;
/* Enumerate and cache media bus codes and sizes. */
- const FormatEnum formats = subdev_->formats(0);
- if (formats.empty()) {
+ const ImageFormats formats = subdev_->formats(0);
+ if (formats.isEmpty()) {
LOG(CameraSensor, Error) << "No image format found";
return -EINVAL;
}
- std::transform(formats.begin(), formats.end(),
- std::back_inserter(mbusCodes_),
- [](decltype(*formats.begin()) f) { return f.first; });
+ mbusCodes_ = formats.formats();
/*
* Extract the supported sizes from the first format as we only support
* sensors that offer the same frame sizes for all media bus codes.
* Verify this assumption and reject the sensor if it isn't true.
*/
- const std::vector<SizeRange> &sizes = formats.begin()->second;
+ const std::vector<SizeRange> &sizes = formats.sizes(mbusCodes_[0]);
std::transform(sizes.begin(), sizes.end(), std::back_inserter(sizes_),
[](const SizeRange &range) { return range.max; });
- for (auto it = ++formats.begin(); it != formats.end(); ++it) {
- if (it->second != sizes) {
+ for (unsigned int code : mbusCodes_) {
+ if (formats.sizes(code) != sizes) {
LOG(CameraSensor, Error)
<< "Frame sizes differ between media bus codes";
return -EINVAL;