- 17 Jun, 2020 12 commits
-
-
Ads can appear due to asynchronous ad tag requests completing after earlier ads in a pod have loaded, so remove the requirement that the ad count can't change. The MediaPeriodQueue should handling discarding buffered content if an ad appears before already buffered content, so I think this case is actually handled correctly by the core player already. Also remove the requirement that an ad URI can't change. This is a defensive measure for now, but it's likely that a later fix in the IMA SDK for an issue where loadAd is not called after preloading then seeking before a preloaded ad plays will result in loadAd being called more than once, and I think it's possible that the second call to loadAd may have a different URI. Because the ad URI should only change after an intermediate seek to another MediaPeriod, there shouldn't be any problems with buffered data not getting discarded. Issue: #7477 PiperOrigin-RevId: 316871371
andrewlewis committed -
The release() method was added in the recent IMA API changes for preloading and now 'collides' with the ExoPlayer AdsLoader release method. This led to all ads completing being treated as a call to completely release the ads loader, which meant that the ad playback state was not updated on resuming after all ads had completed, which in turn led to playback getting stuck buffering on returning from the background after all ads played. Move the IMA callbacks into an inner class to avoid this. Issue: #7508 PiperOrigin-RevId: 316834561
andrewlewis committed -
- Leaving the TODO, since there are still MIME types we're unsure about. - Removing AAC because xHE-AAC does not have this property. We may re-add it with an additional profile check to exclude xHE-AAC in the future. PiperOrigin-RevId: 316715147
olly committed -
We're then able to use this same helper class from tests, to avoid running into spurious failures caused by long microseconds being round-tripped through float seconds. PiperOrigin-RevId: 316435084
ibaker committed -
This is useful for debugging both in tests and via logging. PiperOrigin-RevId: 316102968
andrewlewis committed -
Some but not all VideoAdPlayer callbacks from the IMA SDK included defensive handling of unexpected cases. Add the remaining ones. Issue: #7492 PiperOrigin-RevId: 316082651
andrewlewis committed -
PiperOrigin-RevId: 316079131
andrewlewis committed -
PiperOrigin-RevId: 315867160
andrewlewis committed -
Issue: #5507 PiperOrigin-RevId: 315512207
olly committed -
In a later change it will be necessary to be able to destroy the ads manager if all ads are skipped while creating ads rendering settings. This change prepares for doing that by not having the ads manager passed into the method (so the caller can null or initialize it). PiperOrigin-RevId: 315488830
andrewlewis committed -
This is in preparation for refactoring the logic to support not playing an ad before the resume position (optionally). PiperOrigin-RevId: 315431483
andrewlewis committed -
Previously the fake ads loader listener would always pass the same ad durations to the fake player, but actually the known ad durations can change during playback. Make the fake behavior more realistic by only exposing durations for ads that have loaded. PiperOrigin-RevId: 314956223
andrewlewis committed
-
- 09 Jun, 2020 1 commit
-
-
Oliver Woodman committed
-
- 05 Jun, 2020 4 commits
-
-
r2.11.5
Oliver Woodman committed -
PiperOrigin-RevId: 314925639
olly committed -
This reverts commit c20b85ac.
Oliver Woodman committed -
PiperOrigin-RevId: 314903986
olly committed
-
- 04 Jun, 2020 1 commit
-
-
Issue: #7453 PiperOrigin-RevId: 314710328
olly committed
-
- 03 Jun, 2020 3 commits
-
-
Issue: #6901 PiperOrigin-RevId: 314418536
olly committed -
Issue: #7456 PiperOrigin-RevId: 314408767
olly committed -
Issue:#7325 PiperOrigin-RevId: 314321914
aquilescanta committed
-
- 01 Jun, 2020 7 commits
-
-
Oliver Woodman committed
-
Oliver Woodman committed
-
Merge fix for #7193 into dev-v2-r2.11.5
Oliver Woodman committed -
We currently have a currentMediaPeriodId and an activeSessionId that are more or less tracking the same thing unless the current media period isn't "active" yet. Simplify this logic by using a single currentSessionId field and the respective isActive flag of this session. Also move all session creation and activation code in the same method to make it easier to reason about the code. This change also fixes a subtle bug where events after a seek to a new window are not ignored as they should. PiperOrigin-RevId: 289432181
tonihei committed -
Currently, this method is only supposed to be called before removing the listener from the player or when releasing the player. If called at other times, it will throw an exception later when a playback session is ended automatically. issue:#7193 PiperOrigin-RevId: 308254993
tonihei committed -
The first session should only be created once we have the media items and/or called prepare. Otherwise the first session is created with an EventTime having an empty timeline making it less useful. issue:#7193 PiperOrigin-RevId: 308100555
tonihei committed -
This reverts commit b05e9944.
Oliver Woodman committed
-
- 29 May, 2020 12 commits
-
-
PiperOrigin-RevId: 312083761
andrewlewis committed -
PiperOrigin-RevId: 312080838
andrewlewis committed -
The ad break time in seconds from IMA was "-1" for postrolls, but this didn't match C.TIME_END_OF_SOURCE in the ad group times array. Handle an ad break time of -1 directly by mapping it onto the last ad group, instead of trying to look it up in the array. PiperOrigin-RevId: 312064886
andrewlewis committed -
Detect stuck buffering cases in ImaAdsLoader, and discard the ad group after a timeout. This is intended to make the IMA extension more robust in the case where an ad group unexpectedly doesn't load. The timing out behavior is enabled by default but apps can choose to retain the old behavior by setting an unset timeout on ImaAdsLoader.Builder. PiperOrigin-RevId: 311729798
andrewlewis committed -
PiperOrigin-RevId: 311106612
andrewlewis committed -
Put static methods at the end. Also add a couple of missing parameter name comments. PiperOrigin-RevId: 311077684
andrewlewis committed -
Log content progress events, as these are helpful to debug triggering of events based on the content progress. Don't log AD_PROGRESS events as they occur several times per second while ads are playing, and the verbosity makes logs difficult to read. PiperOrigin-RevId: 311077302
andrewlewis committed -
PiperOrigin-RevId: 310901647
andrewlewis committed -
PiperOrigin-RevId: 310883076
andrewlewis committed -
issue:#6429 PiperOrigin-RevId: 309906760
andrewlewis committed -
adPlaybackState is now non-null, and the uninitialized case is covered by a new boolean hasAdPlaybackState. Position progress updates are now non-null and initialized with IMA's VIDEO_TIME_NOT_READY constant. Also fix some misc code issues: - Remove empty branch for SmoothStreaming (Android Studio warns about this). - Tidy onTimelineChanged and onPositionDiscontinuity and the methods they call to improve naming. - Remove logging for IMA events after release, as these methods are expected to be called in the current IMA SDK behavior. PiperOrigin-RevId: 308977116
andrewlewis committed -
The mocking setup is quite messy/unclear compared to the fakes, but it seems worth switching over because IMA API changes have already required changes to fakes in the past, and there are more API changes in the version we are about to upgrade to. This change should generally remove the need to keep the fakes up-to-date. PiperOrigin-RevId: 308819176
andrewlewis committed
-