As per Ardusub Software Component Diagram QGC connects with Underwater Vehicle over UDP port 5600 by default. The QGroundControl also connects over UDP port 14550 for Pilot Control and Telemetry.
Now in our use case, we are trying to run multiple applications besides QGC, which need video-stream input. So a GStreamer pipeline on the companion computer sources the video stream from the underwater vehicle at port 5600 and sink the video stream to several other newly opened UDP ports on companion computer. From these different UDP ports on companion computer, different applications may receive the video stream input.
With this arrangement, if we allow the auto connection to the UDP port and ZeroConfig in the General menu of Application Settings of QGC, then QGC is auto-connecting to the root UDP port, i.e. 5600 from where the GStreamer pipeline is rendering the video streams to other applications through UDP sink ports. It leaves the other applications in non-workable states. The same issue persists even if a different port is used as the root UDP port.
However, if we do not allow the QGC to auto-connect to UDP ports and enforce ZeroConfig, and ask it to instead connect to a specific UDP port over which the GStreamer pipeline is configured to provide video feed. In that case, QGC receives the video feed correctly, as do all the other applications. The only problem we are facing in this second approach is that with UDP auto-connect disabled, QGC is now unable to connect with the Underwater Vehicle for Pilot Control and Telemetry, as shown in the attached screenshot.
So, is there a way to restrict an automatic video feed connection in QGC and restrict it to a particular port, while letting the QGC connect to the Pilot Control and Telemetry port automatically?
Please suggest if there is a better way to do the same job. Any help is much appreciated.
Figure: Video feed Coming in QGC but no pilot control or telemetry data communication