ustreamer icon indicating copy to clipboard operation
ustreamer copied to clipboard

Pi2Z, PiHQ Cam --> ERROR [349.260 stream] -- Can't grab device buffer: Resource temporarily unavailable

Open pterodyne opened this issue 2 years ago • 1 comments

Im having some issues getting ustreamer working with a Pi2Zero. Ive found that I can't make it work at all without libcamerify, but that does work. It just keeps dropping out for some reason.

Start command I'm running:

libcamerify ustreamer --host :: --encoder=m2m-image

Here is the command line output:

libcamerify ustreamer --host :: --encoder=m2m-image
-- INFO  [342.632      main] -- Starting PiKVM uStreamer 5.48 ...
-- INFO  [342.632      main] -- Using internal blank placeholder
-- INFO  [342.633      main] -- Listening HTTP on [::]:8080
-- INFO  [342.634    stream] -- Using V4L2 device: /dev/video0
-- INFO  [342.634    stream] -- Using desired FPS: 0
================================================================================
-- INFO  [342.641      http] -- Starting HTTP eventloop ...
[0:05:42.645318948] [1330]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:05:42.708810673] [1332]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx477@1a to Unicam device /dev/media3 and ISP device /dev/media1
-- INFO  [342.710    stream] -- Device fd=8 opened
-- INFO  [342.710    stream] -- Using capture type: single-planar
-- INFO  [342.710    stream] -- Using input channel: 0
[0:05:42.711760556] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:42.712609526] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [342.716    stream] -- Using resolution: 640x480
-- INFO  [342.716    stream] -- Using format: YUYV
-- INFO  [342.716    stream] -- Querying HW FPS changing is not supported
-- INFO  [342.716    stream] -- Using IO method: MMAP
[0:05:42.717475163] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:42.718407155] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [342.726    stream] -- Requested 5 device buffers, got 5
-- INFO  [343.258    stream] -- Capturing started
-- INFO  [343.258    stream] -- JPEG-0: Initializing encoder ...
-- INFO  [343.258    stream] -- JPEG-1: Initializing encoder ...
-- INFO  [343.258    stream] -- JPEG-2: Initializing encoder ...
-- INFO  [343.258    stream] -- JPEG-3: Initializing encoder ...
-- INFO  [343.258    stream] -- Using JPEG quality: 80%
-- INFO  [343.258    stream] -- Creating pool JPEG with 4 workers ...
-- INFO  [343.259    stream] -- Capturing ...
-- INFO  [343.528      jw-0] -- JPEG-0: Configuring encoder: DMA=0 ...
-- INFO  [348.049      http] -- HTTP: NEW client (now=1): [::ffff:100.86.145.118]:35182, id=726199c70c68b766
-- ERROR [349.260    stream] -- Can't grab device buffer: Resource temporarily unavailable
-- INFO  [349.261    stream] -- Destroying workers pool JPEG ...
-- INFO  [349.272    stream] -- Capturing stopped
-- INFO  [349.273    stream] -- Device fd=8 closed
-- INFO  [349.273    stream] -- Changed video frame to BLANK
================================================================================
-- INFO  [349.274    stream] -- Device fd=8 opened
-- INFO  [349.275    stream] -- Using capture type: single-planar
-- INFO  [349.275    stream] -- Using input channel: 0
[0:05:49.275722040] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:49.276792886] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [349.279    stream] -- Using resolution: 640x480
-- INFO  [349.279    stream] -- Using format: YUYV
-- INFO  [349.279    stream] -- Querying HW FPS changing is not supported
-- INFO  [349.280    stream] -- Using IO method: MMAP
[0:05:49.280487355] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:49.282119770] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [349.288    stream] -- Requested 5 device buffers, got 5
-- INFO  [349.820    stream] -- Capturing started
-- INFO  [349.820    stream] -- Using JPEG quality: 80%
-- INFO  [349.820    stream] -- Creating pool JPEG with 4 workers ...
-- INFO  [349.821    stream] -- Capturing ...
[0:05:49.856603308] [1330] ERROR V4L2Compat v4l2_camera_proxy.cpp:680 Failed to clear eventfd POLLIN
[0:05:49.856732372] [1330] ERROR Request request.cpp:472 FrameBuffer already set for stream
[0:05:49.856795394] [1330] ERROR V4L2Compat v4l2_camera.cpp:259 Can't set buffer for request
-- ERROR [349.857    stream] -- Can't release device buffer=1 (broken frame): Cannot allocate memory
-- INFO  [349.857    stream] -- Destroying workers pool JPEG ...
-- INFO  [349.872    stream] -- Capturing stopped
-- INFO  [349.878    stream] -- Device fd=8 closed
================================================================================
-- INFO  [349.880    stream] -- Device fd=8 opened
-- INFO  [349.880    stream] -- Using capture type: single-planar
-- INFO  [349.880    stream] -- Using input channel: 0
[0:05:49.881702337] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:49.884114968] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [349.888    stream] -- Using resolution: 640x480
-- INFO  [349.888    stream] -- Using format: YUYV
-- INFO  [349.888    stream] -- Querying HW FPS changing is not supported
-- INFO  [349.888    stream] -- Using IO method: MMAP
[0:05:49.889209556] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:49.891272652] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [349.900    stream] -- Requested 5 device buffers, got 5
-- INFO  [350.439    stream] -- Capturing started
-- INFO  [350.439    stream] -- Using JPEG quality: 80%
-- INFO  [350.439    stream] -- Creating pool JPEG with 4 workers ...
-- INFO  [350.439    stream] -- Capturing ...
-- ERROR [351.610    stream] -- Can't grab device buffer: Resource temporarily unavailable
-- INFO  [351.610    stream] -- Destroying workers pool JPEG ...
-- INFO  [351.622    stream] -- Capturing stopped
-- INFO  [351.624    stream] -- Device fd=8 closed
-- INFO  [351.624    stream] -- Changed video frame to BLANK
================================================================================
-- INFO  [351.633    stream] -- Device fd=8 opened
-- INFO  [351.634    stream] -- Using capture type: single-planar
-- INFO  [351.635    stream] -- Using input channel: 0
[0:05:51.636789262] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:51.637963910] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [351.639    stream] -- Using resolution: 640x480
-- INFO  [351.640    stream] -- Using format: YUYV
-- INFO  [351.640    stream] -- Querying HW FPS changing is not supported
-- INFO  [351.640    stream] -- Using IO method: MMAP
[0:05:51.641159934] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:51.642342134] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [351.649    stream] -- Requested 5 device buffers, got 5
-- INFO  [352.194    stream] -- Capturing started
-- INFO  [352.195    stream] -- Using JPEG quality: 80%
-- INFO  [352.195    stream] -- Creating pool JPEG with 4 workers ...
-- INFO  [352.197    stream] -- Capturing ...
[0:05:52.230749960] [1330] ERROR V4L2Compat v4l2_camera_proxy.cpp:680 Failed to clear eventfd POLLIN
[0:05:52.230877930] [1330] ERROR Request request.cpp:472 FrameBuffer already set for stream
[0:05:52.230941368] [1330] ERROR V4L2Compat v4l2_camera.cpp:259 Can't set buffer for request
-- ERROR [352.231    stream] -- Can't release device buffer=1 (broken frame): Cannot allocate memory
-- INFO  [352.231    stream] -- Destroying workers pool JPEG ...
-- INFO  [352.246    stream] -- Capturing stopped
-- INFO  [352.253    stream] -- Device fd=8 closed
================================================================================
-- INFO  [352.255    stream] -- Device fd=8 opened
-- INFO  [352.255    stream] -- Using capture type: single-planar
-- INFO  [352.255    stream] -- Using input channel: 0
[0:05:52.256662265] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:52.259407554] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [352.262    stream] -- Using resolution: 640x480
-- INFO  [352.263    stream] -- Using format: YUYV
-- INFO  [352.263    stream] -- Querying HW FPS changing is not supported
-- INFO  [352.263    stream] -- Using IO method: MMAP
[0:05:52.263610984] [1330]  INFO Camera camera.cpp:1033 configuring streams: (0) 640x480-YUYV
[0:05:52.264863497] [1332]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
-- INFO  [352.274    stream] -- Requested 5 device buffers, got 5
-- INFO  [352.912    stream] -- Capturing started
-- INFO  [352.912    stream] -- Using JPEG quality: 80%
-- INFO  [352.912    stream] -- Creating pool JPEG with 4 workers ...
-- INFO  [352.913    stream] -- Capturing ...
^C-- INFO  [353.656      main] -- ===== Stopping by SIGINT =====
-- INFO  [353.656      http] -- HTTP eventloop stopped
-- INFO  [353.656    stream] -- Destroying workers pool JPEG ...
-- INFO  [353.668    stream] -- Capturing stopped
-- INFO  [353.670    stream] -- Device fd=8 closed
-- INFO  [353.671      main] -- JPEG-0: Destroying encoder ...
-- INFO  [353.680      main] -- JPEG-1: Destroying encoder ...
-- INFO  [353.680      main] -- JPEG-2: Destroying encoder ...
-- INFO  [353.680      main] -- JPEG-3: Destroying encoder ...
-- INFO  [353.680      main] -- Bye-bye

Any thoughts? Seems like the module is working fine. I tried upping the GPU memory to 128 but it still happens.

Thanks.

Bryan

pterodyne avatar Jan 25 '24 16:01 pterodyne

As far as I can tell, this is a problem on the libcamerify side. For some reason, it can't grab frames from your camera. Please contact Raspberry on their forum regarding libcamera, I think they have a better understanding of how this thing works.

mdevaev avatar Feb 03 '24 18:02 mdevaev