[libcamera-devel] [PATCH 7/7] android: soraka: Add camera HAL configuration
Hirokazu Honda
hiroh at chromium.org
Fri Mar 26 09:27:34 CET 2021
Hi Jacopo, thanks for this work,
Can you add a document for the yaml configuration?
Does this direction cause us to need preparing those files for all
supported devices?
I am a bit concerned about SKU differences.
Do we have an issue tracker for this?
+Tomasz Figa
Best Regards,
-Hiro
On Fri, Mar 26, 2021 at 12:32 PM Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> Hi Jacopo,
>
> Thank you for the patch.
>
> On Wed, Mar 24, 2021 at 12:25:27PM +0100, Jacopo Mondi wrote:
> > Add camera HAL configuration file for IPU3 Soraka.
> >
> > Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> > ---
> > src/android/data/soraka/camera_hal.yaml | 14 ++++++++++++++
> > 1 file changed, 14 insertions(+)
> > create mode 100644 src/android/data/soraka/camera_hal.yaml
> >
> > diff --git a/src/android/data/soraka/camera_hal.yaml b/src/android/data/soraka/camera_hal.yaml
> > new file mode 100644
> > index 000000000000..489e601ac5d0
> > --- /dev/null
> > +++ b/src/android/data/soraka/camera_hal.yaml
> > @@ -0,0 +1,14 @@
> > +- manufacturer: Google
> > +- model: Soraka
> > +
> > +- camera:
> > + - name: "\\_SB_.PCI0.I2C4.CAM1"
> > + - model: "ov5670"
> > + - location: "front"
> > + - rotation: 0
> > +
> > +- camera:
> > + - name: "\\_SB_.PCI0.I2C2.CAM0"
> > + - model: "ov13858"
> > + - location: "back"
> > + - rotation: 0
>
> I'm sure we can spend an endless amount of time bikeshedding on the YAML
> schema, so I'll only make one comment :-)
>
> At the top level, you have a list, with each list entry being a
> dictionary with a single key:value pair. There's no guarantee on unicity
> of properties with this type of schema, you could for instance have
> multiple "manufacturer" list entries. Same for the properties within
> each camera.
>
> This would I believe be a more natural usage of YAML (to the extent that
> YAML has anything natural about it):
>
> manufacturer: Google
> model: Soraka
>
> cameras:
> - name: "\\_SB_.PCI0.I2C4.CAM1"
> model: "ov5670"
> location: "front"
> rotation: 0
>
> - name: "\\_SB_.PCI0.I2C2.CAM0"
> model: "ov13858"
> location: "back"
> rotation: 0
>
> Or, possibly even better, to guarantee unicity of camera entries,
>
> manufacturer: Google
> model: Soraka
>
> cameras:
> "\\_SB_.PCI0.I2C4.CAM1":
> model: "ov5670"
> location: "front"
> rotation: 0
>
> "\\_SB_.PCI0.I2C2.CAM0":
> model: "ov13858"
> location: "back"
> rotation: 0
>
> The three options produce the following objects in Python:
>
> >>> pprint.pprint(yaml.safe_load(open('yaml1.yaml', 'rb').read()))
> [{'manufacturer': 'Google'},
> {'model': 'Soraka'},
> {'camera': [{'name': '\\_SB_.PCI0.I2C4.CAM1'},
> {'model': 'ov5670'},
> {'location': 'front'},
> {'rotation': 0}]},
> {'camera': [{'name': '\\_SB_.PCI0.I2C2.CAM0'},
> {'model': 'ov13858'},
> {'location': 'back'},
> {'rotation': 0}]}]
> >>> pprint.pprint(yaml.safe_load(open('yaml2.yaml', 'rb').read()))
> {'cameras': [{'location': 'front',
> 'model': 'ov5670',
> 'name': '\\_SB_.PCI0.I2C4.CAM1',
> 'rotation': 0},
> {'location': 'back',
> 'model': 'ov13858',
> 'name': '\\_SB_.PCI0.I2C2.CAM0',
> 'rotation': 0}],
> 'manufacturer': 'Google',
> 'model': 'Soraka'}
> >>> pprint.pprint(yaml.safe_load(open('yaml3.yaml', 'rb').read()))
> {'cameras': {'\\_SB_.PCI0.I2C2.CAM0': {'location': 'back',
> 'model': 'ov13858',
> 'rotation': 0},
> '\\_SB_.PCI0.I2C4.CAM1': {'location': 'front',
> 'model': 'ov5670',
> 'rotation': 0}},
> 'manufacturer': 'Google',
> 'model': 'Soraka'}
>
> --
> Regards,
>
> Laurent Pinchart
> _______________________________________________
> 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