TX-2 28.1: gstreamer how to sync between different pipelines?

Update: Sorry, it was a bug in our application code.


Please help on timing issue again. Here is our usecase:

We have 3 CSI cameras connecting to TX-2 SOM, while one is primary and the other two are identical secondary.
The primary pipeline runs on GPU, while secondary pipelines are on CPU.

When we launch three pipelines in gstreamer, we notice:

  1. One of the secondary cameras syncs well with the primary.
  2. The other secondary has a huge latency against the primary and good secondary.
  3. The two secondary cameras are hardware identical and share the same and simple gstreamer pipeline code.
    Basically: nvcamerasrc --> jpegenc —> filesink

We tried some basic stuff like trying on another system, changing the order of launching secondary pipeline, but it’s always the same camera/sensor that has the huge latency.

So do we need some mechanism to force sync all pipelines? or anything in hardware is worth checking?
Any input is appreciated.