diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 0946392f96..3132de07ad 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -125,6 +125,10 @@ `Player.seekToNextMediaItem()` instead. * Removed deprecated `BaseAudioProcessor` in `exoplayer` module. Use `BaseAudioProcessor` under `common` module. + * Remove deprecated `MediaCodecVideoRenderer` constructor + `MediaCodecVideoRenderer(Context, MediaCodecAdapter.Factor, + MediaCodecSelector, long, boolean, @Nullable Handler, @Nullable + VideoRendererEventListener, int, float, @Nullable VideoSinkProvider)`. ## 1.6 diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java index 4cc4bcec1c..9ebadf2a8e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/MediaCodecVideoRenderer.java @@ -537,35 +537,6 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer .setAssumedMinimumCodecOperatingRate(assumedMinimumCodecOperatingRate)); } - /** - * @deprecated Use {@link Builder} instead. - */ - @Deprecated - public MediaCodecVideoRenderer( - Context context, - MediaCodecAdapter.Factory codecAdapterFactory, - MediaCodecSelector mediaCodecSelector, - long allowedJoiningTimeMs, - boolean enableDecoderFallback, - @Nullable Handler eventHandler, - @Nullable VideoRendererEventListener eventListener, - int maxDroppedFramesToNotify, - float assumedMinimumCodecOperatingRate, - @Nullable VideoSinkProvider videoSinkProvider) { - this( - new Builder(context) - .setMediaCodecSelector(mediaCodecSelector) - .setCodecAdapterFactory(codecAdapterFactory) - .setAllowedJoiningTimeMs(allowedJoiningTimeMs) - .setEnableDecoderFallback(enableDecoderFallback) - .setEventHandler(eventHandler) - .setEventListener(eventListener) - .setMaxDroppedFramesToNotify(maxDroppedFramesToNotify) - .setAssumedMinimumCodecOperatingRate(assumedMinimumCodecOperatingRate) - .setVideoSink( - videoSinkProvider == null ? null : videoSinkProvider.getSink(/* inputIndex= */ 0))); - } - /** * @deprecated Use {@link Builder} instead. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java index 9703e1b551..c9f24411da 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaybackVideoGraphWrapper.java @@ -76,7 +76,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; */ @UnstableApi @RestrictTo({Scope.LIBRARY_GROUP}) -public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, VideoGraph.Listener { +public final class PlaybackVideoGraphWrapper implements VideoGraph.Listener { /** Listener for {@link PlaybackVideoGraphWrapper} events. */ public interface Listener { @@ -400,19 +400,12 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video this.totalVideoInputCount = totalVideoInputCount; } - /** Starts rendering to the output surface. */ - public void startRendering() { - defaultVideoSink.startRendering(); - } - - /** Stops rendering to the output surface. */ - public void stopRendering() { - defaultVideoSink.stopRendering(); - } - - // VideoSinkProvider methods - - @Override + /** + * Returns the {@link VideoSink} to forward video frames for processing. + * + * @param inputIndex The index of the {@link VideoSink}. + * @return The {@link VideoSink} at the given index. + */ public VideoSink getSink(int inputIndex) { if (contains(inputVideoSinks, inputIndex)) { return inputVideoSinks.get(inputIndex); @@ -425,7 +418,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video return inputVideoSink; } - @Override + /** Sets the output surface info. */ public void setOutputSurfaceInfo(Surface outputSurface, Size outputResolution) { if (currentSurfaceAndSize != null && currentSurfaceAndSize.first.equals(outputSurface) @@ -437,7 +430,7 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video outputSurface, outputResolution.getWidth(), outputResolution.getHeight()); } - @Override + /** Clears the set output surface info. */ public void clearOutputSurfaceInfo() { maybeSetOutputSurfaceInfo( /* surface= */ null, @@ -446,7 +439,17 @@ public final class PlaybackVideoGraphWrapper implements VideoSinkProvider, Video currentSurfaceAndSize = null; } - @Override + /** Starts rendering to the output surface. */ + public void startRendering() { + defaultVideoSink.startRendering(); + } + + /** Stops rendering to the output surface. */ + public void stopRendering() { + defaultVideoSink.stopRendering(); + } + + /** Releases the sink provider. */ public void release() { if (state == STATE_RELEASED) { return; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoSinkProvider.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoSinkProvider.java deleted file mode 100644 index d2baa83ed2..0000000000 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoSinkProvider.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2023 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package androidx.media3.exoplayer.video; - -import android.view.Surface; -import androidx.media3.common.util.Size; - -/** A provider of {@link VideoSink VideoSinks}. */ -/* package */ interface VideoSinkProvider { - - /** - * Returns the {@link VideoSink} to forward video frames for processing. - * - * @param inputIndex The index of the {@link VideoSink}. - * @return The {@link VideoSink} at the given index. - */ - VideoSink getSink(int inputIndex); - - /** Sets the output surface info. */ - void setOutputSurfaceInfo(Surface outputSurface, Size outputResolution); - - /** Clears the set output surface info. */ - void clearOutputSurfaceInfo(); - - /** Releases the sink provider. */ - void release(); -}