I’m using TX2NX (but I think this is applied for all Jetson platforms), JP 4.6.2.
I’m developing a application which reading buffer from image sensor using libargus. It is similar to 10_camera_recording sample, but having more threads for different processing and capable to stop reading then start again with same run.
I use one instance of CameraProvider for whole app, but done a full initialization & deinitialization for a reading session (initialize when start reading, deinit all when stop reading).
It works fine, except this warning when the app quits:
WARNING Argus: 2 client objects still exist during shutdown:
547568700216 (0x7f78001248)
547572456544 (0x7f7c003820)
Looks like something is not completely cleared.
How do I know what is remaining to be clean? Is there any log in nvargus-daemon can show likes a list of objects that are not destroyed when the app quits?
Please see argus-daemon log with enableCamScfLogs=5 and enableCamPclLogs=5. argus-output.log (1.3 MB)
My test app is start & stop camera reading 4 times. I referenced from gst-nvarguscamerasrc code. My app quit internally after test finished (I also have Ctrl+C signal catching and deinitialize everything same as test finished).
When my test app quits, I saw this warning:
INF 00505: argusThreadHandler() RDR Argus thread FINISHED
DBG 00090: setRunning() IBI set to stop 1 -> 0 1 0x5586579ec0
DBG 00062: ~ImageReader() RDR provider reset
DBG 00065: ~ImageReader() RDR
INF 00161: main() TST System quit
WARNING Argus: 8 client objects still exist during shutdown:
548024059936 (0x7f98000f90)
548024071200 (0x7f980034b0)
548024079512 (0x7f98002968)
548024106072 (0x7f980029d8)
548024186376 (0x7f98001b68)
548025045568 (0x7f98002b40)
548025277312 (0x7f980037e0)
548025285560 (0x7f980039b8)
The number of objects that were still existed will be number of start/stop * 2. So, every start/stop time will have 2 objects that is not cleared.
From the nvargus-daemon log, can you please point out which argus objects is not destroyed?
No, I don’t see that warning with 10_camera_recording, it works fine. It is very simple sample.
My app is much more complicated with multiple threads, I know it is the case that objects are not destroyed, but is there a way to know which objects are not destroyed from the log file? That is my question.