GStreamer 1.19 + IMX462

I’ve been trying to get the IMX462 working with an updated version of GStreamer; v1.19.x. The older 1.14 versions of Gstreamer common with Raspberry Pi installs lacks features I need.

I’ve been struggling quite a bit to get the IMX462 working, although I’ve had a bit more luck recently than I was the other month. Everything seems to be working now, except I get a “bus error” when trying to run gstreamer with the IMX462

pi@raspberrypi:~/libcamera $  gst-launch-1.0 libcamerasrc ! 'video/x-raw,width=1920,height=1080' ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
[0:37:49.454078852] [619]  INFO Camera camera_manager.cpp:294 libcamera v0.0.0+2871-f3629363
[0:37:49.460516443] [623]  WARN CameraSensor camera_sensor.cpp:197 'arducam-pivariety 10-000c': Recommended V4L2 control 0x009a0922 not supported
[0:37:49.474575841] [623]  WARN CameraSensor camera_sensor.cpp:249 'arducam-pivariety 10-000c': The sensor kernel driver needs to be fixed
[0:37:49.474728185] [623]  WARN CameraSensor camera_sensor.cpp:251 'arducam-pivariety 10-000c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[0:37:49.481261661] [623]  WARN CameraSensorProperties camera_sensor_properties.cpp:123 No static properties available for 'arducam-pivariety'
[0:37:49.481427442] [623]  WARN CameraSensorProperties camera_sensor_properties.cpp:125 Please consider updating the camera sensor properties database
[0:37:49.481544577] [623]  WARN CameraSensor camera_sensor.cpp:403 'arducam-pivariety 10-000c': Failed to retrieve the camera location
[0:37:49.757421773] [623] ERROR IPAProxy ipa_proxy.cpp:149 Configuration file 'arducam-pivariety.json' not found for IPA module 'raspberrypi'
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

** (gst-launch-1.0:619): CRITICAL **: 11:12:59.930: gst_video_format_to_string: assertion 'format != GST_VIDEO_FORMAT_UNKNOWN' failed
[0:37:50.227738832] [626]  INFO Camera camera.cpp:870 configuring streams: (0) 1920x1080-NV21
[0:37:50.228388050] [623]  INFO RPI raspberrypi.cpp:121 Mode: 1920x1080 fmt RG10 Score: 1500 (best 1500)
[0:37:50.228588726] [623]  INFO RPI raspberrypi.cpp:121 Mode: 1920x1080 fmt pRAA Score: 1000 (best 1000)
[0:37:50.282012523] [623]  INFO RPI raspberrypi.cpp:619 Sensor: /base/soc/i2c0mux/i2c@1/arducam@0c - Selected mode: 1920x1080-pRAA
Bus error / 99:99:99.

I’m using a Raspberry Pi Zero 2 with kernel version: 5.10.63-v7+. I tried 5.15 and had no luck there.

I also had some success following the setup guide (section 2.2) when installing the arducam drivers: arducam[dot]com/docs/cameras-for-raspberry-pi/pivariety/how-to-install-kernel-driver-for-pivariety-camera/

For Libcamera I used:
libcamera: Give MappedFrameBuffer its own implementation · raspberrypi/libcamera@f362936 · GitHub (with supplied libcamera ipa patch applied as per the instructions)
github.com/raspberrypi/libcamera-apps/commit/6dfffe1c54c6870e2e486a4fcf037862ed95dc83

I’m not entirely sure if my config.txt is the best given I’m running a RPi Zero2, but the libcamera apps all seem to work. So while I can gst-inspect-1.0 libcamerasrc and all that, it just doesn’t want to run?

I’ve can get gstreamer working if I pipe from libcamera into it, bypassing libcamerasrc, but it’s not ideal. The follow for example does seem to result in a playable video file:

libcamera-vid --time 0 --width 1920 --height 1080 -o - | gst-launch-1.0 fdsrc fd=0 ! 'video/x-h264,width=1920,height=1080,framerate=30/1' ! filesink location="test.h264"

My /boot/config.txt contains:

dtparam=i2c_vc=on
disable_touchscreen=1
[pi3]
dtoverlay=pi3-disable-bt
[pi4]
max_framebuffers=2
dtoverlay=pi4-disable-bt
[all]
dtoverlay=vc4-fkms-v3d,cma=384
start_x=1
gpu_mem=128
force_turbo=1
dtoverlay=arducam
dtparam=i2c_arm=on

If anyone knows how I might be able to get the gstreamer plugin working, I’d love to know. I’d also love for there to be more dynamic controls added to it, so I can control exposure, white balance, and HDR while streaming.

Thank you for any input.

-steve