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
Player remains in Buffering state if a midroll ad has offset greater than Video length #5534
Comments
Is it feasible to ensure that the VMAP ad break times are compatible with the content duration? This is a known issue but seems tricky to fix with the IMA API at the moment (we have |
Yes. We are working on getting the ad breaks to be according to the video duration. But that might not be possible for some third party ad tags. |
@raunakyadav You could ask about this request on the IMA SDK technical forum. As a tangential side note: to get the best user experience with client-side video ad insertion it's necessary to ensure that there are keyframes in the content at ad insertion cue points (otherwise, transitions from midroll ads back to content can't generally be seamless when using one video decoder). If you author the content and ad tag together you can guarantee this, and it also makes it easy to ensure that no ad insertion cue points are after the content duration. |
@andrewlewis - What's the expected behaviour that this enhancement is tracking? Should the ad just not be played? I think the problem is identical to that described in #5067, however the proposed solutions are possibly different. |
It would probably make most sense to discard any midrolls after the content length but play the postroll (if there is one) when playback reaches the end of the content. We should check that IMA expects the postroll to play after notifying it with
Isn't #5067 more about being able to position the ad breaks within the content once its duration is known? There may actually be a quick fix for that, which is to have |
Any updates yet? |
No updates I'm afraid. I'd still recommend setting ad cue points based on the content duration (and keyframe positions) as suggested above. [Edited to remove a potentially incorrect point about the failure mode changing as actually I don't think we will detect that we are waiting for an ad load so ad loading may not time out.] |
Issue description
If the AdsMediaSource has a mid-roll ad that has timeOffset > video duration, then on video end, STATE_BUFFERING is received instead of STATE_ENDED in onPlayerStateChanged.
Reproduction steps
Configure a mid-roll ad with offset greater than video length. Play the video till end.
Observe the callbacks from player. Also the controller remains in playing state after this.
Link to test content
Any test vmap would work satisfying the offset as specified in Title. Example
Version of ExoPlayer being used
2.9.5
Device(s) and version(s) of Android being used
Samsung Galaxy S6, Android 7
A full bug report captured from the device
Will mail.
The text was updated successfully, but these errors were encountered: