[libcamera-devel] [PATCH v2 3/3] android: camera_device: Report RAW capability if supported
Jacopo Mondi
jacopo at jmondi.org
Wed Jul 29 18:24:51 CEST 2020
Hi Niklas,
On Wed, Jul 29, 2020 at 01:12:02PM +0200, Niklas Söderlund wrote:
> Probe the libcamera Camera for RAW support and if supported report RAW
> capability in the static metadata reported to Android.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> src/android/camera_device.cpp | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index c31950db78a588ed..7764c6aee9b8e587 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -15,6 +15,7 @@
> #include <libcamera/formats.h>
> #include <libcamera/property_ids.h>
>
> +#include "libcamera/internal/formats.h"
> #include "libcamera/internal/log.h"
> #include "libcamera/internal/utils.h"
>
> @@ -735,6 +736,15 @@ const camera_metadata_t *CameraDevice::getStaticMetadata()
> std::vector<uint8_t> availableCapabilities = {
> ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE,
> };
> +
> + /* Report if camera supports RAW. */
> + std::unique_ptr<CameraConfiguration> cameraConfig =
> + camera_->generateConfiguration({ StillCaptureRaw });
If the camera does not support RAW, then generateConfiguration returns
a nullptr. You should check if cameraConfig is valid before accessing
it.
The idea is good and questions on v1 clarified.
Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>
Thanks
j
> + const PixelFormatInfo &info =
> + PixelFormatInfo::info(cameraConfig->at(0).pixelFormat);
> + if (info.colourEncoding == PixelFormatInfo::ColourEncodingRAW)
> + availableCapabilities.push_back(ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW);
> +
> staticMetadata_->addEntry(ANDROID_REQUEST_AVAILABLE_CAPABILITIES,
> availableCapabilities.data(),
> availableCapabilities.size());
> --
> 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