[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