raspberrypi / libcamera

Other
196 stars 74 forks source link

Range format is ambiguous / libcamera is not installed #136

Closed yazzr closed 1 month ago

yazzr commented 2 months ago

Hi,

I have libcamera installed from apt

When I run this command on the raspberry pi 5 (cam v3)

gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesin

I get the following error (libcamera v0.2.0+120-eb00c13d)

Setting pipeline to PAUSED ...
[2:41:24.011162729] [8107]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d
[2:41:24.019007908] [8115]  INFO RPI pisp.cpp:695 libpisp version v1.0.5 999da5acb4f4 17-04-2024 (14:29:29)
[2:41:24.029278813] [8115]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayWayland\)\ gldisplaywayland0";
[2:41:24.029972185] [8119]  WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format RPBP
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[2:41:24.030187185] [8119] ERROR Stream stream.cpp:215 Range format is ambiguous
[2:41:24.030222908] [8119] ERROR Stream stream.cpp:215 Range format is ambiguous
[2:41:24.030229685] [8119] ERROR Stream stream.cpp:215 Range format is ambiguous
[2:41:24.030235963] [8119] ERROR Stream stream.cpp:215 Range format is ambiguous
[2:41:24.701001221] [8119] ERROR Camera camera.cpp:1171 Can't configure camera with invalid configuration
ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Failed to configure camera: Invalid argument
Additional debug info:

I stumbled on this link: https://forums.raspberrypi.com/viewtopic.php?p=2221605#p2221605 which talks about a patch (see the second to last post) and I set about building libcamera from source using the patch in this link https://lists.libcamera.org/pipermail/libcamera-devel/2024-April/041642.html

The build goes successfully and I am pretty much following this guide: https://www.raspberrypi.com/documentation/computers/camera_software.html#build-libcamera-and-rpicam-apps.

I also built rpicam-apps and those apps work (e.g. rpicam-helloshows a stream and --list lists the camera)

As per the documentation I then run meson devenv -C build

now when I run

gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesin

I have the following error (libcamera v0.2.0+120-eb00c13d-dirty):

[7:56:14.802207345] [69931]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/pi/dev/libcamera/build/src/ipa' to the IPA search path
[7:56:14.808821310] [69931]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d-dirty (2024-05-15T17:53:05+02:00)
[7:56:14.819750277] [69932]  INFO RPI pisp.cpp:695 libpisp version v1.0.5 999da5acb4f4 15-05-2024 (17:07:49)
[7:56:14.839157505] [69932]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/pi/dev/libcamera/src/ipa/rpi/pisp/data'
[7:56:14.874367350] [69932]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
[7:56:14.877433518] [69931]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/pi/dev/libcamera/build/src/ipa' to the IPA search path
[7:56:14.883866520] [69931]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d-dirty (2024-05-15T17:53:05+02:00)
[7:56:14.893606079] [69935]  INFO RPI pisp.cpp:695 libpisp version v1.0.5 999da5acb4f4 15-05-2024 (17:07:49)
[7:56:14.906603953] [69935]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/pi/dev/libcamera/src/ipa/rpi/pisp/data'
[7:56:14.932367906] [69935]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media1 using PiSP variant BCM2712_C0
[7:56:14.933221592] [69939]  WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format RPBP
[7:56:14.961574268] [69939] ERROR Camera camera.cpp:1171 Can't configure camera with invalid configuration
2024-05-15 16:18:52.116 PROFILE createRtcCertificate(): [Certificate creation time] Time taken: 0 ms

I feel like I'm missing something very obvious - any help will be very much appreciated

naushir commented 1 month ago

Did you run sudo meson -C build install to install libcamera to your system? Another thing to check is run

ldd `which rpicam-hello` | grep libcamera

to see which libcamera libraries are in use by rpicam-apps.

yazzr commented 1 month ago

Do you mean : sudo jinja -C build install ? if so then yes.

running:

ldd `which rpicam-hello` | grep libcamera

results in

root@raspberrypi:# ldd `which rpicam-hello` | grep libcamera
        libcamera.so.0.2 => /usr/local/lib/aarch64-linux-gnu/libcamera.so.0.2 (0x00007fff6f0e0000)
        libcamera-base.so.0.2 => /usr/local/lib/aarch64-linux-gnu/libcamera-base.so.0.2 (0x00007fff6f090000)

