diff options
author | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2020-07-28 19:43:12 +0200 |
---|---|---|
committer | Niklas Söderlund <niklas.soderlund@ragnatech.se> | 2020-08-03 23:44:09 +0200 |
commit | 8c1fedcb782f4f3f5b23d30ab90f3db43a693b9a (patch) | |
tree | b4aa3990ea6e30d272040646729c5192700e61af /src/android | |
parent | 70b65c659040fa5dcc7ebaeb048ce8b1e02677f7 (diff) |
android: camera_device: Prepare for non-mandatory formats
When probing what formats a libcamera Camera supports we want to allow
to probe for non-mandatory formats. Add a new flag to indicate if a
format in camera3FormatsMap is mandatory or not.
All current defined formats are mandatory.
Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/camera_device.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp index b49d6681..8028d3e1 100644 --- a/src/android/camera_device.cpp +++ b/src/android/camera_device.cpp @@ -46,6 +46,7 @@ const std::vector<Size> camera3Resolutions = { */ struct Camera3Format { std::vector<PixelFormat> libcameraFormats; + bool mandatory; const char *name; }; @@ -57,11 +58,13 @@ const std::map<int, const Camera3Format> camera3FormatsMap = { { HAL_PIXEL_FORMAT_BLOB, { { formats::MJPEG }, + true, "BLOB" } }, { HAL_PIXEL_FORMAT_YCbCr_420_888, { { formats::NV12, formats::NV21 }, + true, "YCbCr_420_888" } }, { @@ -71,6 +74,7 @@ const std::map<int, const Camera3Format> camera3FormatsMap = { */ HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, { { formats::NV12, formats::NV21 }, + true, "IMPLEMENTATION_DEFINED" } }, @@ -281,7 +285,7 @@ int CameraDevice::initializeStreamConfigurations() break; } } - if (!mappedFormat.isValid()) { + if (camera3Format.mandatory && !mappedFormat.isValid()) { LOG(HAL, Error) << "Failed to map Android format " << camera3Format.name << " (" << utils::hex(androidFormat) << ")"; |