Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenPnP on Raspberry Pi 4 #60

Open
darkomenz opened this issue Nov 6, 2022 · 43 comments
Open

OpenPnP on Raspberry Pi 4 #60

darkomenz opened this issue Nov 6, 2022 · 43 comments

Comments

@darkomenz
Copy link

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

@darkomenz
Copy link
Author

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

@darkomenz
Copy link
Author

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
Copy link
Member

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

@darkomenz
Copy link
Author

@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
Copy link
Author

@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
Copy link

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
Copy link
Author

image
image

@darkomenz
Copy link
Author

@brainstorm

Can you provide any assistance here as it seems like you wrote the arm camera stack (#47).

@vonnieda vonnieda reopened this Mar 28, 2023
@vonnieda
Copy link
Member

@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
Copy link
Author

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
Copy link
Author

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
Copy link
Author

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
Copy link
Member

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
Copy link

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
Copy link
Member

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
Copy link

ian-arkver commented Mar 28, 2023

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
Copy link

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

https://github.com/wheybags/glibc_version_header

@ian-arkver
Copy link

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
Copy link

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
Copy link
Member

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
Copy link

ian-arkver commented Mar 28, 2023

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

@ian-arkver
Copy link

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
Copy link
Author

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
Copy link
Author

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
Copy link

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
Copy link

ian-arkver commented Mar 30, 2023

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
Copy link
Author

darkomenz commented Mar 30, 2023

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
Copy link
Author

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
Copy link

ian-arkver commented Mar 30, 2023

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
Copy link
Author

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
Copy link
Member

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
Copy link

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
Copy link
Author

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
Copy link

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
Copy link

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
Copy link
Member

vonnieda commented Apr 3, 2023

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
Copy link
Author

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

@darkomenz darkomenz reopened this Apr 3, 2023
@vonnieda
Copy link
Member

vonnieda commented Apr 3, 2023

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

brainstorm added a commit to brainstorm/openpnp-kiosk that referenced this issue Apr 7, 2023
@darkomenz
Copy link
Author

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
Copy link

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
Copy link
Author

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
Copy link
Author

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

@ian-arkver
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants