[libcamera-devel] [PATCH v5 0/9] Introduce camera properties
Kieran Bingham
kieran.bingham at ideasonboard.com
Thu Feb 6 16:57:25 CET 2020
Hi Jacopo,
On 06/02/2020 01:25, Jacopo Mondi wrote:
> Hello,
> this series contains the first 9 patches sent as part of the
> "Properties and compound controls" series.
> I'm mixing up a bit version numbers, I know..
>
> All patches here are tagged, but I have not merged them yet for the following
> reasons:
>
> 1) what to do with [1/9] ?
> I'm a bit in two minds here, as I see two possible things to happen
> 1) we merge the series knowing we'll have to change the header with the
> version that will hit mainline. This should be safe as long as the
> only drivers using this definitions are our downstream devices for
> testing. Although having code in master that we don't want to be used
> even if for a short time makes me feel uncomfortable
I would be happy to merge this patch to master for the following:
- You have already posted the corresponding change upstream.
- If anything changes in the meanwhile, you'll know first and fast.
- libcamera is not yet 'stable' so if we have to revert or change this
this further it's not that big a deal?
- IIUC - Running this on a kernel which does not have those features
should not 'explode' but the feature just won't work.
> 2) we keep the series warm until we don't get kernel support and some users
> in mainline. We would delay this features too long imho.
- Keeping code out of tree is really painful.
So I would vote for adding the patch to get this series merged.
I would however probably put a comment above the addition saying that
this has been added before it hits mainline linux.
And that comment would simply be automatically removed when we update to
a set of headers that has an upstream implementation.
Anyway, that's just my 5 cents.
--
Kieran
> Unless you have other ideas, 1 seems to be unavoidable in order to merge
> properties support and start building the definitions of others on top.
>
> 2) I have updated the "Rotation" definition with Laurent's suggestions. It
> is now reviewed.
>
> 3) I have changed the way enum values are defined in yaml.
>
> We previously had:
>
> enum:
> - entry:
> value: x
> description: ".."
>
> Which is parsed as
>
> {
> "entry": ,
> "value" : x,
> "description": "...",
> }
>
> This required to extract the "entry" value by accessing the first of the
> dictionaries keys. This triggered an error I started noticing when building
> for CrOS, but could have happened earlier, as dictionaries keys are not
> sorted.
>
> What we actually want is instead
>
> {
> "entry": {
> "value" : x,
> "description": "...",
> }
> }
>
> Which is represented in yaml as:
>
> enum:
> - entry:
> value: x
> description: ".."
>
> Which is probably also more semantically correct.
>
> Anyway, I have not dropped your tags, but I didn't feel like merging without
> pointing out the above.
>
> Thanks
> j
>
> Jacopo Mondi (9):
> [TEMP] include: linux: Update v4l2-controls.h
> libcamera: controls: Parse 'enum' in gen-controls.py
> libcamera: properties: Add location property
> libcamera: properties: Add rotation property
> libcamera: controls: Add default to ControlRange
> libcamera: camera_sensor: Parse camera properties
> libcamera: pipeline_handler: Add Camera properties
> libcamera: camera: Add Camera properties
> android: camera_device: Use Camera properties for static Metadata
>
> include/libcamera/camera.h | 1 +
> include/libcamera/controls.h | 5 +-
> include/libcamera/meson.build | 26 +-
> include/libcamera/property_ids.h.in | 33 +++
> include/linux/v4l2-controls.h | 7 +
> src/android/camera_device.cpp | 29 +-
> src/libcamera/camera.cpp | 16 +-
> src/libcamera/camera_sensor.cpp | 49 +++-
> src/libcamera/controls.cpp | 12 +-
> src/libcamera/gen-controls.py | 50 +++-
> src/libcamera/include/camera_sensor.h | 7 +-
> src/libcamera/include/pipeline_handler.h | 2 +
> src/libcamera/meson.build | 21 +-
> src/libcamera/pipeline/ipu3/ipu3.cpp | 3 +
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 3 +
> src/libcamera/pipeline/vimc.cpp | 4 +
> src/libcamera/pipeline_handler.cpp | 19 ++
> src/libcamera/property_ids.cpp.in | 43 +++
> src/libcamera/property_ids.yaml | 357 +++++++++++++++++++++++
> src/libcamera/v4l2_controls.cpp | 9 +-
> 20 files changed, 662 insertions(+), 34 deletions(-)
> create mode 100644 include/libcamera/property_ids.h.in
> create mode 100644 src/libcamera/property_ids.cpp.in
> create mode 100644 src/libcamera/property_ids.yaml
>
> --
> 2.24.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list