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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed May 26 18:13:56 CEST 2021


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 ?

> >>>> 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


More information about the libcamera-devel mailing list