[libcamera-devel] [PATCH v2 2/3] android: camera_device: Map HAL RAW to libcamera RAW formats

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jul 29 18:38:08 CEST 2020


On Wed, Jul 29, 2020 at 06:21:47PM +0200, Jacopo Mondi wrote:
> On Wed, Jul 29, 2020 at 01:12:01PM +0200, Niklas Söderlund wrote:
> > Add a mapping from HAL RAW formats to the direct equivalent of libcamera
> > formats. With this change it is possible to capture RAW images as long
> > as the hardware can deliver frames in a format that is native to the
> > HAL.
> >
> > More work is needed to deal with unpacked 8, 10 and 12 RAW formats as
> > they don't directly map to a native HAL format. Nor do they belong in
> > the RAW_OPAQUE category as the content format is generic and not
> > uncommonly supported by hardware.
> >
> > Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> > ---
> >  src/android/camera_device.cpp | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> >
> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> > index ce37fcb8cf5cd4b3..c31950db78a588ed 100644
> > --- a/src/android/camera_device.cpp
> > +++ b/src/android/camera_device.cpp
> > @@ -77,6 +77,30 @@ const std::map<int, const Camera3Format> camera3FormatsMap = {
> >  			true,
> >  			"IMPLEMENTATION_DEFINED"
> >  		}
> > +	}, {
> > +		HAL_PIXEL_FORMAT_RAW10, {
> > +			{ formats::SBGGR10_CSI2P, formats::SGBRG10_CSI2P, formats::SGRBG10_CSI2P, formats::SRGGB10_CSI2P },

I'd wrap this:

			{
				formats::SBGGR10_CSI2P,
				formats::SGBRG10_CSI2P,
				formats::SGRBG10_CSI2P,
				formats::SRGGB10_CSI2P
			},

Same below.

> For my own education, how does android distinguish between the diffent
> components ordering, if they just report formats as RAWxx ? They don't
> care ?

android.sensor.info.colorFilterArrangement

> The patch looks good otherwise
> Reviewed-by: Jacopo Mondi <jacopo at jmondi.org>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> > +			false,
> > +			"RAW10"
> > +		}
> > +	}, {
> > +		HAL_PIXEL_FORMAT_RAW12, {
> > +			{ formats::SBGGR12_CSI2P, formats::SGBRG12_CSI2P, formats::SGRBG12_CSI2P, formats::SRGGB12_CSI2P },
> > +			false,
> > +			"RAW12"
> > +		}
> > +	}, {
> > +		HAL_PIXEL_FORMAT_RAW16, {
> > +			{ formats::SBGGR16, formats::SGBRG16, formats::SGRBG16, formats::SRGGB16 },
> > +			false,
> > +			"RAW16"
> > +		}
> > +	}, {
> > +		HAL_PIXEL_FORMAT_RAW_OPAQUE, {
> > +			{ formats::SBGGR10_IPU3, formats::SGBRG10_IPU3, formats::SGRBG10_IPU3, formats::SRGGB10_IPU3 },
> > +			false,
> > +			"RAW_OPAQUE"
> > +		}
> >  	},
> >  };
> >

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list