openpnp / openpnp-capture

A cross platform video capture library with a focus on machine vision.
MIT License
129 stars 56 forks source link

OpenPnP on Raspberry Pi 4 #60

Open darkomenz opened 2 years ago

darkomenz commented 2 years ago

Any update on the 64bit arm camera pipeline. Its broken on https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

darkomenz commented 2 years ago

Seems like someone should write a integration for https://libcamera.org/

darkomenz commented 2 years ago

Initially this started out with a java.lang.UnsatisfiedLinkError error failing to load libopenpnp-capture.so.

I was able to resolve this issue by downloading the current release and copying the library to the proper location (cp /home/pi/Downloads/libopenpnp-capture-ubuntu-latest-aarch64.so /usr/lib/libopenpnp-capture.so).

I am now able to instantiate a OpenPnpCaptureCamera instance however the Device Settings tab all available devices either don't list a format (unicam) or list a format as: 0 x 0, 0 FPS (bcm3835-isp). No combination will show the camera output.

Using libcamera-hello to list the available cameras reports the following:

pi@raspberrypi:~/Downloads $ libcamera-hello --list-cameras

Available cameras

0 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@0/imx219@10) Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 'SRGGB8' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 1 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@1/imx219@10) Modes: 'SRGGB10_CSI2P' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 'SRGGB8' : 640x480 [206.65 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

I can see the cameras output if I try:

libcamera-hello --camera 0 --timeout 60000 libcamera-hello --camera 1 --timeout 60000

vonnieda commented 1 year ago

Please try on v0.0.25 and reopen if you are still seeing this.

darkomenz commented 1 year ago

@vonnieda

Please re-open this ticket.

Downloaded v0.0.25 from https://github.com/openpnp/openpnp-capture/releases/download/v0.0.25/libopenpnp-capture-ubuntu-latest-arm64.so and moved to /usr/lib as requested.

pi@raspberrypi:/usr/lib $ md5sum libopenpnp-capture.so eaf99a140bb9de9b42c8687be9bb77ed libopenpnp-capture.so

Downloaded latest OpenPNP build. Issue remains as described.

darkomenz commented 1 year ago

@vonnieda

https://www.raspberrypi.com/documentation/computers/camera_software.html#v4l2

pi@raspberrypi:/usr/lib $ lsmod | grep bcm2835 bcm2835_unicam 53248 0 v4l2_dv_timings 40960 1 bcm2835_unicam bcm2835_codec 49152 0 bcm2835_isp 28672 0 bcm2835_v4l2 45056 0 v4l2_fwnode 24576 2 imx219,bcm2835_unicam v4l2_async 24576 3 v4l2_fwnode,imx219,bcm2835_unicam v4l2_mem2mem 45056 2 bcm2835_codec,rpivid_hevc bcm2835_mmal_vchiq 36864 3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp videobuf2_vmalloc 16384 1 bcm2835_v4l2 videobuf2_dma_contig 20480 4 bcm2835_codec,bcm2835_unicam,rpivid_hevc,bcm2835_isp videobuf2_v4l2 32768 6 bcm2835_codec,bcm2835_unicam,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,bcm2835_isp snd_bcm2835 28672 0 videobuf2_common 69632 10 bcm2835_codec,videobuf2_vmalloc,videobuf2_dma_contig,videobuf2_v4l2,bcm2835_unicam,bcm2835_v4l2,rpivid_hevc,v4l2_mem2mem,videobuf2_memops,bcm2835_isp videodev 274432 10 v4l2_async,bcm2835_codec,imx219,videobuf2_v4l2,bcm2835_unicam,bcm2835_v4l2,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp i2c_bcm2835 16384 0 snd_pcm 139264 5 snd_bcm2835,snd_soc_hdmi_codec,snd_compress,snd_soc_core,snd_pcm_dmaengine snd 106496 10 snd_bcm2835,snd_soc_hdmi_codec,snd_timer,snd_compress,snd_soc_core,snd_pcm vc_sm_cma 36864 2 bcm2835_mmal_vchiq,bcm2835_isp mc 61440 10 v4l2_async,videodev,bcm2835_codec,imx219,videobuf2_v4l2,bcm2835_unicam,videobuf2_common,rpivid_hevc,v4l2_mem2mem,bcm2835_isp

ian-arkver commented 1 year ago

The reported camera modes from libcamera are all raw Bayer. You'll need to find an interface that gives YUV or MJPEG I believe.

darkomenz commented 1 year ago

image image

darkomenz commented 1 year ago

@brainstorm

Can you provide any assistance here as it seems like you wrote the arm camera stack (https://github.com/openpnp/openpnp-capture/pull/47).

vonnieda commented 1 year ago

@darkomenz Can you please download the openpnp-capture test app and see what it reports?

https://github.com/openpnp/openpnp-capture/releases/download/v0.0.25/openpnp-capture-test-ubuntu-latest-arm64

You'll need to have the v0.0.25 libopenpnp-capture.so in your path or in the same directory as this binary.

Here's the output from my machine, for reference:

==============================
 OpenPNP Capture Test Program
 OSX 64 bit debug v0.0.25 Mar 27 2023
==============================
Usage: openpnp-capture-test <camera ID> <frame format ID>

..continuing with default camera parameters.

[INFO] Platform context created
2023-03-28 11:59:08.910 openpnp-capture-test-macos-latest-arm64[88734:1373097] Already have camera permission
[DBG ] enumerateDevices called
[DBG ] Name : FaceTime HD Camera (Apple Inc.)
[DBG ] Model: FaceTime HD Camera
[DBG ] U ID : FaceTime HD Camera (Apple Inc.) EAB7A68F-EC2B-4487-AADF-D8A91C1CB782
OSX Unable to extract vendor ID
OSX Unable to extract product ID
[DBG ] USB      : vid=0000  pid=0000
OSX Unique ID is not exactly 18 characters - wrong format to extract location.
We might have trouble identifying the UVC control interface.
[DBG ] Name : The Guide Camera ()
[DBG ] Model: iPhone14,2
[DBG ] U ID : The Guide Camera () 31324446-0000-0000-0000-000000000001
OSX Unable to extract vendor ID
OSX Unable to extract product ID
[DBG ] USB      : vid=0000  pid=0000
OSX Unique ID is not exactly 18 characters - wrong format to extract location.
We might have trouble identifying the UVC control interface.
Number of devices: 2
ID 0 -> FaceTime HD Camera (Apple Inc.)
Unique:  FaceTime HD Camera (Apple Inc.) EAB7A68F-EC2B-4487-AADF-D8A91C1CB782
  Number of formats: 2
  Format ID 0: 1280 x 720 pixels  30 FPS(max)  FOURCC=420v
  Format ID 1: 640 x 480 pixels  30 FPS(max)  FOURCC=420v
ID 1 -> The Guide Camera ()
Unique:  The Guide Camera () 31324446-0000-0000-0000-000000000001
  Number of formats: 8
  Format ID 0: 640 x 480 pixels  30 FPS(max)  FOURCC=420v
  Format ID 1: 640 x 480 pixels  60 FPS(max)  FOURCC=420v
  Format ID 2: 1280 x 720 pixels  30 FPS(max)  FOURCC=420v
  Format ID 3: 1280 x 720 pixels  60 FPS(max)  FOURCC=420v
  Format ID 4: 1920 x 1080 pixels  30 FPS(max)  FOURCC=420v
  Format ID 5: 1920 x 1080 pixels  60 FPS(max)  FOURCC=420v
  Format ID 6: 1920 x 1440 pixels  30 FPS(max)  FOURCC=420v
  Format ID 7: 1920 x 1440 pixels  60 FPS(max)  FOURCC=420v
[DBG ] Setup for capture format (1280 x 720)...
[DBG ] UVCCtrl::findDevice() called
[DBG ] Could not create a UVC control object! -- settings will not be available!
[DBG ] FOURCC = 420v
Stream ID = 0
Stream is open
Failed to get exposure limits!
Failed to get exposure!
Failed to get auto exposure!
Captured frames: 30

[INFO] closing stream
[DBG ] Stream::~Stream reports 31 frames captured.
[DBG ] Platform context destroyed
[DBG ] m_captureDevice released
[DBG ] m_captureDevice released
[DBG ] Context destroyed
darkomenz commented 1 year ago

I tried your suggestion but your test application seems to be linked against a older version of :

pi@raspberrypi:~/Downloads $ wget https://github.com/openpnp/openpnp-capture/releases/download/v0.0.25/openpnp-capture-test-ubuntu-latest-arm64 --2023-03-28 13:31:47-- https://github.com/openpnp/openpnp-capture/releases/download/v0.0.25/openpnp-capture-test-ubuntu-latest-arm64 Resolving github.com (github.com)... 140.82.112.3 Connecting to github.com (github.com)|140.82.112.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/095818b2-2a73-4533-8c6e-cb4077dc7710?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230328%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230328T193148Z&X-Amz-Expires=300&X-Amz-Signature=59fa2417baf6e39d84bdd867026317acf73c88bdd26001cd4cf8495ddb2121d9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dopenpnp-capture-test-ubuntu-latest-arm64&response-content-type=application%2Foctet-stream [following] --2023-03-28 13:31:48-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/095818b2-2a73-4533-8c6e-cb4077dc7710?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230328%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230328T193148Z&X-Amz-Expires=300&X-Amz-Signature=59fa2417baf6e39d84bdd867026317acf73c88bdd26001cd4cf8495ddb2121d9&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dopenpnp-capture-test-ubuntu-latest-arm64&response-content-type=application%2Foctet-stream Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.109.133, 185.199.110.133, 185.199.111.133, ... Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.109.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 23648 (23K) [application/octet-stream] Saving to: 'openpnp-capture-test-ubuntu-latest-arm64'

openpnp-capture-test-ubuntu-latest-arm6 100%[=============================================================================>] 23.09K --.-KB/s in 0.003s

2023-03-28 13:31:48 (7.89 MB/s) - 'openpnp-capture-test-ubuntu-latest-arm64' saved [23648/23648]

pi@raspberrypi:~/Downloads $ chmod +x openpnp-capture-test-ubuntu-latest-arm64 pi@raspberrypi:~/Downloads $ ./openpnp-capture-test-ubuntu-latest-arm64 ./openpnp-capture-test-ubuntu-latest-arm64: error while loading shared libraries: libopenpnp-capture.so.0.0.24: cannot open shared object file: No such file or directory pi@raspberrypi:~/Downloads $

It should be looking for capture.so.0.0.25 correct?

darkomenz commented 1 year ago

For testing I was able to also try this:

pi@raspberrypi:~/Downloads $ cp libopenpnp-capture-ubuntu-latest-arm64.so libopenpnp-capture.so.0.0.24 pi@raspberrypi:~/Downloads $ sudo cp libopenpnp-capture.so.0.0.24 /usr/lib pi@raspberrypi:~/Downloads $ ./openpnp-capture-test-ubuntu-latest-arm64

./openpnp-capture-test-ubuntu-latest-arm64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./openpnp-capture-test-ubuntu-latest-arm64)

darkomenz commented 1 year ago

pi@raspberrypi:~/Downloads $ strings /usr/lib/aarch64-linux-gnu/libc.so.6 | grep GLIBC GLIBC_2.17 GLIBC_2.18 GLIBC_2.22 GLIBC_2.23 GLIBC_2.24 GLIBC_2.25 GLIBC_2.26 GLIBC_2.27 GLIBC_2.28 GLIBC_2.29 GLIBC_2.30 GLIBC_PRIVATE GNU C Library (Debian GLIBC 2.31-13+rpt2+rpi1+deb11u5) stable release version 2.31.

vonnieda commented 1 year ago

Please remove all the existing copies of libopenpnp-capture.so, including versioned ones. At that point, running the test app should fail to find libopenpnp-capture.so. It should not be looking for a specific version.

Then grab the 0.0.25 so file, rename it to libopenpnp-capture.so (no version) and try the test app. There should be no versioned filed, and the test app should not be looking for a specific version.

Thanks, Jason

ian-arkver commented 1 year ago

Test app does seem to have a NEEDED entry for the versioned .so:

/opt/nvidia/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-objdump -x ~/Downloads/openpnp-capture-test-ubuntu-latest-arm64 | grep NEEDED NEEDED libopenpnp-capture.so.0.0.24

GLIBC 31 implies @darkomenz is on Focal but the test app seems to have been compiled on Jammy. This is one of the reasons I really dislike Ubuntu.

vonnieda commented 1 year ago

Thanks @ian-arkver, so are there two issues?

  1. The v0.0.25 test program is targeting the v0.0.24 lib.
  2. The v0.0.24 lib is targeting too new of a GLIBC.

Is that correct?

I am wide open to ideas about improving the Linux builds. Here is how it is done currently: https://github.com/openpnp/openpnp-capture/blob/master/.github/workflows/build.yml#L119

Could be this is a simple issue of just building with a different version of Ubuntu?

Here are our options:

Screenshot 2023-03-28 at 2 54 15 PM

From https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources

And of course we could always Dockerize it to use any version we want.

So, if anyone who knows this stuff can suggest improvements, please do!

ian-arkver commented 1 year ago

In the past when shipping binaries to down-rev Ubuntu folks the easiest way was to compile on an older Ubuntu VM, yeah.

I'd probably go with 18.04 until GH cans it, then move to the oldest available. There may well be Better Ways (tm).

I grabbed the x86 versions of the lib & test app and ran it on my PC with my old webcam. Worked fine once I'd symlinked the .so as the versioned one it was looking for. But I'm on Manjaro with GLIBC version 2.37.

ian-arkver commented 1 year ago

This is probably a Better Way, but looks non-trivial. I've not tried it.

https://github.com/wheybags/glibc_version_header

ian-arkver commented 1 year ago

fyi, master CMakeLists has this:

set(OPENPNP_CAPTURE_LIB_VERSION "0.0.24" CACHE STRING "openpnp-capture library version") set(OPENPNP_CAPTURE_LIB_SOVERSION "0.0.24" CACHE STRING "openpnp-capture library soversion")

I'd guess it's something in the CMake stuff rather than the CI yaml that's causing this to be baked in.

ian-arkver commented 1 year ago

https://discourse.cmake.org/t/linking-against-non-versioned-or-major-library/3931/2

SONAME is set from the SOVERSION above and I guess that's what's linked against in the test app's target_link_libraries.

vonnieda commented 1 year ago

Okay, that looks like the culprit - thank you!

So I'll downgrade the runner, fix that version, and push a new release. Hopefully that will resolve it.

ian-arkver commented 1 year ago

Yeah, it'll still be looking for *.so.0.0.25 though. (or .26 or whatever it's set to)

