we are developing a HW board that use Jetson Xavier NX. We are able to acquire images from a deserializer DS90UB954 using the 2 virtual channels.
Using the sensor in streaming mode all works fine. We are able to acquire using V4L2 or gst pipelines.
Using sensor in triggered mode locks gst capture but V4L2 no.
For explaining better
I set the sensor in triggered mode (no data will be sent out from the sensor)
I run the V4L2 pipeline that waits for a frame (forever, I suppose…)
I trigger 1 frame (externally, using a gpio to the sensor)
A frame arrives to the Xavier and a file is correctly saved
If I try the same with the gst pipeline, I see these logs
[gstreamer] gstCamera::Capture() -- a timeout occurred waiting for the next image buffer
[gstreamer] gstCamera::Capture() -- a timeout occurred waiting for the next image buffer
[gstreamer] gstCamera::Capture() -- a timeout occurred waiting for the next image buffer
received SIGINT
[gstreamer] gstCamera::Capture() -- a timeout occurred waiting for the next image buffer
video-viewer: shutting down...
[gstreamer] gstCamera -- stopping pipeline, transitioning to GST_STATE_NULL
CONSUMER: ERROR OCCURRED
I tryed also to run the pipeline when the sensor is streaming and after change to trigger mode and send a trigger to the sensor. The chain does not acquire anymore.
Actually, I work with @dusty_nv “video-viewer” pipeline, inside it calls a similar string.
Using V4L2, it waits forever. When I trigger 1 snaphot, it saves the frame and as I can see is good.
Using gst pipeline, it seems that doesn’t not listen the frames (of course, because they are not arriving), and it does not exit from this error situation even if I trigger or I set the sensor in continous mode.
it might be timed out by nvarguscamerasrc plugin, which by default waiting 2500ms for camera frames.
please try enabling Infinite Timeout Support for verificaiton.
BTW,
may I know which Jetpack release version you’re working with?
A timeout failure should not reported if the infinite timeout support has enabled correctly.
could you please collect nvargus-daemon logs for checking.
for instance, $ sudo journalctl -b -u nvargus-daemon
videosystems@ubuntu:~$ sudo enableCamInfiniteTimeout=0 nvargus-daemon
[sudo] password for videosystems:
=== NVIDIA Libargus Camera Service (0.98.3)=== Listening for connections...=== video-viewer[10122]: Connection established (7FA4CDE1D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module3
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
=== video-viewer[10122]: CameraProvider initialized (0x7fa08a3580)LSC: LSC surface is not based on full res!
with enableCamInfiniteTimeout=1
=== NVIDIA Libargus Camera Service (0.98.3)=== Listening for connections...=== video-viewer[10202]: Connection established (7FB0DDD1D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module3
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
=== video-viewer[10202]: CameraProvider initialized (0x7fac821180)LSC: LSC surface is not based on full res!
PowerServiceCore:handleRequests: timePassed = 6417
PowerServiceCore:handleRequests: timePassed = 767
PowerServiceCore:handleRequests: timePassed = 664
PowerServiceCore:handleRequests: timePassed = 585
PowerServiceCore:handleRequests: timePassed = 591
PowerServiceCore:handleRequests: timePassed = 497
PowerServiceCore:handleRequests: timePassed = 8750
So, every trigger it prints the last rows. If i resume the sensor to “continous” I face on the logs a lot of
(Argus) Error OverFlow: Too many pending events, ignoring new events (in src/api/EventProviderImpl.cpp, function addEvent(), line 158)
mmm I suppose that I have to enable something else because this command
sudo journalctl -b -u nvargus-daemon
shows only this
videosystems@ubuntu:~$ sudo journalctl -b -u nvargus-daemon
-- Logs begin at Thu 2023-03-02 13:58:02 CET, end at Fri 2024-11-08 09:52:37 CET. --
Nov 07 17:15:42 ubuntu systemd[1]: Started Argus daemon.
Nov 08 09:09:59 ubuntu systemd[1]: Stopping Argus daemon...
Nov 08 09:09:59 ubuntu nvargus-daemon[4672]: === NVIDIA Libargus Camera Service (0.98.3)=== Listening for connections...
Nov 08 09:09:59 ubuntu systemd[1]: Stopped Argus daemon.
could the parameters inside DTS influence in this behaviour? I have this configuration for the sensor. Maybe something in the parameters of framerate (eg, the minimum must be set to 0?)
Hello
yes I have to complete other test regarding other issues (not concerning camera’s development), I think I resume this topic next week, so I will come back as soon as possible.