sccn / liblsl

C++ lsl library for multi-modal time-synched data transmission over the local network
Other
114 stars 67 forks source link

Stream issues on the network (Android) #210

Open StevanDabizljevic opened 6 months ago

StevanDabizljevic commented 6 months ago

Hi everyone, we were also having some issues with streams coming from the Android phones, some related to the issues 204 and 207, and some not, and we managed to resolve some of those, and discovered new ones.

  1. Only one stream visible when you're not connected to WIFI When it comes to this issue, we tried the WifiManager.MulticastLock, but the issue is still present. We were performing tests on physical devices, including Samsung S22, S23 and S24, all running latest update of the Android 14. Many thanks to @pmaanen, as he managed to identify the commit that is causing this issue, we downgraded the liblsl version to 15.0.0, and resolved the issue.
  2. Unstable streams For quite some times, we are having issues with stability of streams that come from Android phones. With LabRecorder, using one PC,a dedicated router (TP-Link Archer C80) and one Android phone, it is manageable, although some tweaks were needed (we followed lsl_api.cfg guide from the official documentation). Adding the second phone to the network makes all streams completely unstable, they disappear and comeback at random with each update of the streams. If you manage to start the recording (which is next to impossible with more then couple of streams), the streams become fairly stable in 50% of the time. This is also the case when trying to record streams from one Android phone on another phone. By mere accident, we discovered that if you open an inlet, for each stream that you are streaming to the network (on the Android phone), the streams are perfectly stable. Even with couple of phones on the network, everything works perfectly, and we can start the recording in two clicks every time (2-3 phones with 10 different streams each). Using Wireshark, we figured out that when streams are consumed, even locally in the same app, UDP traffic on the network is much higher, and our best guess is that is what has aided to the increased stream stability.

I can provide you with more setup details if needed, MRE or anything else you need. Hope this helps!