Compare commits

..

No commits in common. "a7c897003c35e8db816c470131f548081fc9b02e" and "4d68243158b04644b33113fe8a9514cb81b8b41c" have entirely different histories.

4 changed files with 7 additions and 24 deletions

View File

@ -9,8 +9,6 @@
scrubber bar around). The behavior of scrubbing mode can be customized scrubber bar around). The behavior of scrubbing mode can be customized
with `setScrubbingModeParameters(..)` on `ExoPlayer` and with `setScrubbingModeParameters(..)` on `ExoPlayer` and
`ExoPlayer.Builder`. `ExoPlayer.Builder`.
* Fix bug where prepare errors in the content of `AdsMediaSource` may be
never reported ([#2337](https://github.com/androidx/media/issues/2337)).
* Transformer: * Transformer:
* Filling an initial gap (added via `addGap()`) with silent audio now * Filling an initial gap (added via `addGap()`) with silent audio now
requires explicitly setting `experimentalSetForceAudioTrack(true)` in requires explicitly setting `experimentalSetForceAudioTrack(true)` in

View File

@ -102,6 +102,13 @@ public final class MaskingMediaSource extends WrappingMediaSource {
} }
} }
@Override
@SuppressWarnings("MissingSuperCall")
public void maybeThrowSourceInfoRefreshError() {
// Do nothing. Source info refresh errors will be thrown when calling
// MaskingMediaPeriod.maybeThrowPrepareError.
}
@Override @Override
public MaskingMediaPeriod createPeriod( public MaskingMediaPeriod createPeriod(
MediaPeriodId id, Allocator allocator, long startPositionUs) { MediaPeriodId id, Allocator allocator, long startPositionUs) {

View File

@ -16818,27 +16818,6 @@ public final class ExoPlayerTest {
assertThat(shouldRendererThrowRecoverableError.get()).isFalse(); assertThat(shouldRendererThrowRecoverableError.get()).isFalse();
} }
@Test
public void prepareMaskingMediaSource_withRealSourcePrepareError_reportsPlaybackException()
throws Exception {
ExoPlayer player = new TestExoPlayerBuilder(context).build();
FakeMediaSource realSourceWithPrepareFailure =
new FakeMediaSource() {
@Override
public void maybeThrowSourceInfoRefreshError() throws IOException {
throw new IOException();
}
};
realSourceWithPrepareFailure.setAllowPreparation(false);
MediaSource maskingMediaSource =
new MaskingMediaSource(realSourceWithPrepareFailure, /* useLazyPreparation= */ false);
player.setMediaSource(maskingMediaSource);
player.prepare();
// Assert the prepare error is reported.
advance(player).untilPlayerError();
}
// Internal methods. // Internal methods.
private void addWatchAsSystemFeature() { private void addWatchAsSystemFeature() {

View File

@ -113,7 +113,6 @@ public final class AndroidTestUtil {
protected PlaybackVideoGraphWrapper createPlaybackVideoGraphWrapper( protected PlaybackVideoGraphWrapper createPlaybackVideoGraphWrapper(
Context context, VideoFrameReleaseControl videoFrameReleaseControl) { Context context, VideoFrameReleaseControl videoFrameReleaseControl) {
return new PlaybackVideoGraphWrapper.Builder(context, videoFrameReleaseControl) return new PlaybackVideoGraphWrapper.Builder(context, videoFrameReleaseControl)
.setEnablePlaylistMode(true)
.setClock(getClock()) .setClock(getClock())
.setEnableReplayableCache(true) .setEnableReplayableCache(true)
.build(); .build();