ian-arkver commented 1 year ago

I think the thing here is the difference between VERSION and SOVERSION, which you've set the same.

https://cmake.org/cmake/help/latest/prop_tgt/VERSION.html#prop_tgt:VERSION

VERSION should be the fully dotted release version, but SOVERSION should be the "ABI Compatibility version".

I tried setting it like this...

-set(OPENPNP_CAPTURE_LIB_SOVERSION "0.0.24" CACHE STRING "openpnp-capture library soversion")
+set(OPENPNP_CAPTURE_LIB_SOVERSION "0" CACHE STRING "openpnp-capture library soversion")

now cmake builds these...

lrwxrwxrwx 1 ian ian     23 Mar 28 21:46 libopenpnp-capture.so -> libopenpnp-capture.so.0*
lrwxrwxrwx 1 ian ian     28 Mar 28 21:46 libopenpnp-capture.so.0 -> libopenpnp-capture.so.0.0.24*
-rwxr-xr-x 1 ian ian 253528 Mar 28 21:46 libopenpnp-capture.so.0.0.24*

and the test executable has this...

ldd linux/tests/openpnp-capture-test 
    libopenpnp-capture.so.0 => /home/ian/src/openpnp-capture/build/libopenpnp-capture.so.0 (0x00007eff1e756000)
darkomenz commented 1 year ago

Ok so I have decided to try to build from source and run the unit test just to see what happens. Please see the console log below.

pi@raspberrypi:~/Downloads $ git clone https://github.com/openpnp/openpnp-capture.git Cloning into 'openpnp-capture'... remote: Enumerating objects: 2518, done. remote: Counting objects: 100% (458/458), done. remote: Compressing objects: 100% (98/98), done. remote: Total 2518 (delta 333), reused 397 (delta 302), pack-reused 2060 Receiving objects: 100% (2518/2518), 2.54 MiB | 1.04 MiB/s, done. Resolving deltas: 100% (1377/1377), done. pi@raspberrypi:~/Downloads $ cd openpnp-capture/ pi@raspberrypi:~/Downloads/openpnp-capture $ ./bootstrap_linux.sh -- The C compiler identification is GNU 10.2.1 -- The CXX compiler identification is GNU 10.2.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Using GIT tag: v0.0.25 -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") -- Checking for one of the modules 'libturbojpeg' -- CMAKE_BUILD_TYPE = Release -- VERSION = 1.5.80, BUILD = 20230330 -- 64-bit build (arm64) -- CMAKE_INSTALL_PREFIX = /opt/openpnp-capture CMake Warning (dev) at linux/contrib/libjpeg-turbo-dev/cmakescripts/GNUInstallDirs.cmake:174 (elseif): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Quoted variables like "var" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): linux/contrib/libjpeg-turbo-dev/cmakescripts/GNUInstallDirs.cmake:232 (GNUInstallDirs_set_install_dir) linux/contrib/libjpeg-turbo-dev/CMakeLists.txt:106 (include) This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at linux/contrib/libjpeg-turbo-dev/cmakescripts/GNUInstallDirs.cmake:187 (if): Policy CMP0054 is not set: Only interpret if() arguments as variables or keywords when unquoted. Run "cmake --help-policy CMP0054" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Quoted variables like "var" will no longer be dereferenced when the policy is set to NEW. Since the policy is not set the OLD behavior will be used. Call Stack (most recent call first): linux/contrib/libjpeg-turbo-dev/cmakescripts/GNUInstallDirs.cmake:232 (GNUInstallDirs_set_install_dir) linux/contrib/libjpeg-turbo-dev/CMakeLists.txt:106 (include) This warning is for project developers. Use -Wno-dev to suppress it.

-- CMAKE_INSTALL_BINDIR = bin (/opt/openpnp-capture/bin) -- CMAKE_INSTALL_DATAROOTDIR = share (/opt/openpnp-capture/share) -- CMAKE_INSTALL_DOCDIR = share/doc/openpnp-capture (/opt/openpnp-capture/share/doc/openpnp-capture) -- CMAKE_INSTALL_INCLUDEDIR = include (/opt/openpnp-capture/include) -- CMAKE_INSTALL_LIBDIR = lib/aarch64-linux-gnu (/opt/openpnp-capture/lib/aarch64-linux-gnu) -- CMAKE_INSTALL_MANDIR = share/man (/opt/openpnp-capture/share/man) CMake Warning (dev) at linux/contrib/libjpeg-turbo-dev/CMakeLists.txt:140 (option): Policy CMP0077 is not set: option() honors normal variables. Run "cmake --help-policy CMP0077" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

For compatibility with older versions of CMake, option is clearing the normal variable 'ENABLE_SHARED'. This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at linux/contrib/libjpeg-turbo-dev/CMakeLists.txt:160 (option): Policy CMP0077 is not set: option() honors normal variables. Run "cmake --help-policy CMP0077" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

For compatibility with older versions of CMake, option is clearing the normal variable 'WITH_SIMD'. This warning is for project developers. Use -Wno-dev to suppress it.

