-
Notifications
You must be signed in to change notification settings - Fork 6k
Description
ExoPlayer Version
2.15.1
Devices that reproduce the issue
Any that we have tested.
Devices that do not reproduce the issue
n/a
Reproducible in the demo app?
Yes
Reproduction steps
- Add the following content in media.exolist.json and play it:
[ { "name": "Sample", "samples": [ { "name": "VMAP", "uri": "https://storage.googleapis.com/exoplayer-test-media-1/mkv/android-screens-lavf-56.36.100-aac-avc-main-1280x720.mkv", "ad_tag_uri": "https://devs.origin.cdn.cra.cz/ima/primavmap.xml" } ] } ]
- Leave it running until third or fourth midroll
- Observe that playback gets completely stuck
Expected result
Each midroll references the same VAST where there are three ads. The first two emulate slow media server response and return media only after 10 seconds, i.e. after the default timeout of 8 seconds. The third ad in midroll is served with regular speed.
IMA should gracefully skip the first two ads in each midroll and play the third midroll only. Each midroll should be playable the same way.
Actual result
We have received reports from our customer that serves their own ads to our player that it occasionally gets stuck when playing ads. It helped knowing that their ad server tracker received in that case 402 error i.e. timeout as per https://support.google.com/admanager/answer/4442429?hl=en#zippy=%2Cunable-to-download-or-timeout-of-mediafile-uri.
So we prepared the environment with our own VMAP that would emulate the same behavior and first two ads time out from each midroll, only the third is immediately playable.
With this environment we can reproduce the player getting stuck most of the time during the third midroll at 1:30, seldomly at fourth midroll at 2:00. Tested with 2.15.1 and 2.18.1 with the same result.
A hint: it appears that while it works for the first few midrolls, the log can contain java.net.SocketTimeoutException
but it doesn't when it gets stuck.
Media
See reproduction steps section.
Bug Report
- You will email the zip file produced by
adb bugreport
to dev.exoplayer@gmail.com after filing this issue.