ayufan / camera-streamer

High-performance low-latency camera streamer for Raspberry PI's
293 stars 46 forks source link

Using HQ Camera #59

Closed JoelBecker1998 closed 1 year ago

JoelBecker1998 commented 1 year ago

Hi,

there seems to be an issue with buffers when trying to use the HQ Camera and resolution 2028x1520.

I get this output:

pi@camerapi5:~ $ camera-streamer/tools/libcamera_camera.sh  --camera-type=libcamera --http-port=8081 --camera-width=2028 --camera-height=1520
++ nproc
+ make -j4
make: git: No such file or directory
make: git: No such file or directory
echo "#define GIT_VERSION \"\"\n#define GIT_REVISION \"\"" > version.h.tmp; \
        diff -u version.h version.h.tmp || mv version.h.tmp version.h; \
        rm -f version.h.tmp
make camera-streamer
make[1]: Entering directory '/home/pi/camera-streamer'
make[1]: 'camera-streamer' is up to date.
make[1]: Leaving directory '/home/pi/camera-streamer'
+ ./camera-streamer -camera-type=libcamera -camera-format=YUYV --camera-type=libcamera --http-port=8081 --camera-width=2028 --camera-height=1520
util/opts/opts.c: ?: Usage of '-camera-type=libcamera' is deprecated change to '--camera-type=libcamera'.
util/opts/opts.c: ?: Usage of '-camera-format=YUYV' is deprecated change to '--camera-format=YUYV'.
./camera-streamer Version:  ()
[13:35:26.846877852] [2032]  INFO Camera camera_manager.cpp:299 libcamera v0.0.4+22-923f5d70
[13:35:26.888702336] [2043]  INFO RPI raspberrypi.cpp:1476 Registered camera /base/soc/i2c0mux/i2c@1/imx477@1a to Unicam device /dev/media2 and ISP device /dev/media0
device/libcamera/device.cc: CAMERA: Device path=/base/soc/i2c0mux/i2c@1/imx477@1a opened
[13:35:26.889826061] [2032]  INFO Camera camera.cpp:1028 configuring streams: (0) 1920x1439-YUYV
[13:35:26.890198666] [2043]  INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
[13:35:26.892565669] [2032]  INFO Camera camera.cpp:1028 configuring streams: (0) 1920x1439-YUYV (1) 2028x1520-SBGGR12_CSI2P
[13:35:26.892905368] [2043]  INFO RPI raspberrypi.cpp:851 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
device/buffer_list.c: CAMERA:capture: Using: 1920x1439/YUYV, buffers=3, bytesperline=3840, sizeimage=0.0MiB
device/buffer_list.c: CAMERA:capture: Opened 3 buffers. Memory used: 15.8 MiB
device/buffer_list.c: CAMERA:capture:1: Using: 2028x1520/BG12, buffers=3, bytesperline=3072, sizeimage=0.0MiB
device/buffer_list.c: CAMERA:capture:1: Opened 3 buffers. Memory used: 13.4 MiB
device/v4l2/device.c: SNAPSHOT: Device path=/dev/video31 fd=40 opened
device/v4l2/buffer_list.c: SNAPSHOT:output:mplane: Requested resolution=1920x1439 is unavailable. Got 1920x1440.
device/buffer_list.c: SNAPSHOT:output:mplane: Using: 1920x1408/YUYV, buffers=3, bytesperline=3840, sizeimage=5.2MiB
device/buffer_list.c: SNAPSHOT:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
device/buffer_list.c: SNAPSHOT:capture:mplane: Using: 1920x1408/JPEG, buffers=3, bytesperline=0, sizeimage=4.0MiB
device/buffer_list.c: SNAPSHOT:capture:mplane: Opened 3 buffers. Memory used: 12.0 MiB
device/v4l2/device.c: VIDEO: Device path=/dev/video11 fd=44 opened
device/buffer_list.c: VIDEO:output:mplane: Using: 1920x1439/YUYV, buffers=3, bytesperline=3840, sizeimage=5.3MiB
device/buffer_list.c: VIDEO:output:mplane: Opened 3 buffers. Memory used: 0.0 MiB
device/buffer_list.c: VIDEO:capture:mplane: Using: 1920x1439/H264, buffers=3, bytesperline=0, sizeimage=0.8MiB
device/buffer_list.c: VIDEO:capture:mplane: Opened 3 buffers. Memory used: 2.2 MiB
device/device.c: CAMERA: Setting frame interval_us=0 for FPS=30
device/v4l2/device_options.c: SNAPSHOT: Configuring option compressionquality (009d0903) = 80
device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 1
device/v4l2/device_options.c: VIDEO: Configuring option videobitratemode (009909ce) = 0
device/v4l2/device_options.c: VIDEO: Configuring option videobitrate (009909cf) = 2000000
device/v4l2/device_options.c: VIDEO: Configuring option repeatsequenceheader (009909e2) = 5000000
device/v4l2/device_options.c: VIDEO: Configuring option h264iframeperiod (00990a66) = 30
device/v4l2/device_options.c: VIDEO: Configuring option h264level (00990a67) = 11
device/v4l2/device_options.c: VIDEO: Configuring option h264profile (00990a6b) = 4
device/v4l2/device_options.c: VIDEO: Configuring option h264minimumqpvalue (00990a61) = 16
device/v4l2/device_options.c: VIDEO: Configuring option h264maximumqpvalue (00990a62) = 32
device/links.c: ?: Link 0: CAMERA:capture[1920x1439/YUYV/3] => [SNAPSHOT:output:mplane[1920x1408/YUYV/3], VIDEO:output:mplane[1920x1439/YUYV/3]]
device/links.c: ?: Link 1: SNAPSHOT:capture:mplane[1920x1408/JPEG/3] => [SNAPSHOT-CAPTURE, STREAM-CAPTURE]
device/links.c: ?: Link 2: VIDEO:capture:mplane[1920x1439/H264/3] => [VIDEO-CAPTURE]
device/buffer_list.c: CAMERA:capture: Streaming started... Was 0 of 3 enqueud
device/buffer_list.c: SNAPSHOT:output:mplane: Streaming started... Was 0 of 3 enqueud
device/v4l2/buffer_list.c: VIDEO:output:mplane: ioctl(ret=-1, errno=3): Cannot set streaming state
device/links.c: VIDEO:output:mplane: Failed to start streaming
[13:35:27.474752683] [2032] ERROR Camera camera.cpp:547 Camera in Running state trying release() requiring state between Available and Configured
[13:35:27.475145344] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video0[23:cap]: Unable to request 0 buffers: Device or resource busy
[13:35:27.475227787] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video1[24:cap]: Unable to request 0 buffers: Device or resource busy
[13:35:27.475296638] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video13[25:out]: Unable to request 0 buffers: Device or resource busy
[13:35:27.475349896] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video14[26:cap]: Unable to request 0 buffers: Device or resource busy
[13:35:27.475425340] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video15[27:cap]: Unable to request 0 buffers: Device or resource busy
[13:35:27.475511302] [2043] ERROR V4L2 v4l2_videodevice.cpp:1241 /dev/video16[28:cap]: Unable to request 0 buffers: Device or resource busy
terminate called without an active exception
camera-streamer/tools/libcamera_camera.sh: line 11:  2032 Aborted                 $GDB ./camera-streamer -camera-type=libcamera -camera-format=YUYV "$@"

Any idea what causes this? It works with 1920x1080p, libcamera also shows 2028x1520p as an available option.

JoelBecker1998 commented 1 year ago

I'll leave this here so it might help someone else: Also specifiying --camera-video.height=1080 works, which is a bit weird as with PiCam M3 it does this automatically.