MobileVLCKit iOS: Unable to determine our source address: This computer has an invalid IP address: 0.0.0.0
I understand that this topic has been discussed before, but it seems that I have come across a regression related to the MobileVLCKit.
Some of my customers have complained about the slowness during RTSP stream loading. I have tried to identify the root of the problem, including checking device models and OS versions. However, I was not able to reproduce any weird behavior or slowness with the following devices:
iPhone 11 with iOS 15.6
iPhone 12 with iOS 16.1
iPhone 12 with iOS 16.4
iPhone 12 mini with iOS 15.3
iPad Air (4th gen) with iOS 15.6.
While I was unable to reproduce the issue on the Simulator, I faced the same issue as my customers when I compiled our app for my MB Pro (Apple M1 Pro chip). This issue existed in MobileVLCKit versions 3.5.1, 3.3.17, and 3.3.10, but was resolved in version 3.3.16.3.
The only difference I noticed between those versions is that in 3.3.16.3, the error "Unable to determine our source address: This computer has an invalid IP address: 0.0.0.0" appears a couple of times immediately and the stream loads successfully. However, in other versions, this issue appears after some delay and then again repeatedly (but with some delay) until after a certain number of errors, the first frame appears.
This issue does not occur when using the official VLC player from the App Store, but it can be easily reproduced on other Xcode projects using MobileVLCKit. It occurs with different codecs and for each stream.
Additionally, I suspected that the issue might be related to the network, so I tested it on different WiFi networks and cellular connections.
One of my teammates was able to reproduce the delay on their device, an iPhone 11 with iOS 16.3.1. Furthermore, one of my customers who is also experiencing this problem is using an iPhone 14 Pro Max, although unfortunately, they did not mention the OS version they are using.
The difference in loading the stream between version 3.3.16.3 and 3.5.1 can be more than 20 seconds.