[libcamera-devel] [PATCH v4 0/5] Raspberry Pi: Generalise statistics

Naushir Patuck naush at raspberrypi.com
Thu Feb 9 12:47:23 CET 2023


Hi Kieran,

On Thu, 9 Feb 2023 at 11:38, Kieran Bingham via libcamera-devel
<libcamera-devel at lists.libcamera.org> wrote:
>
> Quoting Kieran Bingham (2023-02-09 10:37:22)
> > Hi Naush,
> >
> > On 09/02/2023 08:31, Naushir Patuck via libcamera-devel wrote:
> > > Hi all,
> > >
> > > If there are no other review comments or feedback, I think this is
> > > ready to be merged.
> >
> > I'll apply this now.
> >
> > I wonder if it's worth using/trying pull requests when you have code
> > that is explicitly ready for merge from Raspberry Pi.
> >
> >   - https://git-scm.com/docs/git-request-pull

Interesting, I've never tried this before.  Will investigate exactly
what it does.

>
> It failed compilation matrix I'm afraid:


Argh. My clang-9 did not seem to complan.
Looks to be a trivial fix (remove std::move).  I'll make the change
and re-submit.

Regards,
Naush

>
> Configuration: clang-11:clang++-11 (/home/kbingham/iob/libcamera/ci/integrator/logs/build-matrix-clang-11.log)
>
> ...
> [51/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o
> FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o
> clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/raspberrypi.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp
> ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
>         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));
>                             ^
> ../../../src/libcamera/src/ipa/raspberrypi/raspberrypi.cpp:1378:22: note: remove std::move call here
>         statistics->yHist = std::move(RPiController::Histogram(stats->hist[0].g_hist, NUM_HISTOGRAM_BINS));
>                             ^~~~~~~~~~                                                                   ~
> 1 error generated.
> [52/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_dpc.cpp.o
> [53/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx477.cpp.o
> [54/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_noise.cpp.o
> [55/120] Compiling C++ object src/android/libcamera-hal.so.p/camera_capabilities.cpp.o
> [56/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_pwl.cpp.o
> [57/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx519.cpp.o
> [58/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/controller_rpi_sdn.cpp.o
> [59/120] Compiling C++ object src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o
> FAILED: src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o
> clang++-11 -Isrc/ipa/raspberrypi/ipa_rpi.so.p -Isrc/ipa/raspberrypi -I../../../src/libcamera/src/ipa/raspberrypi -Iinclude -I../../../src/libcamera/include -Isrc/ipa -I../../../src/libcamera/src/ipa -I../../../src/libcamera/src/ipa/raspberrypi/controller -Iinclude/libcamera/ipa -Iinclude/libcamera -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -std=c++17 -O0 -g -Wextra-semi -Wthread-safety -Wshadow -include /home/kbingham/iob/libcamera/ci/integrator/builds/build-matrix/clang-11/config.h -Wno-c99-designator -fPIC -DLIBCAMERA_BASE_PRIVATE -MD -MQ src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -MF src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o.d -o src/ipa/raspberrypi/ipa_rpi.so.p/cam_helper_imx708.cpp.o -c ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp
> ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
>         aeHistLinear_ = std::move(Histogram(hist, 128));
>                         ^
> ../../../src/libcamera/src/ipa/raspberrypi/cam_helper_imx708.cpp:315:18: note: remove std::move call here
>         aeHistLinear_ = std::move(Histogram(hist, 128));
>                         ^~~~~~~~~~                    ~
> 1 error generated.
> ...
>
>
> --
> Kieran
>
>
> > --
> > Regards
> >
> > Kieran
> >
> >
> > > Regards,
> > > Naush
> > >
> > > On Fri, 3 Feb 2023 at 09:17, Naushir Patuck <naush at raspberrypi.com> wrote:
> > >>
> > >> Hi,
> > >>
> > >> Version 5 rebases the changes on-top of master - particularly updating the
> > >> breakages in cam_helper_imx708.cpp in patch 4/5.
> > >>
> > >> Regards,
> > >> Naush
> > >>
> > >> Naushir Patuck (5):
> > >>    ipa: raspberrypi: Generalise statistics
> > >>    ipa: raspberrypi: histogram: Add a constructor for an empty histogram
> > >>    ipa: raspberrypi: awb: Delay release of the statistics buffer
> > >>    ipa: raspberrypi: Use the generic statistics structure in the
> > >>      algorithms
> > >>    ipa: raspberrypi: Normalise region sums to 16-bits
> > >>
> > >>   src/ipa/raspberrypi/cam_helper_imx708.cpp     |  26 ++--
> > >>   src/ipa/raspberrypi/controller/controller.h   |   4 +-
> > >>   src/ipa/raspberrypi/controller/histogram.h    |   5 +
> > >>   src/ipa/raspberrypi/controller/region_stats.h | 123 ++++++++++++++++++
> > >>   src/ipa/raspberrypi/controller/rpi/af.cpp     |  10 +-
> > >>   src/ipa/raspberrypi/controller/rpi/af.h       |   8 +-
> > >>   src/ipa/raspberrypi/controller/rpi/agc.cpp    |  32 ++---
> > >>   src/ipa/raspberrypi/controller/rpi/agc.h      |   2 +-
> > >>   src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  32 ++---
> > >>   src/ipa/raspberrypi/controller/rpi/alsc.h     |   3 +-
> > >>   src/ipa/raspberrypi/controller/rpi/awb.cpp    |  30 ++---
> > >>   src/ipa/raspberrypi/controller/rpi/awb.h      |   1 +
> > >>   .../raspberrypi/controller/rpi/contrast.cpp   |   8 +-
> > >>   src/ipa/raspberrypi/controller/rpi/focus.cpp  |   7 +-
> > >>   src/ipa/raspberrypi/controller/rpi/lux.cpp    |  14 +-
> > >>   src/ipa/raspberrypi/raspberrypi.cpp           |  50 ++++++-
> > >>   src/ipa/raspberrypi/statistics.h              |  78 +++++++++++
> > >>   17 files changed, 338 insertions(+), 95 deletions(-)
> > >>   create mode 100644 src/ipa/raspberrypi/controller/region_stats.h
> > >>   create mode 100644 src/ipa/raspberrypi/statistics.h
> > >>
> > >> --
> > >> 2.25.1
> > >>


More information about the libcamera-devel mailing list