-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exoplayer midroll stuck when vast document is empty #3584
Comments
Hi @andrewlewis , Any updates on this bug. ? |
I'm experiencing the same issue when the response is empty. Rather than the empty ad being skipped and content resuming the player simply hangs. |
A fix for this is in review at the moment. Hopefully it will be on the development branch within the next couple of weeks. Thanks for your patience. |
Still working on this but it's likely to take a bit longer as it requires changes to how we handle ad timeline updates. |
Before this change, the ad playback state stored the number of played ads in each ad group. There was no way to represent that an ad had failed to load (and it wouldn't be possible just to increment the played ad count to signal a load error because there might be an unplayed ad before the ad that failed to load). Represent the state of each ad (unavailable, available, skipped, played, error) in each ad group. In a later change the player will use this information to update its loaded MediaPeriods in response to future ads failing to load. Also make the AdPlaybackState immutable and remove copying/duplication of its fields in the ad timeline and period. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=183655308
Hi @andrewlewis, This is blocking us from updating our current implementation to exoplayer v2 from v1, is there any update on this issue please? |
We plan to push an update to the development branch that should fix this later this week, or early next week. Sorry for the delay. |
Resolve the media period for ad playback when resolving a subsequent period and when receiving a timeline where the playing period in range (but wasn't before). Fix the seek position calculation when a current ad must be skipped and is followed by another ad. Check MediaPeriodInfos match when checking MediaPeriodHolders, to handle cases where a future ad should no longer be played. This may involve playing two content media periods consecutively. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184514558
If IMA loads an empty VAST document for an ad group it notifies via a LOG AdEvent. Handle the event by updating the AdPlaybackState accordingly. The error state will be handled in ExoPlayerImplInternal in a separate change. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184516585
Please give the fix on |
@andrewlewis tested with the IMA demo on dev-v2 unfortunately it's not working correctly.
We expect a 403 and no ad to play but the video content does not play and the player hangs. For testing you can you the following VAST tag.
|
That error is different from the empty midroll case handled here, and is tracked in #3801. |
@andrewlewis Thanks, I have updated the other ticket with my example. |
Resolve the media period for ad playback when resolving a subsequent period and when receiving a timeline where the playing period in range (but wasn't before). Fix the seek position calculation when a current ad must be skipped and is followed by another ad. Check MediaPeriodInfos match when checking MediaPeriodHolders, to handle cases where a future ad should no longer be played. This may involve playing two content media periods consecutively. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184514558
If IMA loads an empty VAST document for an ad group it notifies via a LOG AdEvent. Handle the event by updating the AdPlaybackState accordingly. The error state will be handled in ExoPlayerImplInternal in a separate change. Issue: #3584 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=184516585
Hi @andrewlewis, it seems this issue is still happening under some conditions: when Preroll + Midroll (or Preroll + Postroll), after the empty Preroll, when reaching the Midroll (or Postroll) it gets stuck, like paused, without any further events. We are able to reproduce the same behavior with following steps:
VMAP Pre-, Mid-, and Post-rolls, Single Ads
The player will correctly skip the first Ad error, but it seems is not correctly handling further Ads indexes, or maybe not correctly reporting the time to the underlying IMA library. Let me know if you need any further information or it would be better to create a new issue. |
@fpittersacc Thank you for the information. Please do file a new issue and I'll investigate further. |
If vast document is empty player stucks.
Create an empty vast document for a midroll like:
<VAST
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0"/>Example link:
http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4
Player Version:
Version of exoplayer 2.6.0
Device: Nexus 5x API 24
Bug report:
12-13 13:57:59.772 7678-7678/com.google.android.exoplayer2.imademo W/ImaAdsLoader: onAdEvent: LOG
12-13 13:57:59.772 7678-7678/com.google.android.exoplayer2.imademo W/ImaAdsLoader: type: adLoadError
12-13 13:57:59.772 7678-7678/com.google.android.exoplayer2.imademo W/ImaAdsLoader: errorCode: 1009
12-13 13:57:59.772 7678-7678/com.google.android.exoplayer2.imademo W/ImaAdsLoader: errorMessage: The response does not contain any valid ads.
However it's an empty vast document
bugreport-NYC-2017-12-13-13-58-12.zip
The text was updated successfully, but these errors were encountered: