I have a general question / understanding issue with the libargus framework. I see, there is the “getCameraDevices” method to get a list of all devices available in the camera provider. Is there any order to that?
Matter is: when restarting my application, I see a different initialization order of my devices (master/slave - sometimes slave/master; the latter causes problems). Is there a way to set the initialization order from a argus client perspective and is there a way to identify the camera devices (they have a badge in the device tree, is this accessible somewhere?)
Maybe I am completely wrong here and this is all Kernel internals which device is initialized first, but then, all the drivers I saw are "power_up"ing and "set_mode"ing on a per-device basis and I have a hard time to figure out, whether or not the master is already up and running.
Aug 25 15:16:51 xavierNX kernel: imx477 10-001a: video1: set imx477 as slave device
Aug 25 15:16:51 xavierNX kernel: imx477 9-001a: video0: set imx477 as master device
leads to the following errors (for all frames of one of the streams, the slave I recon)
NvCaptureStatusErrorDecode Stream 2.0 failed: sof_ts 881112696576 eof_ts 28195623405568 frame 108 error 14 data 0x00020000
NvCaptureStatusErrorDecode Capture-Error: FALCON_ERROR (0x0000000e)
SCF: Error InvalidState: Capture error with status 14 (channel 0) (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 880)
If the cams are (by chance) initialized master-first, no errors pop up.