From 38ea53fcdcefced0b17d06278d7cbea94d5d00cb Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Wed, 22 Aug 2018 05:48:27 -0700 Subject: [PATCH] Revert discarding empty ad breaks The previous change was too aggressive as it would clear future ad breaks. Still clear the pending content position so the real content position is reported after an empty ad break. Issue: #4681 Issue: #4622 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=209752306 --- .../android/exoplayer2/ext/ima/ImaAdsLoader.java | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java index bf1cdfe02c..649e6e386a 100644 --- a/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java +++ b/extensions/ima/src/main/java/com/google/android/exoplayer2/ext/ima/ImaAdsLoader.java @@ -631,11 +631,8 @@ public final class ImaAdsLoader } else if (fakeContentProgressElapsedRealtimeMs != C.TIME_UNSET) { long elapsedSinceEndMs = SystemClock.elapsedRealtime() - fakeContentProgressElapsedRealtimeMs; contentPositionMs = fakeContentProgressOffsetMs + elapsedSinceEndMs; - int adGroupIndexForPosition = + expectedAdGroupIndex = adPlaybackState.getAdGroupIndexForPositionUs(C.msToUs(contentPositionMs)); - if (adGroupIndexForPosition != C.INDEX_UNSET) { - expectedAdGroupIndex = adGroupIndexForPosition; - } } else if (imaAdState == IMA_AD_STATE_NONE && !playingAd && hasContentDuration) { contentPositionMs = player.getCurrentPosition(); // Update the expected ad group index for the current content position. The update is delayed @@ -1127,15 +1124,6 @@ public final class ImaAdsLoader if (pendingAdLoadError == null) { pendingAdLoadError = AdLoadException.createForAdGroup(error, adGroupIndex); } - // Discard the ad break, which makes sure we don't receive duplicate load error events. - adsManager.discardAdBreak(); - // Set the next expected ad group index so we can handle multiple load errors in a row. - adGroupIndex++; - if (adGroupIndex < adPlaybackState.adGroupCount) { - expectedAdGroupIndex = adGroupIndex; - } else { - expectedAdGroupIndex = C.INDEX_UNSET; - } pendingContentPositionMs = C.TIME_UNSET; }