[libcamera-devel] [PATCH 1/3] android: camera_device: Skip instead of fail if camera don't support format

Jacopo Mondi jacopo at jmondi.org
Wed Jul 29 10:37:22 CEST 2020


Hi Niklas,

On Tue, Jul 28, 2020 at 08:55:46PM +0200, Niklas Söderlund wrote:
> If the libcamera Camera don't support the Android format do not fail the
> initialization. Instead skip adding the Android format to the list of
> supported formats reported.
>
> This allows extending the camera3FormatsMap with Android formats not
> supported by all libcamera Cameras and probe and report only the ones
> that overlap.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
>  src/android/camera_device.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index b49d6681e5a52d32..265627a98422bd67 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -282,10 +282,10 @@ int CameraDevice::initializeStreamConfigurations()
>  			}
>  		}
>  		if (!mappedFormat.isValid()) {
> -			LOG(HAL, Error) << "Failed to map Android format "
> +			LOG(HAL, Debug) << "Failed to map Android format "
>  					<< camera3Format.name << " ("
>  					<< utils::hex(androidFormat) << ")";
> -			return -EINVAL;
> +			continue;

Ok, I see where this is going, but I think we should now enforce that
the formats currently listed in Camera3FormatsMap, which if I'm not mistaken
are mandatory to be supported, are actually supported by the Camera.

Have a look at the documentation of android.scaler.availableStreamConfigurations
and the below table. I think we need to re-loop on the streamConfigurations_
vector and make sure we tick the box for the required formats.

>  		}
>
>  		/*
> --
> 2.27.0
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel


More information about the libcamera-devel mailing list