let me go through a reinstall:

sudo ninja -C build uninstall

output:

ninja: Entering directory `build'
[0/1] /usr/bin/meson --internal uninstall
Deleted: /usr/local/include/libcamera/libcamera/ipa/core_ipa_interface.h
Deleted: /usr/local/include/libcamera/libcamera/ipa/raspberrypi_ipa_interface.h
Deleted: /usr/local/include/libcamera/libcamera/control_ids.h
Deleted: /usr/local/include/libcamera/libcamera/property_ids.h
Deleted: /usr/local/include/libcamera/libcamera/formats.h
Deleted: /usr/local/include/libcamera/libcamera/libcamera.h
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera-base.so.0.2.0
Deleted: /usr/local/lib/libyaml.a
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera.so.0.2.0
Deleted: /usr/local/libexec/libcamera/raspberrypi_ipa_proxy
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera/ipa_rpi_pisp.so
Deleted: /usr/local/bin/lc-compliance
Deleted: /usr/local/bin/cam
Deleted: /usr/local/lib/aarch64-linux-gnu/gstreamer-1.0/libgstlibcamera.so
Deleted: /usr/local/lib/aarch64-linux-gnu/python3.11/site-packages/libcamera/_libcamera.so
Deleted: /usr/local/libexec/libcamera/v4l2-compat.so
Deleted: /usr/local/include/libcamera/libcamera/base/bound_method.h
Deleted: /usr/local/include/libcamera/libcamera/base/class.h
Deleted: /usr/local/include/libcamera/libcamera/base/compiler.h
Deleted: /usr/local/include/libcamera/libcamera/base/flags.h
Deleted: /usr/local/include/libcamera/libcamera/base/object.h
Deleted: /usr/local/include/libcamera/libcamera/base/shared_fd.h
Deleted: /usr/local/include/libcamera/libcamera/base/signal.h
Deleted: /usr/local/include/libcamera/libcamera/base/span.h
Deleted: /usr/local/include/libcamera/libcamera/base/unique_fd.h
Deleted: /usr/local/include/libcamera/libcamera/ipa/ipa_controls.h
Deleted: /usr/local/include/libcamera/libcamera/ipa/ipa_interface.h
Deleted: /usr/local/include/libcamera/libcamera/ipa/ipa_module_info.h
Deleted: /usr/local/include/libcamera/libcamera/camera.h
Deleted: /usr/local/include/libcamera/libcamera/camera_manager.h
Deleted: /usr/local/include/libcamera/libcamera/color_space.h
Deleted: /usr/local/include/libcamera/libcamera/controls.h
Deleted: /usr/local/include/libcamera/libcamera/fence.h
Deleted: /usr/local/include/libcamera/libcamera/framebuffer.h
Deleted: /usr/local/include/libcamera/libcamera/framebuffer_allocator.h
Deleted: /usr/local/include/libcamera/libcamera/geometry.h
Deleted: /usr/local/include/libcamera/libcamera/logging.h
Deleted: /usr/local/include/libcamera/libcamera/orientation.h
Deleted: /usr/local/include/libcamera/libcamera/pixel_format.h
Deleted: /usr/local/include/libcamera/libcamera/request.h
Deleted: /usr/local/include/libcamera/libcamera/stream.h
Deleted: /usr/local/include/libcamera/libcamera/transform.h
Deleted: /usr/local/include/libcamera/libcamera/version.h
Deleted: /usr/local/lib/aarch64-linux-gnu/pkgconfig/libcamera-base.pc
Deleted: /usr/local/share/libcamera/pipeline/rpi/vc4/example.yaml
Deleted: /usr/local/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml
Deleted: /usr/local/share/libcamera/pipeline/rpi/pisp/example.yaml
Deleted: /usr/local/lib/aarch64-linux-gnu/pkgconfig/libcamera.pc
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx219.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx219_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx290.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx296.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx296_mono.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx378.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx477.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx477_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx477_scientific.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx519.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx708.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx708_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx708_wide.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/imx708_wide_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/ov5647.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/ov5647_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/ov64a40.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/ov9281_mono.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/se327m12.json
Deleted: /usr/local/share/libcamera/ipa/rpi/vc4/uncalibrated.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx219.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx219_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx296.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx296_mono.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx378.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx477.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx477_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx477_scientific.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx519.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx708.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx708_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx708_wide.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/imx708_wide_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/ov5647.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/ov5647_noir.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/ov64a40.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/ov9281_mono.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/se327m12.json
Deleted: /usr/local/share/libcamera/ipa/rpi/pisp/uncalibrated.json
Deleted: /usr/local/lib/aarch64-linux-gnu/python3.11/site-packages/libcamera/__init__.py
Deleted: /usr/local/bin/libcamerify
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera-base.so.0.2
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera-base.so
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera.so.0.2
Deleted: /usr/local/lib/aarch64-linux-gnu/libcamera.so

Uninstall finished.

Deleted: 94
Failed: 0

Remember that files created by custom scripts have not been removed.

Lets rebuild and document command / output!

command

rm -rf build

meson setup build --buildtype=release -Dpipelines=rpi/vc4,rpi/pisp -Dipas=rpi/vc4,rpi/pisp -Dv4l2=true -Dgstreamer=enabled -Dtest=false -Dlc-compliance=disabled -Dcam=disabled -Dqcam=disabled -Ddocumentation=disabled -Dpycamera=enabled

output:

The Meson build system
Version: 1.0.1
Source dir: /home/pi/dev/libcamera
Build dir: /home/pi/dev/libcamera/build
Build type: native build
Project name: libcamera
Project version: 0.2.0
C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0")
C linker for the host machine: cc ld.bfd 2.40
C++ compiler for the host machine: c++ (gcc 12.2.0 "c++ (Debian 12.2.0-14) 12.2.0")
C++ linker for the host machine: c++ ld.bfd 2.40
Host machine cpu family: aarch64
Host machine cpu: aarch64
Header "unistd.h" has symbol "issetugid" : NO
Header "locale.h" has symbol "locale_t" : YES
Header "stdlib.h" has symbol "secure_getenv" : YES
Compiler for C supports arguments -Wno-c99-designator: NO
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Found CMake: /usr/bin/cmake (3.25.1)
Run-time dependency lttng-ust found: NO (tried pkgconfig and cmake)
Program ./parser.py found: YES (/home/pi/dev/libcamera/utils/ipc/./parser.py)
Program ./generate.py found: YES (/home/pi/dev/libcamera/utils/ipc/./generate.py)
Program ./extract-docs.py found: YES (/home/pi/dev/libcamera/utils/ipc/./extract-docs.py)
Program ./gen-tp-header.py found: YES (/home/pi/dev/libcamera/utils/tracepoints/./gen-tp-header.py)
Configuring version.h using configuration
Program openssl found: YES (/usr/bin/openssl)
Library atomic found: YES
Run-time dependency threads found: YES
Run-time dependency libdw found: YES 0.188
Run-time dependency libunwind found: YES 1.6.2
Header "execinfo.h" has symbol "backtrace" : YES
Library rt found: YES
Run-time dependency libpisp found: YES 1.0.5
Checking for function "dlopen" : YES
Run-time dependency libudev found: YES 252
Run-time dependency yaml-0.1 found: NO (tried pkgconfig and cmake)
Run-time dependency gnutls found: YES 3.7.9

Executing subproject libyaml method cmake

libyaml| Found CMake: /usr/bin/cmake (3.25.1)

| Configuring the build directory with CMake version 3.25.1
| Running CMake with: -G Ninja -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_POSITION_INDEPENDENT_CODE=ON
|   - build directory:          /home/pi/dev/libcamera/build/subprojects/libyaml/__CMake_build
|   - source directory:         /home/pi/dev/libcamera/subprojects/libyaml
|   - toolchain file:           /home/pi/dev/libcamera/build/subprojects/libyaml/__CMake_build/CMakeMesonToolchainFile.cmake
|   - preload file:             /usr/lib/python3/dist-packages/mesonbuild/cmake/data/preload.cmake
|   - trace args:               --trace-expand --trace-format=json-v1 --no-warn-unused-cli --trace-redirect=cmake_trace.txt
|   - disabled policy warnings: [CMP0025, CMP0047, CMP0056, CMP0060, CMP0065, CMP0066, CMP0067, CMP0082, CMP0089, CMP0102]

| Running with expanded trace output on.
| Not searching for unused variables given on the command line.
| Trace will be written to cmake_trace.txt
| -- The C compiler identification is GNU 12.2.0
| -- 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
| -- Configuring done
| -- Generating done
| -- Build files have been written to: /home/pi/dev/libcamera/build/subprojects/libyaml/__CMake_build

libyaml| CMake configuration: SUCCEEDED
libyaml| CMake project yaml has 42 build targets.

cmake-ast| Processing generated meson AST
cmake-ast| Build file: /home/pi/dev/libcamera/build/subprojects/libyaml/meson.build

libyaml| Project name: yaml
libyaml| Project version: undefined
libyaml| C compiler for the host machine: cc (gcc 12.2.0 "cc (Debian 12.2.0-14) 12.2.0")
libyaml| C linker for the host machine: cc ld.bfd 2.40
libyaml| Build targets in project: 66
libyaml| Subproject libyaml finished.

Dependency libexif skipped: feature android disabled
Dependency libjpeg skipped: feature android disabled
Dependency libevent_pthreads skipped: feature cam disabled
Dependency libevent_pthreads skipped: feature lc-compliance disabled
Run-time dependency libtiff-4 found: YES 4.5.0
Dependency gtest skipped: feature lc-compliance disabled
Dependency qt5 (modules: Core, Gui, Widgets) skipped: feature qcam disabled
Run-time dependency glib-2.0 found: YES 2.74.6
Run-time dependency gstreamer-video-1.0 found: YES 1.22.0
Run-time dependency gstreamer-allocators-1.0 found: YES 1.22.0
Run-time dependency python3 found: YES 3.11
Run-time dependency pybind11 found: YES 2.10.3
Configuring libcamerify using configuration
Program doxygen skipped: feature documentation disabled
Program dot skipped: feature documentation disabled
Program sphinx-build-3 found: NO
Program sphinx-build skipped: feature documentation disabled
Configuring config.h using configuration
Program python3 (jinja2, ply, jinja2, yaml) found: YES (/usr/bin/python3) modules: jinja2, ply, jinja2, yaml
Build targets in project: 89

libcamera 0.2.0

  Versions
    Sources                  : 0.2.0+120-eb00c13d-dirty (2024-05-20T10:46:59+02:00)

  Paths
    LIBCAMERA_DATA_DIR       : "/usr/local/share/libcamera"
    LIBCAMERA_SYSCONF_DIR    : "/usr/local/etc/libcamera"
    IPA_PROXY_DIR            : "/usr/local/libexec/libcamera"
    IPA_CONFIG_DIR           : "/usr/local/etc/libcamera/ipa:/usr/local/share/libcamera/ipa"
    IPA_MODULE_DIR           : "/usr/local/lib/aarch64-linux-gnu/libcamera"

  Configuration
    SoftISP support          : False
    IPA modules signed with  : gnutls
    Enabled pipelines        : rpi/vc4
                               rpi/pisp
    Enabled IPA modules      : rpi/vc4
                               rpi/pisp
    Controls files           : control_ids_draft.yaml
                               control_ids_core.yaml
                               control_ids_rpi.yaml
    Properties files         : property_ids_draft.yaml
                               property_ids_core.yaml
    Hotplug support          : YES
    Tracing support          : NO
    Android support          : NO
    GStreamer support        : YES
    Python bindings          : YES
    V4L2 emulation support   : YES
    cam application          : NO
    qcam application         : NO
    lc-compliance application: NO
    Unit tests               : NO

  Subprojects
    libyaml                  : YES

  User defined options
    buildtype                : release
    cam                      : disabled
    documentation            : disabled
    gstreamer                : enabled
    ipas                     : rpi/vc4,rpi/pisp
    lc-compliance            : disabled
    pipelines                : rpi/vc4,rpi/pisp
    pycamera                 : enabled
    qcam                     : disabled
    test                     : false
    v4l2                     : true

Found ninja-1.11.1 at /usr/bin/ninja

command

ninja -C build

output:

ninja: Entering directory `build'
[15/207] Generating src/ipa-priv-key with a custom command
.+......+.....+.............+..+.......+........+..........+.....+....+...+..+.+..+............+.+........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+...........+.+.....+.......+..+...+.+.................+.........+.+..+.......+.....+...+......+.+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*...+........+....+...+..+......+...+....+.....+...+....+..............+.+...+...+...+..+.......+...+..+.+.................+....+...+..+.............+..+....+.....+......+......+....+.....................+..+......+......+...+......+.+........+............+...+...+...+..........+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
..+.+...............+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.......+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..............+.+..+.........+.........+.+.....+.+............+...+...+...........+...+.............+........+....+......+...............+.....+......+.+..+...+...+.......+.....+.......+..+.+.....+....+.....+........................+.+.....+.........+.+......+..+...+...+.......+.....+...+....+..+...............+.+...+.........+....................+...+............+...............+.+......+...............+...+..+.+.................+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[46/207] Generating src/libcamera/ipa_pub_key_cpp with a custom command
writing RSA key
[207/207] Linking target src/py/libcamera/_libcamera.so

