[libcamera-devel] [PATCH] android: nautilus: Add camera HAL configuration

Hirokazu Honda hiroh at chromium.org
Wed May 26 18:18:44 CEST 2021


Hi Laurent,

On Thu, May 27, 2021 at 1:14 AM Laurent Pinchart <
laurent.pinchart at ideasonboard.com> wrote:

> Hi Hiro,
>
> On Thu, May 27, 2021 at 12:20:13AM +0900, Hirokazu Honda wrote:
> > On Wed, May 26, 2021 at 11:57 PM Laurent Pinchart wrote:
> > > On Wed, May 26, 2021 at 06:36:34PM +0900, Hirokazu Honda wrote:
> > >> On Wed, May 26, 2021 at 6:21 PM Umang Jain wrote:
> > >>> On 5/26/21 1:35 PM, Jacopo Mondi wrote:
> > >>>> On Wed, May 26, 2021 at 12:45:42PM +0530, Umang Jain wrote:
> > >>>>> nautilus has two internal cameras, one UVC and one for the IPU3.
> > >>>>> However, libcamera assumes all UVC cameras as 'external' hence,
> mark
> > >>>>> the location of UVC camera in HAL configuration as 'external' too.
> > >>>>>
> > >>>>> Note that the presence of UVC camera in camera HAL will complain:
> > >>>>>
> > >>>>>> ERROR HAL camera_device.cpp:701
> '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647':
> > >>>>>    Failed to map mandatory Android format IMPLEMENTATION_DEFINED
> (0x00000022): aborting
> > >>>>>> ERROR HAL camera_hal_manager.cpp:153 Failed to initialize camera:
> > >>>>>    \_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647
> > >>>>>
> > >>>>> This is related to a known issue of UVC cameras on HAL which do not
> > >>>>> provide NV12 by default.
> > >>>> Does it work without configuration file support ?
> > >>>
> > >>> No, it won't, since it's UVC. And cannot work until there's a
> > >>> format-convertor in place that can convert the stream to NV12
> provided
> > >>> by that camera, I suppose.
> > >>
> > >> It is time that we need a JPEG decoder in a post processing pipeline
> like a
> > >> JPEG encoder.
> > >
> > > Or a YUYV to NV12 converter, as the camera can also produce YUYV ?
> >
> > I guess the camera is capable to produce YUYV only for lower resolutions
> > and produce JPEG for higher resolutions?
>
> It's up to the camera, but generally speaking, yes, the highest
> resolutions and frame rates are only available in MJPEG. Wouldn't a
> software decoder likely be too slow in those cases though ?
>
>
Right, on ChromeOS, if an app asks YUV and a camera is capable of producing
MJPEG for the resolution, cros camera services requests HAL MJPEG and
decodes it to YUV by jpeg decoder (with hw acceleration if there is,
without if there isn't).
So we don't need a JPEG decoder for ChromeOS. I don't know if it's nice to
have a jpeg decoder in libcamera for other platforms.
-Hiro

> > >>>> Also, if we don't mention the UVC camera in the config:
> > >>>>>
> > >>>>>> ERROR HALConfig camera_hal_config.cpp:393 Camera
> > >>>>>    '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647' not described in
> the HAL
> > >>>>>    configuration file
> > >>>>>> ERROR HAL camera_device.cpp:701
> '\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647':
> > >>>>>    Failed to map mandatory Android format IMPLEMENTATION_DEFINED
> (0x00000022): aborting
> > >>>>>> ERROR HAL camera_hal_manager.cpp:153 Failed to initialize camera:
> > >>>>>    \_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647
> > >>>>>
> > >>>>> Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> > >>>>> ---
> > >>>>>   src/android/data/nautilus/camera_hal.yaml | 8 ++++++++
> > >>>>>   1 file changed, 8 insertions(+)
> > >>>>>   create mode 100644 src/android/data/nautilus/camera_hal.yaml
> > >>>>>
> > >>>>> diff --git a/src/android/data/nautilus/camera_hal.yaml
> b/src/android/data/nautilus/camera_hal.yaml
> > >>>>> new file mode 100644
> > >>>>> index 00000000..f2d31e1c
> > >>>>> --- /dev/null
> > >>>>> +++ b/src/android/data/nautilus/camera_hal.yaml
> > >>>>> @@ -0,0 +1,8 @@
> > >>>>> +cameras:
> > >>>>> +  "\\_SB_.PCI0.I2C2.CAM0":
> > >>>>> +    location: back
> > >>>>> +    rotation: 0
> > >>>>> +
> > >>>>> +  "\\_SB_.PCI0.XHCI.RHUB.HS09-9:1.0-04f2:b647":
> > >>>>> +    location: external
> > >>>>> +    rotation: 0
>
> --
> Regards,
>
> Laurent Pinchart
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20210527/7fd437af/attachment-0001.htm>


More information about the libcamera-devel mailing list