nvargus-daemon documentation ( or source code )

Hello,
When using a live camera source on either the MultiMedia API level or the gstreamer level ( CSI input) it appears that the only way to get input frames is by using the nvarguscamerasrc ( on the gstreamer level) or the Argus API at the multimedia level). Both these approaches require the use of the nvargus-daemon. I have looked around on the MultiMedia API documentation and this application/daemon is not documented anywhere. Is this documentation available or can the source code be made available.
Specific questions around this daemon are

  1. What purpose does this daemon provide in the use-case where there is a single camera (that could not be provided by a thread dequeing frames from a v4l2 device and enqueing said frames to downstream NvV4l2Element(s)
  2. I have noticed that sometimes when running a gstreamer pipeline that nvargus-daemon segfaults and must be re-started ( fairly frequently). I am not sure what the root cause of such seg-faults are. Is it possible to provide a method to debug the root cause of this issue.

Thanks
Victor

  1. You can build the multiple API sample code run along without daemon.
    Check the README.TXT to make the APP by cmake -DDISABLE_MULTIPROCESS=ON
1) Create the makefiles:
       'cmake ..'
     Additional options:
       - If CMake cannot find an include path for any dependencies, it may be
         required to provide them explicitly. Eg:
           'cmake -DOPENGLES_INCLUDE_DIR=/path/to/khronos/includes ..'
       - The DISABLE_MULTIPROCESS option may be provided to use the single-process
         Argus implementation (ie. does not require nvargus-daemon service):
           'cmake -DDISABLE_MULTIPROCESS=ON ..'
  1. Check if the fix from here help on the issue. https://devtalk.nvidia.com/default/topic/1070455/jetson-nano/bug-nvarguscamerasrc-segmentation-fault/post/5429630/#5429630