kbingham / libcamera

libcamera - Making complex cameras easy. This is a personal fork, please use the upstream repository at https://git.libcamera.org/libcamera/libcamera.git/
https://libcamera.org
Other
167 stars 69 forks source link

CAP: Can't release HW buffer=1 (skipped frame): Cannot allocate memory #93

Open breakingflower opened 5 months ago

breakingflower commented 5 months ago

I'm running into a " CAP: Can't release HW buffer=1 (skipped frame): Cannot allocate memory" issue with libcamerify. It seems there is something happening with releasing memory. When I open the stream page I notice the first seconds images are changing, then the module breaks & starts errorring and can't restore itself.

A member at ustreamer mentions that this is an issue with libcamerify Can you please have a look at ustreamer #268 ? Copying below for your ease.

Original post

Setup

I'm getting the following on an RPI zero 2w and camera v3 noir: Device:

Steps to reproduce:

1) fresh install latest raspbian image 2) Do upgrades and install modules for ustreamer from their github page

sudo apt update && sudo apt -y upgrade
sudo apt install build-essential libevent-dev libjpeg-dev libbsd-dev git
git clone --depth=1 https://github.com/pikvm/ustreamer
cd ustreamer
make
sudo apt -y install libcamera-tools libcamera-v4l2
sudo modprobe bcm2835-v4l2
libcamerify ./ustreamer --host :: --encoder=m2m-image

Output:

