I am attempting to read video data from a camera (the LI-IMX490-GW5400-FPDLINKIII from leopard imaging, if this is relevant) which I have plugged into my agx xavier through the NVCSI interface. When I attempt to run a gstreamer pipeline to use the data, no error is thrown, but the pipeline does not produce data.
This is the error message that I see when I consult dmesg
after running a gstreamer pipeline which uses video data from this camera:
[ 7520.401373] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
[ 7520.441342] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
[ 7520.481375] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
[ 7520.521436] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
[ 7520.561438] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
[ 7520.601464] tegra194-vi5 15c10000.vi: corr_err: discarding frame 0, flags: 0, err_data 256
with these messages being repeated at approx. 40ms intervals for the duration of the pipeline being run.
The simplest command I have tried which produces these error messages is:
gst-launch-1.0 v4l2src device="/dev/video6" ! video/x-raw, width=1920, height=1080, format=YUY2, framerate=30/1 ! fakesink
Looking through the kernel, I have traced the error to the function vi5_capture_dequeue
in the file nvidia/drivers/media/platform/tegra/camera/vi/vi5_fops.c
. It grabs a struct capture_descriptor
, and this struct seems to have an error (hence err_data
being 256). The struct is defined in nvidia/include/soc/tegra/camrtc-capture.h
, which seems to indicate that this value for err_data
is CAPTURE_STATUS_FLAG_ERROR_ATOMP_FRAME_TRUNCATED
. However, I don’t know what to do with that information.
Is there a way to resolve this error coming from the jetson drivers, and actually get video data from my camera?