2019-12-17, 20:07
If you are interested for some background reading: https://github.com/google/ExoPlayer/issues/5763
This is quite nice. Infact there is no proper delay API on Android (yeah, we knew that - this is why I had to do a lot of interpolation). Vendors used a private implementation GetLatency() which is not available via public API / SDK, only via reflection. It seemed they wanted to change that with Android Q, but did not properly do it yet. Amazon's exoplayer fork still uses the oldish hidden private API for delay. I really hope they fix the rootcause in the near future by properly implementing the Timestamps. It would even be a backwards compatible change. Let's see.
For the record: Kodi uses for v19 and (fritschfiretv) GetHeadPosition() for streamstart (first few ms < 100) and then when GetTimestamp gets stable this v19 based API.
I will transition directly to a proper provided GetLatency() function if Q or later has support for it.
This is quite nice. Infact there is no proper delay API on Android (yeah, we knew that - this is why I had to do a lot of interpolation). Vendors used a private implementation GetLatency() which is not available via public API / SDK, only via reflection. It seemed they wanted to change that with Android Q, but did not properly do it yet. Amazon's exoplayer fork still uses the oldish hidden private API for delay. I really hope they fix the rootcause in the near future by properly implementing the Timestamps. It would even be a backwards compatible change. Let's see.
For the record: Kodi uses for v19 and (fritschfiretv) GetHeadPosition() for streamstart (first few ms < 100) and then when GetTimestamp gets stable this v19 based API.
I will transition directly to a proper provided GetLatency() function if Q or later has support for it.