pi@webcampi:~/ustreamer $ libcamerify ./ustreamer --host :: --encoder=m2m-image --debug
-- INFO  [220.678          ] -- Starting PiKVM uStreamer 6.7 ...
-- DEBUG [220.679          ] -- Installing SIGINT handler ...
-- DEBUG [220.679          ] -- Installing SIGTERM handler ...
-- DEBUG [220.679          ] -- Ignoring SIGPIPE ...
-- DEBUG [220.679          ] -- HTTP: Binding HTTP to [::]:8080 ...
-- INFO  [220.679          ] -- HTTP: Listening HTTP on [::]:8080
-- INFO  [220.680          ] -- Using V4L2 device: /dev/video0
-- INFO  [220.680          ] -- Using desired FPS: 0
-- INFO  [220.680          ] -- HTTP: Starting eventloop ...
-- DEBUG [220.680          ] -- CAP: Opening capture device ...
[0:03:40.681904693] [1439] ERROR IPAModule ipa_module.cpp:172 Symbol ipaModuleInfo not found
[0:03:40.682034484] [1439] ERROR IPAModule ipa_module.cpp:292 v4l2-compat.so: IPA module has no valid info
[0:03:40.682168024] [1439]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0+46-075b54d5
-- DEBUG [220.696          ] -- HTTP: Repeating exposed ...
[0:03:40.837625987] [1441]  WARN RPiSdn sdn.cpp:39 Using legacy SDN tuning - please consider moving SDN inside rpi.denoise
[0:03:40.843194123] [1441]  INFO RPI vc4.cpp:447 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media3 and ISP device /dev/media0
-- DEBUG [220.844          ] -- CAP: Capture device fd=8 opened
-- DEBUG [220.844          ] -- CAP: Querying device capabilities ...
-- INFO  [220.844          ] -- CAP: Using capture type: single-planar
-- INFO  [220.844          ] -- CAP: Using input channel: 0
-- DEBUG [220.845          ] -- CAP: Using TV standard: DEFAULT
-- DEBUG [220.845          ] -- CAP: Probing device format=YUYV, stride=1280, resolution=640x480 ...
[0:03:40.845366450] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:40.846031133] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [220.848          ] -- CAP: Using resolution: 640x480
-- INFO  [220.849          ] -- CAP: Using format: YUYV
-- DEBUG [220.849          ] -- CAP: Querying HW FPS ...
-- INFO  [220.849          ] -- CAP: Querying HW FPS changing is not supported
-- INFO  [220.849          ] -- CAP: Using IO method: MMAP
-- DEBUG [220.849          ] -- CAP: Requesting 5 device buffers for MMAP ...
[0:03:40.849082829] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:40.849748866] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [220.855          ] -- CAP: Requested 5 device buffers, got 5
-- DEBUG [220.856          ] -- CAP: Allocating device buffers ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=0 ...
-- DEBUG [220.856          ] -- CAP: Mapping device buffer=0 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=1 ...
-- DEBUG [220.856          ] -- CAP: Mapping device buffer=1 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=2 ...
-- DEBUG [220.856          ] -- CAP: Mapping device buffer=2 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=3 ...
-- DEBUG [220.856          ] -- CAP: Mapping device buffer=3 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=4 ...
-- DEBUG [220.856          ] -- CAP: Mapping device buffer=4 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=0 ...
-- DEBUG [220.856          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=1 ...
-- DEBUG [220.857          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=2 ...
-- DEBUG [220.857          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=3 ...
-- DEBUG [220.857          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=4 ...
-- DEBUG [220.857          ] -- CAP: Exporting device buffer=0 to DMA ...
-- DEBUG [220.857          ] -- CAP: Exporting device buffer=1 to DMA ...
-- DEBUG [220.857          ] -- CAP: Exporting device buffer=2 to DMA ...
-- DEBUG [220.857          ] -- CAP: Exporting device buffer=3 to DMA ...
-- DEBUG [220.857          ] -- CAP: Exporting device buffer=4 to DMA ...
-- INFO  [221.002          ] -- CAP: Capturing started
-- DEBUG [221.002          ] -- Preparing M2M-IMAGE encoder ...
-- INFO  [221.002          ] -- JPEG-0: Initializing encoder ...
-- INFO  [221.002          ] -- JPEG-1: Initializing encoder ...
-- INFO  [221.002          ] -- JPEG-2: Initializing encoder ...
-- INFO  [221.002          ] -- JPEG-3: Initializing encoder ...
-- INFO  [221.003          ] -- Using JPEG quality: 80%
-- INFO  [221.003          ] -- Creating pool JPEG with 4 workers ...
-- DEBUG [221.003          ] -- Hello! I am a worker jw-0 ^_^
-- DEBUG [221.003          ] -- Worker jw-0 waiting for a new job ...
-- DEBUG [221.003          ] -- Hello! I am a worker jw-1 ^_^
-- DEBUG [221.003          ] -- Worker jw-1 waiting for a new job ...
-- DEBUG [221.003          ] -- Hello! I am a worker jw-2 ^_^
-- DEBUG [221.003          ] -- Worker jw-2 waiting for a new job ...
-- DEBUG [221.003          ] -- Hello! I am a worker jw-3 ^_^
-- DEBUG [221.003          ] -- Worker jw-3 waiting for a new job ...
-- INFO  [221.004          ] -- Capturing ...
-- DEBUG [221.004          ] -- CAP: Calling select() on video device ...
-- DEBUG [221.250          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [221.251          ] -- CAP: Grabbing hw buffer ...
-- DEBUG [221.251          ] -- CAP: Grabbed HW buffer=0: bytesused=614400, grab_ts=221.229, latency=0.022, skipped=0
-- PERF  [221.251          ] -- A new second has come; captured_fps=0
-- DEBUG [221.251          ] -- CAP: Calling select() on video device ...
......
-- VERB  [227.263          ] -- Compressed new JPEG: size=12129, time=0.012, worker=jw-0, buffer=0
-- DEBUG [227.263          ] -- Worker jw-0 waiting for a new job ...
-- DEBUG [227.283          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [227.283          ] -- CAP: Grabbing hw buffer ...
-- DEBUG [227.284          ] -- CAP: Grabbed HW buffer=1: bytesused=614400, grab_ts=227.259, latency=0.025, skipped=0
-- DEBUG [227.284          ] -- CAP: Calling select() on video device ...
-- VERB  [227.284          ] -- Correcting pool's JPEG approx_job_time: 0.012 -> 0.012 (last_job_time=0.012)
-- VERB  [227.284          ] -- JPEG: Fluency: delay=0.003, grab_after=227.287
-- DEBUG [227.284          ] -- JPEG: Assigned new frame in buffer=1 to worker=jw-1
-- VERB  [227.284          ] -- Compressing JPEG using M2M-IMAGE: worker=jw-1, buffer=1
-- DEBUG [227.284          ] -- JPEG-1: Compressing new frame; force_key=0 ...
-- DEBUG [227.284          ] -- JPEG-1: Grabbing INPUT buffer ...
-- DEBUG [227.285          ] -- JPEG-1: Grabbed INPUT buffer=0
-- PERF  [227.285          ] -- JPEG: ##### Encoded JPEG exposed; worker=jw-0, latency=0.059
-- DEBUG [227.286          ] -- CAP: Releasing HW buffer=0 ...
-- DEBUG [227.287          ] -- CAP: HW buffer=0 released
-- DEBUG [227.289          ] -- HTTP: Updating exposed frame (online=1) ...
-- VERB  [227.289          ] -- HTTP: Exposed frame: online=1, exp_time=0.000000
-- DEBUG [227.291          ] -- JPEG-1: Sending (releasing) INPUT buffer ...
-- DEBUG [227.291          ] -- JPEG-1: Polling encoder ...
-- DEBUG [227.295          ] -- JPEG-1: Fetching OUTPUT buffer ...
-- DEBUG [227.295          ] -- JPEG-1: Releasing OUTPUT buffer=0 ...
-- VERB  [227.295          ] -- JPEG-1: Compressed new frame: size=12143, time=0.011, force_key=0
-- VERB  [227.295          ] -- Compressed new JPEG: size=12143, time=0.011, worker=jw-1, buffer=1
-- DEBUG [227.295          ] -- Worker jw-1 waiting for a new job ...
-- DEBUG [227.316          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [227.317          ] -- CAP: Grabbing hw buffer ...
-- DEBUG [227.317          ] -- CAP: Grabbed HW buffer=2: bytesused=614400, grab_ts=227.293, latency=0.024, skipped=0
-- DEBUG [227.317          ] -- CAP: Calling select() on video device ...
-- VERB  [227.317          ] -- Correcting pool's JPEG approx_job_time: 0.012 -> 0.012 (last_job_time=0.012)
-- VERB  [227.318          ] -- JPEG: Fluency: delay=0.003, grab_after=227.320
-- DEBUG [227.318          ] -- JPEG: Assigned new frame in buffer=2 to worker=jw-0
-- VERB  [227.318          ] -- Compressing JPEG using M2M-IMAGE: worker=jw-0, buffer=2
-- DEBUG [227.318          ] -- JPEG-0: Compressing new frame; force_key=0 ...
-- DEBUG [227.318          ] -- JPEG-0: Grabbing INPUT buffer ...
-- PERF  [227.319          ] -- JPEG: ##### Encoded JPEG exposed; worker=jw-1, latency=0.060
-- DEBUG [227.319          ] -- JPEG-0: Grabbed INPUT buffer=0
-- DEBUG [227.320          ] -- CAP: Releasing HW buffer=1 ...
-- DEBUG [227.320          ] -- CAP: HW buffer=1 released
-- DEBUG [227.321          ] -- HTTP: Updating exposed frame (online=1) ...
-- VERB  [227.321          ] -- HTTP: Exposed frame: online=1, exp_time=0.000000
-- DEBUG [227.325          ] -- JPEG-0: Sending (releasing) INPUT buffer ...
-- DEBUG [227.325          ] -- JPEG-0: Polling encoder ...
-- DEBUG [227.329          ] -- JPEG-0: Fetching OUTPUT buffer ...
-- DEBUG [227.329          ] -- JPEG-0: Releasing OUTPUT buffer=0 ...
-- VERB  [227.329          ] -- JPEG-0: Compressed new frame: size=12163, time=0.011, force_key=0
-- VERB  [227.329          ] -- Compressed new JPEG: size=12163, time=0.011, worker=jw-0, buffer=2
-- DEBUG [227.330          ] -- Worker jw-0 waiting for a new job ...
-- DEBUG [227.350          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [227.350          ] -- CAP: Grabbing hw buffer ...
-- ERROR [227.350          ] -- CAP: Can't grab HW buffer: Resource temporarily unavailable
-- INFO  [227.422          ] -- Destroying workers pool JPEG ...
-- DEBUG [227.422          ] -- Bye-bye (worker jw-0)
-- DEBUG [227.422          ] -- Bye-bye (worker jw-1)
-- DEBUG [227.423          ] -- Bye-bye (worker jw-2)
-- DEBUG [227.423          ] -- Bye-bye (worker jw-3)
-- DEBUG [227.423          ] -- CAP: Calling VIDIOC_STREAMOFF ...
-- DEBUG [227.437          ] -- CAP: Releasing HW buffers ...
-- INFO  [227.440          ] -- CAP: Capturing stopped
================================================================================
-- DEBUG [227.440          ] -- CAP: Opening capture device ...
-- DEBUG [227.441          ] -- CAP: Capture device fd=8 opened
-- DEBUG [227.441          ] -- CAP: Querying device capabilities ...
-- INFO  [227.441          ] -- CAP: Using capture type: single-planar
-- INFO  [227.441          ] -- CAP: Using input channel: 0
-- DEBUG [227.441          ] -- CAP: Using TV standard: DEFAULT
-- DEBUG [227.442          ] -- CAP: Probing device format=YUYV, stride=1280, resolution=640x480 ...
[0:03:47.442769705] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:47.445020992] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [227.447          ] -- CAP: Using resolution: 640x480
-- INFO  [227.448          ] -- CAP: Using format: YUYV
-- DEBUG [227.448          ] -- CAP: Querying HW FPS ...
-- INFO  [227.448          ] -- CAP: Querying HW FPS changing is not supported
-- INFO  [227.448          ] -- CAP: Using IO method: MMAP
-- DEBUG [227.448          ] -- CAP: Requesting 5 device buffers for MMAP ...
[0:03:47.448470916] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:47.449442680] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [227.458          ] -- CAP: Requested 5 device buffers, got 5
-- DEBUG [227.458          ] -- CAP: Allocating device buffers ...
-- DEBUG [227.458          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=0 ...
-- DEBUG [227.458          ] -- CAP: Mapping device buffer=0 ...
-- DEBUG [227.458          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=1 ...
-- DEBUG [227.458          ] -- CAP: Mapping device buffer=1 ...
-- DEBUG [227.458          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=2 ...
-- DEBUG [227.458          ] -- CAP: Mapping device buffer=2 ...
-- DEBUG [227.458          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=3 ...
-- DEBUG [227.459          ] -- CAP: Mapping device buffer=3 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=4 ...
-- DEBUG [227.459          ] -- CAP: Mapping device buffer=4 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=0 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=1 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=2 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=3 ...
-- DEBUG [227.459          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=4 ...
-- DEBUG [227.459          ] -- CAP: Exporting device buffer=0 to DMA ...
-- DEBUG [227.459          ] -- CAP: Exporting device buffer=1 to DMA ...
-- DEBUG [227.459          ] -- CAP: Exporting device buffer=2 to DMA ...
-- DEBUG [227.459          ] -- CAP: Exporting device buffer=3 to DMA ...
-- DEBUG [227.459          ] -- CAP: Exporting device buffer=4 to DMA ...
-- INFO  [227.583          ] -- CAP: Capturing started
-- DEBUG [227.583          ] -- Preparing M2M-IMAGE encoder ...
-- INFO  [227.583          ] -- Using JPEG quality: 80%
-- INFO  [227.583          ] -- Creating pool JPEG with 4 workers ...
-- DEBUG [227.584          ] -- Hello! I am a worker jw-0 ^_^
-- DEBUG [227.584          ] -- Worker jw-0 waiting for a new job ...
-- DEBUG [227.584          ] -- Hello! I am a worker jw-1 ^_^
-- DEBUG [227.584          ] -- Worker jw-1 waiting for a new job ...
-- DEBUG [227.585          ] -- Hello! I am a worker jw-3 ^_^
-- DEBUG [227.585          ] -- Worker jw-3 waiting for a new job ...
-- DEBUG [227.585          ] -- Hello! I am a worker jw-2 ^_^
-- DEBUG [227.586          ] -- Worker jw-2 waiting for a new job ...
-- INFO  [227.586          ] -- Capturing ...
-- DEBUG [227.586          ] -- CAP: Calling select() on video device ...
-- DEBUG [227.613          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [227.613          ] -- CAP: Grabbing hw buffer ...
[0:03:47.613340982] [1439] ERROR V4L2Compat v4l2_camera_proxy.cpp:680 Failed to clear eventfd POLLIN
-- DEBUG [227.613          ] -- CAP: Dropped too small frame, assuming it was broken: buffer=1, bytesused=0
-- DEBUG [227.614          ] -- CAP: Releasing HW buffer=1 (broken frame) ...
[0:03:47.613772229] [1439] ERROR Request request.cpp:472 FrameBuffer already set for stream
[0:03:47.613892801] [1439] ERROR V4L2Compat v4l2_camera.cpp:259 Can't set buffer for request
-- ERROR [227.614          ] -- CAP: Can't release HW buffer=1 (broken frame): Cannot allocate memory
-- INFO  [227.686          ] -- Destroying workers pool JPEG ...
-- DEBUG [227.686          ] -- Bye-bye (worker jw-0)
-- DEBUG [227.686          ] -- Bye-bye (worker jw-1)
-- DEBUG [227.687          ] -- Bye-bye (worker jw-2)
-- DEBUG [227.687          ] -- Bye-bye (worker jw-3)
-- DEBUG [227.687          ] -- CAP: Calling VIDIOC_STREAMOFF ...
-- DEBUG [227.701          ] -- CAP: Releasing HW buffers ...
-- INFO  [227.704          ] -- CAP: Capturing stopped
================================================================================
-- DEBUG [227.706          ] -- CAP: Opening capture device ...
-- DEBUG [227.707          ] -- CAP: Capture device fd=8 opened
-- DEBUG [227.707          ] -- CAP: Querying device capabilities ...
-- INFO  [227.707          ] -- CAP: Using capture type: single-planar
-- INFO  [227.707          ] -- CAP: Using input channel: 0
-- DEBUG [227.707          ] -- CAP: Using TV standard: DEFAULT
-- DEBUG [227.707          ] -- CAP: Probing device format=YUYV, stride=1280, resolution=640x480 ...
[0:03:47.708395174] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:47.709811206] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [227.712          ] -- CAP: Using resolution: 640x480
-- INFO  [227.712          ] -- CAP: Using format: YUYV
-- DEBUG [227.712          ] -- CAP: Querying HW FPS ...
-- INFO  [227.712          ] -- CAP: Querying HW FPS changing is not supported
-- INFO  [227.712          ] -- CAP: Using IO method: MMAP
-- DEBUG [227.712          ] -- CAP: Requesting 5 device buffers for MMAP ...
[0:03:47.712990975] [1439]  INFO Camera camera.cpp:1183 configuring streams: (0) 640x480-YUYV
[0:03:47.713875084] [1441]  INFO RPI vc4.cpp:611 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected unicam format: 1536x864-pBAA
-- INFO  [227.722          ] -- CAP: Requested 5 device buffers, got 5
-- DEBUG [227.723          ] -- CAP: Allocating device buffers ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=0 ...
-- DEBUG [227.723          ] -- CAP: Mapping device buffer=0 ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=1 ...
-- DEBUG [227.723          ] -- CAP: Mapping device buffer=1 ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=2 ...
-- DEBUG [227.723          ] -- CAP: Mapping device buffer=2 ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=3 ...
-- DEBUG [227.723          ] -- CAP: Mapping device buffer=3 ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QUERYBUF) for device buffer=4 ...
-- DEBUG [227.723          ] -- CAP: Mapping device buffer=4 ...
-- DEBUG [227.723          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=0 ...
-- DEBUG [227.724          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=1 ...
-- DEBUG [227.724          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=2 ...
-- DEBUG [227.724          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=3 ...
-- DEBUG [227.724          ] -- CAP: Calling us_xioctl(VIDIOC_QBUF) for buffer=4 ...
-- DEBUG [227.724          ] -- CAP: Exporting device buffer=0 to DMA ...
-- DEBUG [227.724          ] -- CAP: Exporting device buffer=1 to DMA ...
-- DEBUG [227.724          ] -- CAP: Exporting device buffer=2 to DMA ...
-- DEBUG [227.724          ] -- CAP: Exporting device buffer=3 to DMA ...
-- DEBUG [227.724          ] -- CAP: Exporting device buffer=4 to DMA ...
-- INFO  [227.857          ] -- CAP: Capturing started
-- DEBUG [227.857          ] -- Preparing M2M-IMAGE encoder ...
-- INFO  [227.857          ] -- Using JPEG quality: 80%
-- INFO  [227.858          ] -- Creating pool JPEG with 4 workers ...
-- DEBUG [227.858          ] -- Hello! I am a worker jw-0 ^_^
-- DEBUG [227.858          ] -- Worker jw-0 waiting for a new job ...
-- DEBUG [227.858          ] -- Hello! I am a worker jw-2 ^_^
-- DEBUG [227.859          ] -- Worker jw-2 waiting for a new job ...
-- DEBUG [227.859          ] -- Hello! I am a worker jw-1 ^_^
-- DEBUG [227.860          ] -- Hello! I am a worker jw-3 ^_^
-- DEBUG [227.860          ] -- Worker jw-3 waiting for a new job ...
-- DEBUG [227.860          ] -- Worker jw-1 waiting for a new job ...
-- INFO  [227.860          ] -- Capturing ...
-- DEBUG [227.860          ] -- CAP: Calling select() on video device ...
-- DEBUG [227.888          ] -- CAP: Device select() --> 1; has_read=1, has_error=0
-- DEBUG [227.888          ] -- CAP: Grabbing hw buffer ...
[0:03:47.888327480] [1439] ERROR V4L2Compat v4l2_camera_proxy.cpp:680 Failed to clear eventfd POLLIN
[0:03:47.888508729] [1439] ERROR V4L2Compat v4l2_camera_proxy.cpp:680 Failed to clear eventfd POLLIN
[0:03:47.888609562] [1439] ERROR Request request.cpp:472 FrameBuffer already set for stream
[0:03:47.888666228] [1439] ERROR V4L2Compat v4l2_camera.cpp:259 Can't set buffer for request
-- ERROR [227.889          ] -- CAP: Can't release HW buffer=1 (skipped frame): Cannot allocate memory
-- INFO  [227.960          ] -- Destroying workers pool JPEG ...
-- DEBUG [227.961          ] -- Bye-bye (worker jw-0)
-- DEBUG [227.961          ] -- Bye-bye (worker jw-1)
-- DEBUG [227.961          ] -- Bye-bye (worker jw-2)
-- DEBUG [227.961          ] -- Bye-bye (worker jw-3)
-- DEBUG [227.962          ] -- CAP: Calling VIDIOC_STREAMOFF ...
-- DEBUG [227.975          ] -- CAP: Releasing HW buffers ...
-- INFO  [227.978          ] -- CAP: Capturing stopped
================================================================================
-- DEBUG [227.979          ] -- CAP: Opening capture device ...
-- DEBUG [227.980          ] -- CAP: Capture device fd=8 opened
-- DEBUG [227.980          ] -- CAP: Querying device capabilities ...
-- INFO  [227.981          ] -- CAP: Using capture type: single-planar
-- INFO  [227.981          ] -- CAP: Using input channel: 0
-- DEBUG [227.981          ] -- CAP: Using TV standard: DEFAULT
-- DEBUG [227.981          ] -- CAP: Probing device format=YUYV, stride=1280, resolution=640x480 ...
shuoxinma4 commented 3 months ago

Exactly same hardware and result.

virtual-machinist commented 3 weeks ago

Having the same result with Raspberry Pi 5 + Pi Camera v3, also using ustreamer. The errors disappear for some time when the image changes somewhat (I turn the lighting off, wave my hand in front of the sensor, etc.), but then reappear.