diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2020-09-01 15:31:56 +0200 |
---|---|---|
committer | Jacopo Mondi <jacopo@jmondi.org> | 2020-09-18 11:31:55 +0200 |
commit | 3533fd42719075f3e05540d96e3116a3d4001476 (patch) | |
tree | 838277e763276d6b27cba5a549321d832425c2a3 | |
parent | d5ce2679c67877295ce0096afd3d24d28ad34d16 (diff) |
android: camera_device: Refuse unsupported formats
The current implementation of CameraDevice::initializeStreamConfigurations()
fails if an image format marked as mandatory is not supported by the
libcamera::Camera device, but erroneously accepts non-mandatory
non-supported formats in the list of accepted ones.
Fix this by ignoring non supported image formats which are not marked as
mandatory.
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
-rw-r--r-- | src/android/camera_device.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index 93659e91..ebebdac3 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -398,10 +398,16 @@ int CameraDevice::initializeStreamConfigurations() break; } } - if (camera3Format.mandatory && !mappedFormat.isValid()) { - LOG(HAL, Error) << "Failed to map Android format " - << camera3Format.name << " (" - << utils::hex(androidFormat) << ")"; + + if (!mappedFormat.isValid()) { + /* If the format is not mandatory, skip it. */ + if (!camera3Format.mandatory) + continue; + + LOG(HAL, Error) + << "Failed to map mandatory Android format " + << camera3Format.name << " (" + << utils::hex(androidFormat) << "): aborting"; return -EINVAL; } |