I try to run libcamera-vid with several camera modules at higher resolutions, but fail. Calling libcamera-still works as expected.
The behavior can be reproduced with several modules with OmniVision 5647, Sony IMX219 and IMX519 sensors. Trouble starts at 2592×1944. Image file can be generated, video cannot be started.
For example, using an IMX219 module, the command libcamera-vid -v -n --width 3280 --height 2464 --output - does not give any output and terminates immediately after being called:
[0:24:20.369130982] [1186] INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[0:24:20.500309865] [1187] WARN RPI raspberrypi.cpp:1357 Mismatch between Unicam and CamHelper for embedded data usage!
[0:24:20.504227416] [1187] INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx219@10 to Unicam device /dev/media3 and ISP device /dev/media0
Acquired camera /base/soc/i2c0mux/i2c@1/imx219@10
Configuring video...
[0:24:20.507309968] [1186] INFO Camera camera.cpp:1028 configuring streams: (0) 3280x2464-YUV420
[0:24:20.508741634] [1187] INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx219@10 - Selected sensor format: 3280x2464-SBGGR10_1X10 - Selected unicam format: 3280x2464-pBAA
Camera streams configured
Available controls:
[...]
Buffers allocated and mapped
Video setup complete
Opened H264Encoder on /dev/video11 as fd 24
Got 6 output buffers
Got 12 capture buffers
Closing Libcamera application(frames displayed 0, dropped 0)
Camera stopped!
Tearing down requests, buffers and configuration
Camera closed
ERROR: *** failed to start output streaming ***
Other resolutions up to 1920×1080 work fine, but 3280×2464 should be possible, no?
$ libcamera-vid --list-cameras
Available cameras
-----------------
0 : 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]
The camera is recognized at startup with a warning (which shows up for other image sensors as well):
$ dmesg | grep imx
[ 0.115807] platform 3f801000.csi: Fixed dependency cycle(s) with /soc/i2c0mux/i2c@1/imx219@10
[ 13.467359] imx219 10-0010: Consider updating driver imx219 to match on endpoints
I also tried to put
bcm2835-v4l2
# enable higher-resolution video
options bcm2835-v4l2 max_video_width=3240 max_video_height=2464
to /etc/modules-load.d/rpi-camera.conf as suggested
here, but without any noticeable change.
However, libcamera-still -n --width 3280 --height 2464 -n -o /tmp/foo.bar gives the expected JPEG image file with full resolution.
OS: Raspberry Pi OS bullseye 64bit lite, Raspi 3B, libcamera-apps-lite version git20230301+54a781d, libcamera0 version git20230302+923f5d70-1.