command

sudo ninja -C build install

output:

ninja: Entering directory `build'
[4/5] Installing files.
Installing include/libcamera/ipa/core_ipa_interface.h to /usr/local/include/libcamera/libcamera/ipa
Installing include/libcamera/ipa/raspberrypi_ipa_interface.h to /usr/local/include/libcamera/libcamera/ipa
Installing include/libcamera/control_ids.h to /usr/local/include/libcamera/libcamera
Installing include/libcamera/property_ids.h to /usr/local/include/libcamera/libcamera
Installing include/libcamera/formats.h to /usr/local/include/libcamera/libcamera
Installing include/libcamera/libcamera.h to /usr/local/include/libcamera/libcamera
Installing src/libcamera/base/libcamera-base.so.0.2.0 to /usr/local/lib/aarch64-linux-gnu
Installing subprojects/libyaml/libyaml.a to /usr/local/lib
Installing src/libcamera/libcamera.so.0.2.0 to /usr/local/lib/aarch64-linux-gnu
Installing src/libcamera/proxy/worker/raspberrypi_ipa_proxy to /usr/local/libexec/libcamera
Installing src/ipa/rpi/vc4/ipa_rpi_vc4.so to /usr/local/lib/aarch64-linux-gnu/libcamera
Installing src/ipa/rpi/pisp/ipa_rpi_pisp.so to /usr/local/lib/aarch64-linux-gnu/libcamera
Installing src/gstreamer/libgstlibcamera.so to /usr/local/lib/aarch64-linux-gnu/gstreamer-1.0
Installing src/py/libcamera/_libcamera.so to /usr/local/lib/aarch64-linux-gnu/python3.11/site-packages/libcamera
Installing src/v4l2/v4l2-compat.so to /usr/local/libexec/libcamera
Installing /home/pi/dev/libcamera/include/libcamera/base/bound_method.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/class.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/compiler.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/flags.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/object.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/shared_fd.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/signal.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/span.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/base/unique_fd.h to /usr/local/include/libcamera/libcamera/base/
Installing /home/pi/dev/libcamera/include/libcamera/ipa/ipa_controls.h to /usr/local/include/libcamera/libcamera/ipa/
Installing /home/pi/dev/libcamera/include/libcamera/ipa/ipa_interface.h to /usr/local/include/libcamera/libcamera/ipa/
Installing /home/pi/dev/libcamera/include/libcamera/ipa/ipa_module_info.h to /usr/local/include/libcamera/libcamera/ipa/
Installing /home/pi/dev/libcamera/include/libcamera/camera.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/camera_manager.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/color_space.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/controls.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/fence.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/framebuffer.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/framebuffer_allocator.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/geometry.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/logging.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/orientation.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/pixel_format.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/request.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/stream.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/include/libcamera/transform.h to /usr/local/include/libcamera/libcamera/
Installing /home/pi/dev/libcamera/build/include/libcamera/version.h to /usr/local/include/libcamera/libcamera
Installing /home/pi/dev/libcamera/build/meson-private/libcamera-base.pc to /usr/local/lib/aarch64-linux-gnu/pkgconfig
Installing /home/pi/dev/libcamera/src/libcamera/pipeline/rpi/vc4/data/example.yaml to /usr/local/share/libcamera/pipeline/rpi/vc4
Installing /home/pi/dev/libcamera/src/libcamera/pipeline/rpi/vc4/data/rpi_apps.yaml to /usr/local/share/libcamera/pipeline/rpi/vc4
Installing /home/pi/dev/libcamera/src/libcamera/pipeline/rpi/pisp/data/example.yaml to /usr/local/share/libcamera/pipeline/rpi/pisp
Installing /home/pi/dev/libcamera/build/meson-private/libcamera.pc to /usr/local/lib/aarch64-linux-gnu/pkgconfig
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx219.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx219_noir.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx290.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx296.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx296_mono.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx378.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx477.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx477_noir.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx477_scientific.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx519.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx708.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx708_noir.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx708_wide.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/imx708_wide_noir.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/ov5647.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/ov5647_noir.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/ov64a40.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/ov9281_mono.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/se327m12.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/vc4/data/uncalibrated.json to /usr/local/share/libcamera/ipa/rpi/vc4
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx219.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx219_noir.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx296.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx296_mono.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx378.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx477.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx477_noir.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx477_scientific.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx519.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx708.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx708_noir.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx708_wide.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/imx708_wide_noir.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/ov5647.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/ov5647_noir.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/ov64a40.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/ov9281_mono.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/se327m12.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/ipa/rpi/pisp/data/uncalibrated.json to /usr/local/share/libcamera/ipa/rpi/pisp
Installing /home/pi/dev/libcamera/src/py/libcamera/__init__.py to /usr/local/lib/aarch64-linux-gnu/python3.11/site-packages/libcamera
Installing /home/pi/dev/libcamera/build/src/v4l2/libcamerify to /usr/local/bin
Installing symlink pointing to libcamera-base.so.0.2.0 to /usr/local/lib/aarch64-linux-gnu/libcamera-base.so.0.2
Installing symlink pointing to libcamera-base.so.0.2 to /usr/local/lib/aarch64-linux-gnu/libcamera-base.so
Installing symlink pointing to libcamera.so.0.2.0 to /usr/local/lib/aarch64-linux-gnu/libcamera.so.0.2
Installing symlink pointing to libcamera.so.0.2 to /usr/local/lib/aarch64-linux-gnu/libcamera.so
Running custom install script '/home/pi/dev/libcamera/src/ipa/ipa-sign-install.sh /home/pi/dev/libcamera/build/src/ipa-priv-key.pem lib/aarch64-linux-gnu/libcamera/ipa_rpi_vc4.so lib/aarch64-linux-gnu/libcamera/ipa_rpi_pisp.so'

now ready to test again

command:

meson devenv -C build
gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesink

output:

[libcamera] pi@raspberrypi:~/dev/libcamera/build $ gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesin
WARNING: erroneous pipeline: no element "glimagesin"
[libcamera] pi@raspberrypi:~/dev/libcamera/build $ gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesink
Setting pipeline to PAUSED ...
[3:25:39.570575701] [38147]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/home/pi/dev/libcamera/build/src/ipa' to the IPA search path
[3:25:39.571461830] [38147]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d-dirty (2024-05-20T10:51:42+02:00)
[3:25:39.581825195] [38154]  INFO RPI pisp.cpp:695 libpisp version v1.0.5 999da5acb4f4 15-05-2024 (17:07:49)
[3:25:39.669400259] [38154]  INFO IPAProxy ipa_proxy.cpp:130 libcamera is not installed. Loading IPA configuration from '/home/pi/dev/libcamera/src/ipa/rpi/pisp/data'
[3:25:39.678722254] [38154]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media3 and ISP device /dev/media1 using PiSP variant BCM2712_C0
Pipeline is live and does not need PREROLL ...
Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayGBM\)\ gldisplaygbm0";
[3:25:39.679508864] [38158]  WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format RPBP
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[3:25:40.966903873] [38158] ERROR Camera camera.cpp:1171 Can't configure camera with invalid configuration
ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Failed to configure camera: Invalid argument
Additional debug info:
../src/gstreamer/gstlibcamerasrc.cpp(446): gst_libcamera_src_negotiate (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0:
Camera::configure() failed with error code -22
Execution ended after 0:00:01.287573342
ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error.
Setting pipeline to NULL ...
Additional debug info:
../src/gstreamer/gstlibcamerasrc.cpp(645): gst_libcamera_src_task_enter (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0:
streaming stopped, reason not-negotiated (-4)
Freeing pipeline ...

and

ldd `which rpicam-hello` | grep libcamera

still comes back with

[libcamera] pi@raspberrypi:~/dev/libcamera/build $ ldd `which rpicam-hello` | grep libcamera
        libcamera.so.0.2 => /home/pi/dev/libcamera/build/src/libcamera/libcamera.so.0.2 (0x00007ffed5360000)
        libcamera-base.so.0.2 => /home/pi/dev/libcamera/build/src/libcamera/base/libcamera-base.so.0.2 (0x00007ffed5310000)
naushir commented 1 month ago

meson devenv -C build

I'm not entirely familiar with what this does. Can you try running rpicam-hello -t 0 without issuing the meson devenv command to start with, and let me know if that starts a simple preview window?

yazzr commented 1 month ago

rpicam-hello -t 0 creates preview and this is the output:

1:26:12.838390762] [26683]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+120-eb00c13d-dirty (2024-05-20T13:11:33+02:00)
[1:26:12.850501136] [26684]  INFO RPI pisp.cpp:695 libpisp version v1.0.5 999da5acb4f4 15-05-2024 (17:07:49)
[1:26:12.966958405] [26684]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media0 and ISP device /dev/media2 using PiSP variant BCM2712_C0
Made X/EGL preview window
[1:26:13.604999850] [26683]  WARN V4L2 v4l2_pixelformat.cpp:344 Unsupported V4L2 pixel format RPBP
Mode selection for 2304:1296:12:P
    SRGGB10_CSI2P,1536x864/0 - Score: 3400
    SRGGB10_CSI2P,2304x1296/0 - Score: 1000
    SRGGB10_CSI2P,4608x2592/0 - Score: 1900
Stream configuration adjusted
[1:26:13.605233850] [26683]  INFO Camera camera.cpp:1183 configuring streams: (0) 2304x1296-YUV420 (1) 2304x1296-BGGR_PISP_COMP1
[1:26:13.605368257] [26684]  INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a - Selected sensor format: 2304x1296-SBGGR10_1X10 - Selected CFE format: 2304x1296-PC1B

meson devenv -C build

I'm not entirely familiar with what this does. Can you try running rpicam-hello -t 0 without issuing the meson devenv command to start with, and let me know if that starts a simple preview window?

I got the meson devenv -C build command from https://github.com/raspberrypi/libcamera?tab=readme-ov-file#using-gstreamer-plugin which says "To use the GStreamer plugin from the source tree, use the meson devenv command. This will create a new shell instance with the GST_PLUGIN_PATH"

without command meson devenv -C build, running gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! queue ! glimagesink

results in:

WARNING: erroneous pipeline: no element "libcamerasrc"

Sure enough the GST_PLUGIN_PATH is being set to /home/pi/dev/libcamera/build/src/gstreamer

naushir commented 1 month ago

Got it. I'm able to reproduce your error as well. I'll try to debug it and see what could be going wrong.

naushir commented 1 month ago

Would you be able to try the following pipeline and see if it works:

gst-launch-1.0 libcamerasrc camera-name="/base/axi/pcie@120000/rp1/i2c@88000/imx708@1a" ! 'video/x-raw,format=NV12' ! queue ! glimagesink

It seems that you must setup a stream format otherwise the gst component (or libcamera) gets quite upset.

yazzr commented 1 month ago

Thank you very much, that did it.

I wonder if the patch I applied raised this?

Would be great to default to one (and document that) - I should have run the streaming example also which includes the stream format . Maybe we can update the documentation with format=NV12 as below (https://github.com/raspberrypi/libcamera?tab=readme-ov-file#using-gstreamer-plugin)?

gst-launch-1.0 libcamerasrc ! 'video/x-raw,format=NV12,width=1280,height=720' ! \
     queue ! glimagesink

This is breaking in more complex workflows, e.g. I was setting up a WebRTC stream to AWS Kinesis using the C sdk and the culprit was the missing format

otherwise happy to close it

naushir commented 1 month ago

This document comes from the upstream libcamera repo. I will talk to them about updating the documentation, thanks!