From c130723929897ad0403eab073cf3fced34f86eb2 Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 3 Jan 2019 14:54:37 +0000 Subject: [PATCH] Replace isTopLevelSource check by period count check in AdsMediaSource. The top level requirement only tried to ensure that the entire timeline only has one period. This is already asserted by ImaAdsLoader. AdsMediaSource itself works fine as long as the wrapped timeline has one period only. This is now asserted instead. PiperOrigin-RevId: 227682141 --- .../google/android/exoplayer2/source/ads/AdsMediaSource.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java index a10bc9019b..6061b014a7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java @@ -331,9 +331,6 @@ public final class AdsMediaSource extends CompositeMediaSource { boolean isTopLevelSource, @Nullable TransferListener mediaTransferListener) { super.prepareSourceInternal(player, isTopLevelSource, mediaTransferListener); - Assertions.checkArgument( - isTopLevelSource, - "AdsMediaSource must be the top-level source used to prepare the player."); final ComponentListener componentListener = new ComponentListener(); this.componentListener = componentListener; prepareChildSource(DUMMY_CONTENT_MEDIA_PERIOD_ID, contentMediaSource); @@ -444,6 +441,7 @@ public final class AdsMediaSource extends CompositeMediaSource { } private void onContentSourceInfoRefreshed(Timeline timeline, Object manifest) { + Assertions.checkArgument(timeline.getPeriodCount() == 1); contentTimeline = timeline; contentManifest = manifest; maybeUpdateSourceInfo();