summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-07-28 19:43:12 +0200
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2020-08-03 23:44:09 +0200
commit8c1fedcb782f4f3f5b23d30ab90f3db43a693b9a (patch)
treeb4aa3990ea6e30d272040646729c5192700e61af
parent70b65c659040fa5dcc7ebaeb048ce8b1e02677f7 (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>
-rw-r--r--src/android/camera_device.cpp6
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) << ")";