diff --git a/RELEASENOTES.md b/RELEASENOTES.md index feb7a4dc53..2039c5af59 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -17,6 +17,9 @@ * Video: * Text: * Metadata: +* Image: + * Allow `null` as parameter for `ExoPlayer.setImageOutput` to clear a + previously set `ImageOutput`. * DRM: * Effect: * Remove unused `OverlaySettings.useHdr` since dynamic range of overlay diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java index 155d708cae..08428368ef 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java @@ -1978,8 +1978,8 @@ public interface ExoPlayer extends Player { /** * Sets the {@link ImageOutput} where rendered images will be forwarded. * - * @param imageOutput The {@link ImageOutput}. + * @param imageOutput The {@link ImageOutput}. May be null to clear a previously set image output. */ @UnstableApi - void setImageOutput(ImageOutput imageOutput); + void setImageOutput(@Nullable ImageOutput imageOutput); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java index 8170930b44..031a888feb 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayerImpl.java @@ -1895,7 +1895,7 @@ import java.util.concurrent.TimeoutException; } @Override - public void setImageOutput(ImageOutput imageOutput) { + public void setImageOutput(@Nullable ImageOutput imageOutput) { verifyApplicationThread(); sendRendererMessage(TRACK_TYPE_IMAGE, MSG_SET_IMAGE_OUTPUT, imageOutput); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java index b91bc3fbfd..0c38eccc6f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/SimpleExoPlayer.java @@ -1352,7 +1352,7 @@ public class SimpleExoPlayer extends BasePlayer } @Override - public void setImageOutput(ImageOutput imageOutput) { + public void setImageOutput(@Nullable ImageOutput imageOutput) { blockUntilConstructorFinished(); player.setImageOutput(imageOutput); } diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java index 89d01f87d0..8a13d08712 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/StubExoPlayer.java @@ -434,7 +434,7 @@ public class StubExoPlayer extends StubPlayer implements ExoPlayer { } @Override - public void setImageOutput(ImageOutput imageOutput) { + public void setImageOutput(@Nullable ImageOutput imageOutput) { throw new UnsupportedOperationException(); } }