diff options
-rw-r--r-- | include/libcamera/internal/camera_sensor.h | 2 | ||||
-rw-r--r-- | src/libcamera/camera_sensor.cpp | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h index 71d012f7..3e98f71b 100644 --- a/include/libcamera/internal/camera_sensor.h +++ b/include/libcamera/internal/camera_sensor.h @@ -53,7 +53,7 @@ public: const MediaEntity *entity() const { return entity_; } const std::vector<unsigned int> &mbusCodes() const { return mbusCodes_; } const std::vector<Size> &sizes() const { return sizes_; } - Size resolution() const { return activeArea_.size(); } + Size resolution() const; V4L2SubdeviceFormat getFormat(const std::vector<unsigned int> &mbusCodes, const Size &size) const; diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp index a0498297..27f82071 100644 --- a/src/libcamera/camera_sensor.cpp +++ b/src/libcamera/camera_sensor.cpp @@ -551,10 +551,22 @@ int CameraSensor::initProperties() */ /** - * \fn CameraSensor::resolution() * \brief Retrieve the camera sensor resolution + * + * The camera sensor resolution is the active pixel area size, clamped to the + * maximum frame size the sensor can produce if it is smaller than the active + * pixel area. + * + * \todo Consider if it desirable to distinguish between the maximum resolution + * the sensor can produce (also including upscaled ones) and the actual pixel + * array size by splitting this method in two. + * * \return The camera sensor resolution in pixels */ +Size CameraSensor::resolution() const +{ + return std::min(sizes_.back(), activeArea_.size()); +} /** * \brief Retrieve the best sensor format for a desired output |