v4l2src gstv4l2bufferpool error

Nicolas Dufresne nicolas at ndufresne.ca
Tue Nov 17 19:16:55 UTC 2020


Le lundi 16 novembre 2020 à 14:50 -0600, Alfredo Salvarani a écrit :
> HI, Thanks for you replay.
> I'm afraid that the adv7482 driver might not be the only one doing someting
> wrog.
> This is the DMESG log when the error happen:
> 
> [ 5574.501147] tegra-vi4 15700000.vi: Status:  7 channel:00 frame:0001
> [ 5574.507639] tegra-vi4 15700000.vi:      timestamp sof 5585857446016 eof
> 5585862300544 data 0x00000001
> [ 5574.522908] tegra-vi4 15700000.vi:      capture_id 257 stream  4 vchan  0
> [ 5574.719479] tegra-vi4 15700000.vi: PXL_SOF syncpt timeout! err = -11
> [ 5574.726039] tegra-vi4 15700000.vi: tegra_channel_error_recovery:
> attempting to reset the capture channel
> [ 5574.736208] nvcsi 150c0000.nvcsi: csi4_stream_check_status (4)
> INTR_STATUS 0x00000008
> [ 5574.744130] nvcsi 150c0000.nvcsi: csi4_stream_check_status (4)
> ERR_INTR_STATUS 0x00000008
> [ 5574.756003] nvcsi 150c0000.nvcsi: csi4_stream_check_status (4)
> ERROR_STATUS2VI_VC0 = 0x00000004

So this is NVidia driver, not a mainline one. If I'm reading this
correctly, there is an internal error and it resets the driver behind
userspace back. Please raise this driver issue to them, GStreamer won't
be able to cope with such a driver failure.
> 0:00:05.345345460  8367   0x55885584a0 WARN          v4l2bufferpool
> gstv4l2bufferpool.c:1040:gst_v4l2_buffer_pool_poll:<v4l2src0> error: poll
> error 1: Resource temporarily unavailable (11)
> 0:00:05.345517901  8367   0x55885584a0 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:1268:gst_v4l2_buffer_pool_dqbuf:<v4l2src0:pool:src> poll
> error error
> 0:00:05.345562155  8367   0x55885584a0 WARN                 v4l2src
> gstv4l2src.c:998:gst_v4l2src_create:<v4l2src0> error: Failed to allocate a
> buffer
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not
> read from resource.
> 0:00:05.345679686  8367   0x55885584a0 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: Internal data stream
> error.
> Additional debug info:
> gstv4l2bufferpool.c(1040): gst_v4l2_buffer_pool_poll ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> poll error 1: Resource temporarily unavailable (11)
> 0:00:05.345730692  8367   0x55885584a0 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: streaming stopped,
> reason error (-5)

As you can read here, all operation on the driver FD returns EBUSY. To
make things worst, the error get caught and mangled by a libv4l2 plugin
(notice the lack of context prefix near the poll error.

If you fix the problem with the driver / libv4l2 plugin, GStreamer
should work as expected.

Nicolas



More information about the gstreamer-devel mailing list