kbarni / LCCV

LibCamera wrapper library for OpenCV
55 stars 28 forks source link

Compilation breaks on kernel version 5.15.84 #15

Open wikstorm opened 1 year ago

wikstorm commented 1 year ago

After running rpi-update, installing dependencies for LCCV and compiling it fails with this:

In file included from /home/pi/LCCV/include/lccv.hpp:9,
                 from /home/pi/LCCV/src/lccv.cpp:1:
/home/pi/LCCV/include/libcamera_app.hpp: In constructor ‘FrameInfo::FrameInfo(libcamera::ControlList&)’:
/home/pi/LCCV/include/libcamera_app.hpp:194:20: error: invalid type argument of unary ‘*’ (have ‘int’)
  194 |    exposure_time = *exp;
      |                    ^~~~
compilation terminated due to -Wfatal-errors.
make[2]: *** [CMakeFiles/liblccv.dir/build.make:82: CMakeFiles/liblccv.dir/src/lccv.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/liblccv.dir/all] Error 2
make: *** [Makefile:171: all] Error 2

After reading old issues it seemed like this also was an issue back when libcamera had an update, but this was seemingly fixed. It seems odd then, after keeping my system up to date, that this appears again.

Kernel version: 5.15.84-v7l+ GCC version: 10.2.1 CMake version: 3.18.4 libcamera version (from apt show libcamera-dev): 0~git20221130+0684c373-1

Any idea what causes this? Should I reinstall Bullseye?

kbarni commented 1 year ago

libcamera gets updated often, it is still in heavy development. The API is not fixed, so updates can break software that's based upon this library, this already happened at least 2 times during 2022.

I'll look into this error, but I won't have time before mid January...

wikstorm commented 1 year ago

Yes, although it feels like breaks like these should be visible on the libcamera-apps repository. No issue made, no recent update to those lines of code, nothing. I will flash the rpi and start over, see if that makes any difference.

Anguimru commented 1 year ago

I've solved this issue rebuilding libcamera using v0.0.3 git clone https://git.libcamera.org/libcamera/libcamera.git cd libcamera git checkout v0.0.3

JuergenSmo commented 1 year ago

@kbarni : Hello, after a lot of changes I was able to compile it. But now I get a segemtation fault when I call 'getVideoFrame'. Is there a possibility that you take a look on what I have? I can send it to you as, but I do not want to upload anything as it does not work.

kbarni commented 1 year ago

Thanks @JuergenSmo for your work! Yes, you can send it so I look at it. Otherwise create a fork, put your version on that fork, and make a pull request when the fork is working (that's more github way...)

JuergenSmo commented 1 year ago

I created a new fork you can find it at https://github.com/JuergenSmo/LCCV. Many thanks @kbarni !

JuergenSmo commented 1 year ago

I have to correct the call which create the segmentation fault. It is "startVideo()". Before that the output looks good for me:

[0:04:17.412258708] [1373] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70 [0:04:17.769760465] [1500] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media4 and ISP device /dev/media2 Acquired camera /base/soc/i2c0mux/i2c@1/ov5647@36 [0:04:17.770554663] [1373] INFO Camera camera.cpp:1028 configuring streams: (0) 640x480-SGBRG10_CSI2P [0:04:17.771963485] [1500] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 640x480-SGBRG10_1X10 - Selected unicam format: 640x480-pGAA [0:04:17.815794096] [1373] INFO Camera camera.cpp:1028 configuring streams: (0) 1296x972-SGBRG10_CSI2P [0:04:17.816546312] [1500] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1296x972-SGBRG10_1X10 - Selected unicam format: 1296x972-pGAA [0:04:17.820288876] [1373] INFO Camera camera.cpp:1028 configuring streams: (0) 1920x1080-SGBRG10_CSI2P [0:04:17.820872668] [1500] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1920x1080-SGBRG10_1X10 - Selected unicam format: 1920x1080-pGAA [0:04:17.823266816] [1373] INFO Camera camera.cpp:1028 configuring streams: (0) 2592x1944-SGBRG10_CSI2P [0:04:17.824067088] [1500] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 2592x1944-SGBRG10_1X10 - Selected unicam format: 2592x1944-pGAA Configuring viewfinder... Viewfinder size chosen is 1296x972 Mode selection: SGBRG10_CSI2P 640x480 - Score: 5296 SGBRG10_CSI2P 1296x972 - Score: 3000 SGBRG10_CSI2P 1920x1080 - Score: 3349.67 SGBRG10_CSI2P 2592x1944 - Score: 22299.9 Stream configuration adjusted [0:04:17.827569543] [1373] INFO Camera camera.cpp:1028 configuring streams: (0) 1296x972-YUV420 (1) 1296x972-SGRBG10_CSI2P [0:04:17.828126483] [1500] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1296x972-SGRBG10_1X10 - Selected unicam format: 1296x972-pgAA Camera streams configured Available controls: AeEnable : [false..true] ExposureTime : [92..760636] ScalerCrop : [(0, 0)/128x128..(0, 0)/2592x1944] AnalogueGain : [1.000000..63.937500] AeMeteringMode : [0..3] ColourGains : [0.000000..32.000000] ExposureValue : [-8.000000..8.000000] Sharpness : [0.000000..16.000000] Contrast : [0.000000..32.000000] NoiseReductionMode : [0..4] FrameDurationLimits : [23123..760729] Brightness : [-1.000000..1.000000] AwbMode : [0..7] AwbEnable : [false..true] ColourCorrectionMatrix : [-16.000000..16.000000] AeExposureMode : [0..3] Saturation : [0.000000..32.000000] AeConstraintMode : [0..3] Buffers allocated and mapped Viewfinder setup complete Requests created Camera started! [1] + Done