Commit 9e3bee89 by tonihei Committed by Oliver Woodman

Prevent NPE in ImaAdsLoader onPositionDiscontinuity.

Any seek before the first timeline becomes available will result in a NPE.
Change it to handle that case gracefully.

Issue:#5831
PiperOrigin-RevId: 264603061
parent 5b2b21da
...@@ -484,6 +484,7 @@ public final class ImaAdsLoader ...@@ -484,6 +484,7 @@ public final class ImaAdsLoader
pendingContentPositionMs = C.TIME_UNSET; pendingContentPositionMs = C.TIME_UNSET;
adGroupIndex = C.INDEX_UNSET; adGroupIndex = C.INDEX_UNSET;
contentDurationMs = C.TIME_UNSET; contentDurationMs = C.TIME_UNSET;
timeline = Timeline.EMPTY;
} }
/** /**
...@@ -967,7 +968,7 @@ public final class ImaAdsLoader ...@@ -967,7 +968,7 @@ public final class ImaAdsLoader
if (contentDurationUs != C.TIME_UNSET) { if (contentDurationUs != C.TIME_UNSET) {
adPlaybackState = adPlaybackState.withContentDurationUs(contentDurationUs); adPlaybackState = adPlaybackState.withContentDurationUs(contentDurationUs);
} }
updateImaStateForPlayerState(); onPositionDiscontinuity(Player.DISCONTINUITY_REASON_INTERNAL);
} }
@Override @Override
...@@ -1022,7 +1023,7 @@ public final class ImaAdsLoader ...@@ -1022,7 +1023,7 @@ public final class ImaAdsLoader
} }
} }
updateAdPlaybackState(); updateAdPlaybackState();
} else { } else if (!timeline.isEmpty()) {
long positionMs = player.getCurrentPosition(); long positionMs = player.getCurrentPosition();
timeline.getPeriod(0, period); timeline.getPeriod(0, period);
int newAdGroupIndex = period.getAdGroupIndexForPositionUs(C.msToUs(positionMs)); int newAdGroupIndex = period.getAdGroupIndexForPositionUs(C.msToUs(positionMs));
...@@ -1034,9 +1035,8 @@ public final class ImaAdsLoader ...@@ -1034,9 +1035,8 @@ public final class ImaAdsLoader
} }
} }
} }
} else {
updateImaStateForPlayerState();
} }
updateImaStateForPlayerState();
} }
// Internal methods. // Internal methods.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment