Skip to content

Ad playback stuck after media timeouts #10510

Closed

Description

@BucherTomas

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

  1. 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" } ] } ]
  2. Leave it running until third or fourth midroll
  3. 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

Activity

  1. BucherTomas commented on Aug 9, 2022

    @BucherTomas
    Author

    Actually, looks like the same circumstances already mentioned in #10494 . Here you have at least a VMAP to test with that will trigger those 402 timeouts.

  2. self-assigned this
    on Aug 10, 2022
  3. tonihei commented on Aug 11, 2022

    @tonihei
    Collaborator

    Thanks for the excellent reproduction steps!

    It seems the IMA SDK gets stuck and doesn't issue the expected callbacks any more. In fact, this seems to be caused by not timing out after the configured media timeout. We reported the issue to the IMA SDK team and will also provide a workaround in ExoPlayer that times out in this situation to ensure playback is unstuck.

  4. tonihei commented on Sep 6, 2022

    @tonihei
    Collaborator

    The workaround will appear here soon and will be part of the next release.

  5. jmvillagra commented on Sep 22, 2022

    @jmvillagra

    Any updates on this issue? Thank you.

  6. added a commit that references this issue on Sep 30, 2022
  7. added a commit that references this issue on Oct 20, 2022
  8. locked and limited conversation to collaborators on Nov 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions