[libcamera-devel] [PATCH v4 0/4] generate and use fixed-sized Span Control types
Christian Rauch
Rauch.Christian at gmx.de
Sat May 21 18:30:24 CEST 2022
Hi Kieran,
Looking at this again ... libcamera already uses "std::optional" in the
public API and requires C++17. Using "std::optional" additionally for
the control values does not increase the requirements.
Best,
Christian
Am 18.05.22 um 00:56 schrieb Kieran Bingham:
> Quoting Christian Rauch via libcamera-devel (2022-05-17 23:44:31)
>> Hi all,
>>
>> Can you let me know what is missing to go forward with this? I think I
>> resolved all comments.
>>
>
> The outstanding investigation was not knowing if opencv could support
> features from C++17.
>
> It looks like they use C++11, and we're already using C++14 - so this
> may mean that it is already not possible for open-cv to implement a
> libcamera plugin directly until they update their C++ standard.
>
> The difficulty is, as a library that could be widely used - to support
> more projects would require conservative updating of the C++ standard.
> So somehow we have to decide when we can use C++ 17 features on our
> public API.
>
> We could also simply choose to do so - and therefore enforce any
> projects that want to use libcamera to update... For applciations that's
> probably trivial - but for other libraries, like opencv, well then they
> face the same issue - that they might not be able to update easily.
>
> --
> Kieran
>
>> Best,
>> Christian
>>
>>
>> Am 27.04.22 um 23:30 schrieb Christian Rauch:
>>> Hello,
>>>
>>> In version 4 of this patch set I applied minor modification from feedback that I received so far. I reorderd the commits such that the "std::optional" commit appears first and can be used without the changes related to fixed-sized Spans.
>>>
>>> Best,
>>>
>>> Christian Rauch (4):
>>> use std::optional to handle invalid control values
>>> libcamera: controls: Define size of array controls as a shape vector
>>> generate fixed- and variable-sized Span Controls
>>> apply explicit fixed-sized Span type casts
>>>
>>> include/libcamera/controls.h | 7 ++--
>>> src/cam/main.cpp | 4 +--
>>> src/ipa/raspberrypi/raspberrypi.cpp | 21 ++++++------
>>> src/libcamera/control_ids.yaml | 2 +-
>>> src/libcamera/pipeline/ipu3/ipu3.cpp | 9 +++---
>>> .../pipeline/raspberrypi/raspberrypi.cpp | 10 +++---
>>> src/libcamera/property_ids.yaml | 4 +--
>>> src/qcam/dng_writer.cpp | 15 +++++----
>>> utils/gen-controls.py | 32 +++++++++++++------
>>> 9 files changed, 61 insertions(+), 43 deletions(-)
>>>
>>> --
>>> 2.34.1
More information about the libcamera-devel
mailing list