-- Shared libraries enabled (ENABLE_SHARED = 1) -- Static libraries enabled (ENABLE_STATIC = 1) -- 12-bit JPEG support disabled (WITH_12BIT = 0) -- Arithmetic decoding support enabled (WITH_ARITH_DEC = 1) -- Arithmetic encoding support enabled (WITH_ARITH_ENC = 1) -- TurboJPEG API library enabled (WITH_TURBOJPEG = 1) -- TurboJPEG Java wrapper disabled (WITH_JAVA = 0) -- In-memory source/destination managers enabled (WITH_MEM_SRCDST = 1) -- Emulating libjpeg API/ABI v6.2 (WITH_JPEG7 = 0, WITH_JPEG8 = 0) -- libjpeg API shared library version = 62.3.0 -- Compiler flags = -fPIC -O3 -DNDEBUG -- Linker flags =
-- Looking for include file locale.h -- Looking for include file locale.h - found -- Looking for include file stddef.h -- Looking for include file stddef.h - found -- Looking for include file stdlib.h -- Looking for include file stdlib.h - found -- Looking for include file sys/types.h -- Looking for include file sys/types.h - found -- Looking for memset -- Looking for memset - found -- Looking for memcpy -- Looking for memcpy - found -- Looking for sys/types.h -- Looking for sys/types.h - found -- Looking for stdint.h -- Looking for stdint.h - found -- Check size of unsigned char -- Check size of unsigned char - done -- Check size of unsigned short -- Check size of unsigned short - done -- Check size of size_t -- Check size of size_t - done -- Performing Test INCOMPLETE_TYPES -- Performing Test INCOMPLETE_TYPES - Success -- Compiler supports pointers to undefined structures. -- Performing Test RIGHT_SHIFT_IS_UNSIGNED -- Performing Test RIGHT_SHIFT_IS_UNSIGNED - Failed -- Performing Test CHAR_UNSIGNED -- Performing Test CHAR_UNSIGNED - Success -- Performing Test INLINE_WORKS -- Performing Test INLINE_WORKS - Success -- INLINE = inline attribute((always_inline)) (FORCE_INLINE = 1) -- Performing Test HAVE_VERSION_SCRIPT -- Performing Test HAVE_VERSION_SCRIPT - Success -- Linker supports GNU-style version scripts Added DIRS: /home/pi/Downloads/openpnp-capture/build/linux/contrib/libjpeg-turbo-dev /home/pi/Downloads/openpnp-capture/linux/contrib/libjpeg-turbo-dev -- The ASM compiler identification is GNU -- Found assembler: /usr/bin/cc -- CMAKE_ASM_FLAGS = -fPIC -O3 -DNDEBUG -- GAS is working properly -- SIMD extensions: arm64 (WITH_SIMD = 1) -- FLOATTEST = 64bit -- RPM architecture = aarch64, DEB architecture = arm64 -- Checking for module 'gtk+-3.0' -- Found gtk+-3.0, version 3.24.24 -- Configuring done -- Generating done -- Build files have been written to: /home/pi/Downloads/openpnp-capture/build pi@raspberrypi:~/Downloads/openpnp-capture $ cd build/ pi@raspberrypi:~/Downloads/openpnp-capture/build $ make Scanning dependencies of target simd [ 0%] Building ASM object linux/contrib/libjpeg-turbo-dev/simd/CMakeFiles/simd.dir/arm64/jsimd_neon.S.o [ 0%] Building C object linux/contrib/libjpeg-turbo-dev/simd/CMakeFiles/simd.dir/arm64/jsimd.c.o [ 0%] Built target simd Scanning dependencies of target turbojpeg-static [ 0%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcapimin.c.o [ 0%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcapistd.c.o [ 1%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jccoefct.c.o [ 1%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jccolor.c.o [ 1%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcdctmgr.c.o [ 2%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jchuff.c.o [ 2%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcicc.c.o [ 2%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcinit.c.o [ 3%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcmainct.c.o [ 3%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcmarker.c.o [ 3%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcmaster.c.o [ 4%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcomapi.c.o [ 4%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcparam.c.o [ 4%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcphuff.c.o [ 5%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcprepct.c.o [ 5%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcsample.c.o [ 5%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jctrans.c.o [ 6%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdapimin.c.o [ 6%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdapistd.c.o [ 6%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdatadst.c.o [ 7%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdatasrc.c.o [ 7%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdcoefct.c.o [ 7%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdcolor.c.o [ 7%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jddctmgr.c.o [ 8%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdhuff.c.o [ 8%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdicc.c.o [ 8%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdinput.c.o [ 9%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdmainct.c.o [ 9%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdmarker.c.o [ 9%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdmaster.c.o [ 10%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdmerge.c.o [ 10%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdphuff.c.o [ 10%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdpostct.c.o [ 11%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdsample.c.o [ 11%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdtrans.c.o [ 11%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jerror.c.o [ 12%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jfdctflt.c.o [ 12%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jfdctfst.c.o [ 12%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jfdctint.c.o [ 13%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jidctflt.c.o [ 13%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jidctfst.c.o [ 13%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jidctint.c.o [ 14%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jidctred.c.o [ 14%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jquant1.c.o [ 14%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jquant2.c.o [ 15%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jutils.c.o [ 15%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jmemmgr.c.o [ 15%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jmemnobs.c.o [ 16%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jaricom.c.o [ 16%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jcarith.c.o [ 16%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdarith.c.o [ 17%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/turbojpeg.c.o [ 17%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/transupp.c.o [ 17%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdatadst-tj.c.o [ 18%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg-static.dir/jdatasrc-tj.c.o [ 18%] Linking C static library libturbojpeg.a [ 18%] Built target turbojpeg-static Scanning dependencies of target openpnp-capture [ 19%] Building CXX object CMakeFiles/openpnp-capture.dir/common/libmain.cpp.o [ 19%] Building CXX object CMakeFiles/openpnp-capture.dir/common/context.cpp.o [ 19%] Building CXX object CMakeFiles/openpnp-capture.dir/common/logging.cpp.o [ 20%] Building CXX object CMakeFiles/openpnp-capture.dir/common/stream.cpp.o [ 20%] Building CXX object CMakeFiles/openpnp-capture.dir/linux/platformcontext.cpp.o [ 20%] Building CXX object CMakeFiles/openpnp-capture.dir/linux/platformstream.cpp.o [ 21%] Building CXX object CMakeFiles/openpnp-capture.dir/linux/mjpeghelper.cpp.o [ 21%] Building CXX object CMakeFiles/openpnp-capture.dir/linux/yuvconverters.cpp.o [ 21%] Linking CXX shared library libopenpnp-capture.so [ 21%] Built target openpnp-capture Scanning dependencies of target turbojpeg [ 21%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcapimin.c.o [ 21%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcapistd.c.o [ 22%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jccoefct.c.o [ 22%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jccolor.c.o [ 22%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcdctmgr.c.o [ 23%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jchuff.c.o [ 23%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcicc.c.o [ 23%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcinit.c.o [ 24%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcmainct.c.o [ 24%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcmarker.c.o [ 24%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcmaster.c.o [ 24%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcomapi.c.o [ 25%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcparam.c.o [ 25%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcphuff.c.o [ 25%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcprepct.c.o [ 26%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcsample.c.o [ 26%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jctrans.c.o [ 26%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdapimin.c.o [ 27%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdapistd.c.o [ 27%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdatadst.c.o [ 27%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdatasrc.c.o [ 28%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdcoefct.c.o [ 28%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdcolor.c.o [ 28%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jddctmgr.c.o [ 29%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdhuff.c.o [ 29%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdicc.c.o [ 29%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdinput.c.o [ 30%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdmainct.c.o [ 30%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdmarker.c.o [ 30%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdmaster.c.o [ 31%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdmerge.c.o [ 31%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdphuff.c.o [ 31%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdpostct.c.o [ 32%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdsample.c.o [ 32%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdtrans.c.o [ 32%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jerror.c.o [ 33%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jfdctflt.c.o [ 33%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jfdctfst.c.o [ 33%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jfdctint.c.o [ 34%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jidctflt.c.o [ 34%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jidctfst.c.o [ 34%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jidctint.c.o [ 35%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jidctred.c.o [ 35%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jquant1.c.o [ 35%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jquant2.c.o [ 35%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jutils.c.o [ 36%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jmemmgr.c.o [ 36%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jmemnobs.c.o [ 36%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jaricom.c.o [ 37%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jcarith.c.o [ 37%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdarith.c.o [ 37%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/turbojpeg.c.o [ 38%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/transupp.c.o [ 38%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdatadst-tj.c.o [ 38%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/turbojpeg.dir/jdatasrc-tj.c.o [ 39%] Linking C shared library libturbojpeg.so [ 39%] Built target turbojpeg Scanning dependencies of target tjunittest [ 39%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjunittest.dir/tjunittest.c.o [ 39%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjunittest.dir/tjutil.c.o [ 40%] Linking C executable tjunittest [ 40%] Built target tjunittest Scanning dependencies of target jpeg [ 40%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcapimin.c.o [ 41%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcapistd.c.o [ 41%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jccoefct.c.o [ 41%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jccolor.c.o [ 42%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcdctmgr.c.o [ 42%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jchuff.c.o [ 42%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcicc.c.o [ 43%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcinit.c.o [ 43%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcmainct.c.o [ 43%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcmarker.c.o [ 44%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcmaster.c.o [ 44%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcomapi.c.o [ 44%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcparam.c.o [ 45%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcphuff.c.o [ 45%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcprepct.c.o [ 45%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcsample.c.o [ 46%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jctrans.c.o [ 46%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdapimin.c.o [ 46%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdapistd.c.o [ 47%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdatadst.c.o [ 47%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdatasrc.c.o [ 47%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdcoefct.c.o [ 48%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdcolor.c.o [ 48%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jddctmgr.c.o [ 48%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdhuff.c.o [ 49%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdicc.c.o [ 49%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdinput.c.o [ 49%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdmainct.c.o [ 50%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdmarker.c.o [ 50%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdmaster.c.o [ 50%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdmerge.c.o [ 51%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdphuff.c.o [ 51%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdpostct.c.o [ 51%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdsample.c.o [ 51%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jdtrans.c.o [ 52%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jerror.c.o [ 52%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jfdctflt.c.o [ 52%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jfdctfst.c.o [ 53%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jfdctint.c.o [ 53%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jidctflt.c.o [ 53%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jidctfst.c.o [ 54%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jidctint.c.o [ 54%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jidctred.c.o [ 54%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jquant1.c.o [ 55%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jquant2.c.o ^[[C[ 55%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jutils.c.o [ 55%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jmemmgr.c.o [ 56%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jmemnobs.c.o [ 56%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jaricom.c.o [ 56%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir//jcarith.c.o [ 57%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpeg.dir/__/jdarith.c.o [ 57%] Linking C shared library ../libjpeg.so [ 57%] Built target jpeg Scanning dependencies of target tjbench [ 58%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/tjbench.c.o [ 58%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/bmp.c.o [ 58%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/tjutil.c.o [ 59%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/rdbmp.c.o [ 59%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/rdppm.c.o [ 59%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/wrbmp.c.o [ 60%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench.dir/wrppm.c.o [ 60%] Linking C executable tjbench [ 60%] Built target tjbench Scanning dependencies of target jpeg-static [ 60%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcapimin.c.o [ 61%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcapistd.c.o [ 61%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jccoefct.c.o [ 61%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jccolor.c.o [ 62%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcdctmgr.c.o [ 62%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jchuff.c.o [ 62%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcicc.c.o [ 63%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcinit.c.o [ 63%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcmainct.c.o [ 63%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcmarker.c.o [ 64%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcmaster.c.o [ 64%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcomapi.c.o [ 64%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcparam.c.o [ 65%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcphuff.c.o [ 65%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcprepct.c.o [ 65%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcsample.c.o [ 65%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jctrans.c.o [ 66%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdapimin.c.o [ 66%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdapistd.c.o [ 66%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdatadst.c.o [ 67%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdatasrc.c.o [ 67%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdcoefct.c.o [ 67%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdcolor.c.o [ 68%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jddctmgr.c.o [ 68%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdhuff.c.o [ 68%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdicc.c.o [ 69%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdinput.c.o [ 69%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdmainct.c.o [ 69%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdmarker.c.o [ 70%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdmaster.c.o [ 70%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdmerge.c.o [ 70%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdphuff.c.o [ 71%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdpostct.c.o [ 71%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdsample.c.o [ 71%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdtrans.c.o [ 72%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jerror.c.o [ 72%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jfdctflt.c.o [ 72%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jfdctfst.c.o [ 73%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jfdctint.c.o [ 73%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jidctflt.c.o [ 73%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jidctfst.c.o [ 74%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jidctint.c.o [ 74%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jidctred.c.o [ 74%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jquant1.c.o [ 75%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jquant2.c.o [ 75%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jutils.c.o [ 75%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jmemmgr.c.o [ 76%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jmemnobs.c.o [ 76%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jaricom.c.o [ 76%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jcarith.c.o [ 76%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpeg-static.dir/jdarith.c.o [ 77%] Linking C static library libjpeg.a [ 77%] Built target jpeg-static Scanning dependencies of target tjbench-static [ 77%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/tjbench.c.o [ 78%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/bmp.c.o [ 78%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/tjutil.c.o [ 78%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/rdbmp.c.o [ 79%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/rdppm.c.o [ 79%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/wrbmp.c.o [ 79%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjbench-static.dir/wrppm.c.o [ 80%] Linking C executable tjbench-static [ 80%] Built target tjbench-static Scanning dependencies of target cjpeg-static [ 80%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/cjpeg.c.o [ 81%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/cdjpeg.c.o [ 81%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/rdgif.c.o [ 81%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/rdppm.c.o [ 82%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/rdswitch.c.o [ 82%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/rdbmp.c.o [ 82%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/cjpeg-static.dir/rdtarga.c.o [ 83%] Linking C executable cjpeg-static [ 83%] Built target cjpeg-static Scanning dependencies of target djpeg-static [ 83%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/djpeg.c.o [ 83%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/cdjpeg.c.o [ 84%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/rdcolmap.c.o [ 84%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/rdswitch.c.o [ 84%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/wrgif.c.o [ 85%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/wrppm.c.o [ 85%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/wrbmp.c.o [ 85%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/djpeg-static.dir/wrtarga.c.o [ 86%] Linking C executable djpeg-static [ 86%] Built target djpeg-static Scanning dependencies of target jpegtran-static [ 87%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpegtran-static.dir/jpegtran.c.o [ 87%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpegtran-static.dir/cdjpeg.c.o [ 87%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpegtran-static.dir/rdswitch.c.o [ 88%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/jpegtran-static.dir/transupp.c.o [ 88%] Linking C executable jpegtran-static [ 88%] Built target jpegtran-static Scanning dependencies of target tjunittest-static [ 88%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjunittest-static.dir/tjunittest.c.o [ 88%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/tjunittest-static.dir/tjutil.c.o [ 89%] Linking C executable tjunittest-static [ 89%] Built target tjunittest-static Scanning dependencies of target rdjpgcom [ 90%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/rdjpgcom.dir/rdjpgcom.c.o [ 90%] Linking C executable rdjpgcom [ 90%] Built target rdjpgcom Scanning dependencies of target wrjpgcom [ 90%] Building C object linux/contrib/libjpeg-turbo-dev/CMakeFiles/wrjpgcom.dir/wrjpgcom.c.o [ 91%] Linking C executable wrjpgcom [ 91%] Built target wrjpgcom Scanning dependencies of target jcstest [ 91%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jcstest.dir//jcstest.c.o [ 91%] Linking C executable ../jcstest [ 91%] Built target jcstest Scanning dependencies of target jpegtran [ 91%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpegtran.dir//jpegtran.c.o [ 91%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpegtran.dir//cdjpeg.c.o [ 92%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpegtran.dir//rdswitch.c.o [ 92%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/jpegtran.dir//transupp.c.o [ 92%] Linking C executable ../jpegtran [ 92%] Built target jpegtran Scanning dependencies of target djpeg [ 92%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//djpeg.c.o [ 92%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//cdjpeg.c.o [ 93%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//rdcolmap.c.o [ 93%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//rdswitch.c.o [ 93%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//wrgif.c.o [ 94%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//wrppm.c.o [ 94%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//wrbmp.c.o [ 94%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/djpeg.dir//wrtarga.c.o [ 95%] Linking C executable ../djpeg [ 95%] Built target djpeg Scanning dependencies of target cjpeg [ 95%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//cjpeg.c.o [ 95%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//cdjpeg.c.o [ 95%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//rdgif.c.o [ 96%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//rdppm.c.o [ 96%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//rdswitch.c.o [ 96%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//rdbmp.c.o [ 97%] Building C object linux/contrib/libjpeg-turbo-dev/sharedlib/CMakeFiles/cjpeg.dir//rdtarga.c.o [ 97%] Linking C executable ../cjpeg [ 97%] Built target cjpeg Scanning dependencies of target md5cmp [ 97%] Building C object linux/contrib/libjpeg-turbo-dev/md5/CMakeFiles/md5cmp.dir/md5cmp.c.o [ 98%] Building C object linux/contrib/libjpeg-turbo-dev/md5/CMakeFiles/md5cmp.dir/md5.c.o [ 98%] Building C object linux/contrib/libjpeg-turbo-dev/md5/CMakeFiles/md5cmp.dir/md5hl.c.o [ 98%] Linking C executable md5cmp [ 98%] Built target md5cmp Scanning dependencies of target oc-gtk [ 99%] Building CXX object linux/tests/CMakeFiles/oc-gtk.dir/gtkmain.cpp.o [ 99%] Building CXX object linux/tests/CMakeFiles/oc-gtk.dir///common/logging.cpp.o [ 99%] Linking CXX executable oc-gtk [ 99%] Built target oc-gtk Scanning dependencies of target openpnp-capture-test [100%] Building CXX object linux/tests/CMakeFiles/openpnp-capture-test.dir/main.cpp.o [100%] Building CXX object linux/tests/CMakeFiles/openpnp-capture-test.dir///common/logging.cpp.o [100%] Linking CXX executable openpnp-capture-test [100%] Built target openpnp-capture-test pi@raspberrypi:~/Downloads/openpnp-capture/build $ cd linux/tests/ pi@raspberrypi:~/Downloads/openpnp-capture/build/linux/tests $ ./openpnp-capture-test OpenPNP Capture Test Program Linux 64 bit debug v0.0.25 Mar 30 2023 [DBG ] Context created [INFO] Enumerating devices [INFO] Name: 'unicam' [INFO] Path: '/dev/video0' [INFO] Bus : 'platform:fe800000.csi' [INFO] capflags = A5A00001 [INFO] devflags = 25200001 [INFO] read/write supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Name: 'unicam' [INFO] Path: '/dev/video2' [INFO] Bus : 'platform:fe801000.csi' [INFO] capflags = A5A00001 [INFO] devflags = 25200001 [INFO] read/write supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video14' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = RGB3 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = BGR3 queryFrameSize returned non-discrete frame size! [INFO] Format 8 [INFO] FOURCC = XB24 queryFrameSize returned non-discrete frame size! [INFO] Format 9 [INFO] FOURCC = XR24 queryFrameSize returned non-discrete frame size! [INFO] Format 10 [INFO] FOURCC = RGBP queryFrameSize returned non-discrete frame size! [INFO] Format 11 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 12 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video15' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video21' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = RGB3 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = BGR3 queryFrameSize returned non-discrete frame size! [INFO] Format 8 [INFO] FOURCC = XB24 queryFrameSize returned non-discrete frame size! [INFO] Format 9 [INFO] FOURCC = XR24 queryFrameSize returned non-discrete frame size! [INFO] Format 10 [INFO] FOURCC = RGBP queryFrameSize returned non-discrete frame size! [INFO] Format 11 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 12 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video22' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! Number of devices: 6 ID 0 -> unicam Number of formats: 0 ID 1 -> unicam Number of formats: 0 ID 2 -> bcm2835-isp Number of formats: 13 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=RGB3 Format ID 7: 0 x 0 pixels FOURCC=BGR3 Format ID 8: 0 x 0 pixels FOURCC=XB24 Format ID 9: 0 x 0 pixels FOURCC=XR24 Format ID 10: 0 x 0 pixels FOURCC=RGBP Format ID 11: 0 x 0 pixels FOURCC=NV12 Format ID 12: 0 x 0 pixels FOURCC=NV21 ID 3 -> bcm2835-isp Number of formats: 8 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=NV12 Format ID 7: 0 x 0 pixels FOURCC=NV21 ID 4 -> bcm2835-isp Number of formats: 13 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=RGB3 Format ID 7: 0 x 0 pixels FOURCC=BGR3 Format ID 8: 0 x 0 pixels FOURCC=XB24 Format ID 9: 0 x 0 pixels FOURCC=XR24 Format ID 10: 0 x 0 pixels FOURCC=RGBP Format ID 11: 0 x 0 pixels FOURCC=NV12 Format ID 12: 0 x 0 pixels FOURCC=NV21 ID 5 -> bcm2835-isp Number of formats: 8 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=NV12 Format ID 7: 0 x 0 pixels FOURCC=NV21 [ERR ] openStream: Requested format index out of range Stream ID = -1 [ERR ] isOpenStream was called with a negative stream ID Stream is closed (?)

darkomenz commented 1 year ago

I also checked what v4l2-ctl and libcamera-hello says about the attached cameras.

pi@raspberrypi:~/Downloads/openpnp-capture/build/linux/tests $ v4l2-ctl --list-devices bcm2835-codec-decode (platform:bcm2835-codec): /dev/video10 /dev/video11 /dev/video12 /dev/video18 /dev/video31 /dev/media4

bcm2835-isp (platform:bcm2835-isp): /dev/video13 /dev/video14 /dev/video15 /dev/video16 /dev/video20 /dev/video21 /dev/video22 /dev/video23 /dev/media3 /dev/media5

unicam (platform:fe800000.csi): /dev/video0 /dev/video1 /dev/media1

unicam (platform:fe801000.csi): /dev/video2 /dev/video3 /dev/media2

rpivid (platform:rpivid): /dev/video19 /dev/media0

pi@raspberrypi:~/Downloads/openpnp-capture/build/linux/tests $ libcamera-hello --list-cameras Available cameras

0 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@0/imx219@10) Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 1 : imx219 [3280x2464] (/base/soc/i2c0mux/i2c@1/imx219@10) Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop] 'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop] 1640x1232 [41.85 fps - (0, 0)/3280x2464 crop] 1920x1080 [47.57 fps - (680, 692)/1920x1080 crop] 3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]

ian-arkver commented 1 year ago

I'm not that familiar with RPi camera setup. It looks like they've split the CSI and ISP drivers into separate video nodes and these are now mediactl devices. Libcamera hides this behind a friendly layer. https://forums.raspberrypi.com/viewtopic.php?t=306258

Does libcamera-hello actually display the capture ok? https://www.raspberrypi.com/documentation/computers/camera_software.html#common-command-line-options

For OpenPnP-Capture, I don't know if this code makes use of libcamera. If not, it's quite probable it doesn't support the RPi mediactl pipeline setup.

ian-arkver commented 1 year ago

You might be able to script the mediactl pipeline setup to connect the CSI to the ISP and then use one of the ISP capture nodes with openpnp-capture, but mediactl pipelines are a bit "dark arts". Anyhow, I don't have an RPi to test with and help you. I suggest you ask around on the RPi forums to see if this can be done - the aim being to capture YUYV on a plain V4L2 device node. 6by9 is usually very helpful.

https://forums.raspberrypi.com/viewtopic.php?t=322076

darkomenz commented 1 year ago

Hello @ian-arkver,

I am trying to develop a openpnp controller based on the Raspberry Pi Compute Module 4. The expectation here would be that the customer would purchase the CM4 and plug it into my base board. Then they would set up the os and install OpenPNP. It would be a major issue to have to involve any work arounds. Keep in mind ARM and RISC-V hardware will only get better and at some point embedding the computer that handles the vision pipeline onto the motion controller makes sense.

libcamera is an open source camera stack for many platforms with a core userspace library, and support from the Linux kernel APIs and drivers already in place. It aims to control the complexity of embedded camera hardware by providing an intuitive API and method of separating untrusted vendor code from the open source core. libcamera aims to encourage the development of new embedded camera applications by limiting the complexity that developers have to deal with. The interface is designed around the way that modern embedded camera hardware works.

darkomenz commented 1 year ago

Oh and as for your earlier question yes the libcamera-hello application works without issues and I can take pictures from both attached cameras.

ian-arkver commented 1 year ago

um... and? Libcamera FAQ #1 quoted? Not sure what your point is.

When the Pi OS people moved away from what they called the "Legacy Stack" they completely changed the camera API. Yes, you can hide that behind libcamera, but that requires the app (here openpnp-capture) to support libcamera's API.

If this repo doesn't support that particular platform and that particular library then that support would need to be added to enable it. Contributions welcome.

Or it may be possible to configure the pipeline with a script, as I suggested, i.e. to basically do what libcamera is doing for you (unless libcamera is also physically passing buffers from one driver to the other). This is common practice for mediactl pipelines on many platforms, but it's tricky to get the syntax and parameters right. It's not really a "work around". But you'll get more support on an RPi specific forum than here I think, i.e. from people who actually have the hardware and have probably done it before.

[ps: Since libcamera-hello works you could try dumping out the pipelines with media-ctl -p while a libcamera app is running. Then you might be able to recreate them.]

darkomenz commented 1 year ago

Hello @ian-arkver,

If I install 32bit Raspbian this library works without issues. As OpenPNP recommends 8gb of memory on the Build FAQ this implies that a 64bit os is recommended and so it was tested and found to be in a unusable state. Right now we know that its broken but the root cause is yet to be determined. Can we focus on finding the root cause instead of work arounds for the moment?

Regards

vonnieda commented 1 year ago

Folks, I think Ian has found the issue with the library versions. I just haven't had a moment to fix it. Please be patient.

ian-arkver commented 1 year ago

I'd guess the "root cause" is that 32 bit Raspbian uses the "Legacy Stack" and the new 64 bit os doesn't, and that doesn't work out-of-the-box, without some pipeline setup. Anyhow, I'm out of ideas. Good luck!

darkomenz commented 1 year ago

Hello @ian-arkver,

I am not so sure as raspi-config has the option to enable the legacy stack and it does not resolve the issue.

image image image

pi@raspberrypi:~/Downloads/openpnp-capture/build/linux/tests $ ./openpnp-capture-test OpenPNP Capture Test Program Linux 64 bit debug v0.0.25 Mar 30 2023 [DBG ] Context created [INFO] Enumerating devices [INFO] Name: 'unicam' [INFO] Path: '/dev/video0' [INFO] Bus : 'platform:fe800000.csi' [INFO] capflags = A5A00001 [INFO] devflags = 25200001 [INFO] read/write supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Name: 'unicam' [INFO] Path: '/dev/video2' [INFO] Bus : 'platform:fe801000.csi' [INFO] capflags = A5A00001 [INFO] devflags = 25200001 [INFO] read/write supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video14' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = RGB3 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = BGR3 queryFrameSize returned non-discrete frame size! [INFO] Format 8 [INFO] FOURCC = XB24 queryFrameSize returned non-discrete frame size! [INFO] Format 9 [INFO] FOURCC = XR24 queryFrameSize returned non-discrete frame size! [INFO] Format 10 [INFO] FOURCC = RGBP queryFrameSize returned non-discrete frame size! [INFO] Format 11 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 12 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video15' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video21' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = RGB3 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = BGR3 queryFrameSize returned non-discrete frame size! [INFO] Format 8 [INFO] FOURCC = XB24 queryFrameSize returned non-discrete frame size! [INFO] Format 9 [INFO] FOURCC = XR24 queryFrameSize returned non-discrete frame size! [INFO] Format 10 [INFO] FOURCC = RGBP queryFrameSize returned non-discrete frame size! [INFO] Format 11 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 12 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! [INFO] Name: 'bcm2835-isp' [INFO] Path: '/dev/video22' [INFO] Bus : 'platform:bcm2835-isp' [INFO] capflags = 84200001 [INFO] devflags = 04200001 [INFO] read/write NOT supported [INFO] streaming I/O supported [INFO] async I/O NOT supported [INFO] Format 0 [INFO] FOURCC = YUYV queryFrameSize returned non-discrete frame size! [INFO] Format 1 [INFO] FOURCC = YVYU queryFrameSize returned non-discrete frame size! [INFO] Format 2 [INFO] FOURCC = VYUY queryFrameSize returned non-discrete frame size! [INFO] Format 3 [INFO] FOURCC = UYVY queryFrameSize returned non-discrete frame size! [INFO] Format 4 [INFO] FOURCC = YU12 queryFrameSize returned non-discrete frame size! [INFO] Format 5 [INFO] FOURCC = YV12 queryFrameSize returned non-discrete frame size! [INFO] Format 6 [INFO] FOURCC = NV12 queryFrameSize returned non-discrete frame size! [INFO] Format 7 [INFO] FOURCC = NV21 queryFrameSize returned non-discrete frame size! Number of devices: 6 ID 0 -> unicam Number of formats: 0 ID 1 -> unicam Number of formats: 0 ID 2 -> bcm2835-isp Number of formats: 13 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=RGB3 Format ID 7: 0 x 0 pixels FOURCC=BGR3 Format ID 8: 0 x 0 pixels FOURCC=XB24 Format ID 9: 0 x 0 pixels FOURCC=XR24 Format ID 10: 0 x 0 pixels FOURCC=RGBP Format ID 11: 0 x 0 pixels FOURCC=NV12 Format ID 12: 0 x 0 pixels FOURCC=NV21 ID 3 -> bcm2835-isp Number of formats: 8 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=NV12 Format ID 7: 0 x 0 pixels FOURCC=NV21 ID 4 -> bcm2835-isp Number of formats: 13 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=RGB3 Format ID 7: 0 x 0 pixels FOURCC=BGR3 Format ID 8: 0 x 0 pixels FOURCC=XB24 Format ID 9: 0 x 0 pixels FOURCC=XR24 Format ID 10: 0 x 0 pixels FOURCC=RGBP Format ID 11: 0 x 0 pixels FOURCC=NV12 Format ID 12: 0 x 0 pixels FOURCC=NV21 ID 5 -> bcm2835-isp Number of formats: 8 Format ID 0: 0 x 0 pixels FOURCC=YUYV Format ID 1: 0 x 0 pixels FOURCC=YVYU Format ID 2: 0 x 0 pixels FOURCC=VYUY Format ID 3: 0 x 0 pixels FOURCC=UYVY Format ID 4: 0 x 0 pixels FOURCC=YU12 Format ID 5: 0 x 0 pixels FOURCC=YV12 Format ID 6: 0 x 0 pixels FOURCC=NV12 Format ID 7: 0 x 0 pixels FOURCC=NV21 [ERR ] openStream: Requested format index out of range Stream ID = -1 [ERR ] isOpenStream was called with a negative stream ID Stream is closed (?)

Regards

ian-arkver commented 1 year ago

From my reading earlier the Legacy Stack doesn't have unicam drivers. Your log looks unchanged. I'd definitely recommend chatting to someone on the RPi forums. To be honest, I'm guessing here and as I said I've no hardware to test & repro on.

ian-arkver commented 1 year ago

One last comment - you are blazing a trail into the unknown here. I don't think anyone has used this on Raspi with CSI cameras before. Previous aarch64 support has been for UVC cameras or CSI Cameras on other platforms (eg. Apple, nvidia). This will require work done to make it work so don't be upset if it takes time and effort.

vonnieda commented 1 year ago

Okay, I've merged the changes @ian-arkver suggested - thank you for that!

As long as the build looks good I'll release this as v0.0.26 and update OpenPnP as well.

darkomenz commented 1 year ago

Hello @vonnieda,

Can we keep this ticket open until the fix that you have proposed is confirmed to resolve the issue that has been mentioned in this thread?

Regards

vonnieda commented 1 year ago

@darkomenz Yep, keeping it open. It was auto closed by the commit message so I reopened it.

darkomenz commented 1 year ago

Hello @vonnieda,

I was able to test the updated binaries but I am still seeing a GLIBC error.

pi@cm4-pnp:~/Downloads $ wget https://github.com/openpnp/openpnp-capture/releases/download/v0.0.26/openpnp-capture-test-ubuntu-20.04-arm64 --2023-04-11 00:31:34-- https://github.com/openpnp/openpnp-capture/releases/download/v0.0.26/openpnp-capture-test-ubuntu-20.04-arm64 Resolving github.com (github.com)... 140.82.112.3 Connecting to github.com (github.com)|140.82.112.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/269398a8-2b8e-47da-bc79-3945bb2edd91?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230410%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230410T233134Z&X-Amz-Expires=300&X-Amz-Signature=bf26b49fbea260beead908eef2f73913920395ccd5f429a60af0a6022eb88a21&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dopenpnp-capture-test-ubuntu-20.04-arm64&response-content-type=application%2Foctet-stream [following] --2023-04-11 00:31:34-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/269398a8-2b8e-47da-bc79-3945bb2edd91?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230410%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230410T233134Z&X-Amz-Expires=300&X-Amz-Signature=bf26b49fbea260beead908eef2f73913920395ccd5f429a60af0a6022eb88a21&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dopenpnp-capture-test-ubuntu-20.04-arm64&response-content-type=application%2Foctet-stream Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.110.133, ... Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 23648 (23K) [application/octet-stream] Saving to: ‘openpnp-capture-test-ubuntu-20.04-arm64’

openpnp-capture-test-ubunt 100%[=====================================>] 23.09K --.-KB/s in 0.003s

2023-04-11 00:31:35 (7.50 MB/s) - ‘openpnp-capture-test-ubuntu-20.04-arm64’ saved [23648/23648]

pi@cm4-pnp:~/Downloads $ chmod +x openpnp-capture-test-ubuntu-20.04-arm64

pi@cm4-pnp:~/Downloads $ wget https://github.com/openpnp/openpnp-capture/releases/download/v0.0.26/libopenpnp-capture-ubuntu-20.04-arm64.so --2023-04-11 00:32:09-- https://github.com/openpnp/openpnp-capture/releases/download/v0.0.26/libopenpnp-capture-ubuntu-20.04-arm64.so Resolving github.com (github.com)... 140.82.112.3 Connecting to github.com (github.com)|140.82.112.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/723ba700-3fe1-4d8b-9183-2c6de0aef14e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230410%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230410T233209Z&X-Amz-Expires=300&X-Amz-Signature=cc80f4bc5884267888dbef56c275294fc3ff73e3e25dbb38015ec522a4936f76&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dlibopenpnp-capture-ubuntu-20.04-arm64.so&response-content-type=application%2Foctet-stream [following] --2023-04-11 00:32:10-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/82263819/723ba700-3fe1-4d8b-9183-2c6de0aef14e?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230410%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230410T233209Z&X-Amz-Expires=300&X-Amz-Signature=cc80f4bc5884267888dbef56c275294fc3ff73e3e25dbb38015ec522a4936f76&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=82263819&response-content-disposition=attachment%3B%20filename%3Dlibopenpnp-capture-ubuntu-20.04-arm64.so&response-content-type=application%2Foctet-stream Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.108.133, 185.199.109.133, 185.199.111.133, ... Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.108.133|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 512320 (500K) [application/octet-stream] Saving to: ‘libopenpnp-capture-ubuntu-20.04-arm64.so’

libopenpnp-capture-ubuntu- 100%[=====================================>] 500.31K --.-KB/s in 0.06s

2023-04-11 00:32:10 (8.14 MB/s) - ‘libopenpnp-capture-ubuntu-20.04-arm64.so’ saved [512320/512320]

pi@cm4-pnp:~/Downloads $ sudo cp libopenpnp-capture-ubuntu-20.04-arm64.so /usr/lib pi@cm4-pnp:~/Downloads $ sudo ln -s /usr/lib/libopenpnp-capture-ubuntu-20.04-arm64.so /usr/lib/libopenpnp-capture.so.0

pi@cm4-pnp:~/Downloads $ ./openpnp-capture-test-ubuntu-20.04-arm64 ./openpnp-capture-test-ubuntu-20.04-arm64: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./openpnp-capture-test-ubuntu-20.04-arm64)

ian-arkver commented 1 year ago

This is odd. The library only calls up GLIBC_2.17 and all the functions bar one in the test app are also pulled from 2.17. But the main entry point is still using 2.34...

aarch64-none-linux-gnu-objdump -x Downloads/openpnp-capture-test-ubuntu-20.04-arm64 | grep GLIBC_2.34 0x069691b4 0x00 05 GLIBC_2.34 0000000000000000 F UND 0000000000000000 __libc_start_main@GLIBC_2.34

Don't really know why this would be. Not a clean build perhaps?

darkomenz commented 1 year ago

Hello @ian-arkver,

The os is available from:

https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit

pi@cm4-pnp:~ $ objdump -x /lib/aarch64-linux-gnu/libc.so.6 | grep GLIB 2 0x00 0x06969197 GLIBC_2.17 3 0x00 0x06969198 GLIBC_2.18 GLIBC_2.17 4 0x00 0x06969182 GLIBC_2.22 GLIBC_2.18 5 0x00 0x06969183 GLIBC_2.23 GLIBC_2.22 6 0x00 0x06969184 GLIBC_2.24 GLIBC_2.23 7 0x00 0x06969185 GLIBC_2.25 GLIBC_2.24 8 0x00 0x06969186 GLIBC_2.26 GLIBC_2.25 9 0x00 0x06969187 GLIBC_2.27 GLIBC_2.26 10 0x00 0x06969188 GLIBC_2.28 GLIBC_2.27 11 0x00 0x06969189 GLIBC_2.29 GLIBC_2.28 12 0x00 0x069691b0 GLIBC_2.30 GLIBC_2.29 13 0x00 0x0963cf85 GLIBC_PRIVATE GLIBC_2.30 0x06969197 0x00 15 GLIBC_2.17 0x0963cf85 0x00 14 GLIBC_PRIVATE

pi@cm4-pnp:~ $ strings /usr/lib/aarch64-linux-gnu/libc.so.6 | grep GLIBC GLIBC_2.17 GLIBC_2.18 GLIBC_2.22 GLIBC_2.23 GLIBC_2.24 GLIBC_2.25 GLIBC_2.26 GLIBC_2.27 GLIBC_2.28 GLIBC_2.29 GLIBC_2.30 GLIBC_PRIVATE GNU C Library (Debian GLIBC 2.31-13+rpt2+rpi1+deb11u5) stable release version 2.31.

Regards

darkomenz commented 1 year ago

I can try to build from source again but likely will result in the same issues as last time.

ian-arkver commented 1 year ago

It seems libcamera includes a gstreamer plugin which could be used to capture video for GStreamerCamera, in theory.

https://github.com/raspberrypi/libcamera#using-gstreamer-plugin