diff --git a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java index e57873ecdf..07d1b8deca 100644 --- a/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java +++ b/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java @@ -25,7 +25,6 @@ import android.os.Looper; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.annotation.OptIn; -import androidx.annotation.RequiresApi; import androidx.fragment.app.FragmentManager; import androidx.media3.common.C; import androidx.media3.common.DrmInitData; @@ -354,7 +353,6 @@ public class DownloadTracker { } /** Downloads a Widevine offline license in a background thread. */ - @RequiresApi(18) private static final class WidevineOfflineLicenseFetchTask { private final Format format; diff --git a/libraries/common/src/main/java/androidx/media3/common/GlObjectsProvider.java b/libraries/common/src/main/java/androidx/media3/common/GlObjectsProvider.java index e07d658a9e..72a4d049fe 100644 --- a/libraries/common/src/main/java/androidx/media3/common/GlObjectsProvider.java +++ b/libraries/common/src/main/java/androidx/media3/common/GlObjectsProvider.java @@ -21,7 +21,6 @@ import android.opengl.EGLContext; import android.opengl.EGLDisplay; import android.opengl.EGLSurface; import androidx.annotation.IntRange; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.GlUtil.GlException; import androidx.media3.common.util.UnstableApi; @@ -39,7 +38,6 @@ public interface GlObjectsProvider { * @param configAttributes The attributes to configure EGL with. * @throws GlException If an error occurs during creation. */ - @RequiresApi(17) EGLContext createEglContext( EGLDisplay eglDisplay, @IntRange(from = 2, to = 3) int openGlVersion, int[] configAttributes) throws GlException; @@ -54,7 +52,6 @@ public interface GlObjectsProvider { * @param isEncoderInputSurface Whether the {@code surface} is the input surface of an encoder. * @throws GlException If an error occurs during creation. */ - @RequiresApi(17) EGLSurface createEglSurface( EGLDisplay eglDisplay, Object surface, @@ -72,7 +69,6 @@ public interface GlObjectsProvider { * surface. * @throws GlException If an error occurs during creation. */ - @RequiresApi(17) EGLSurface createFocusedPlaceholderEglSurface(EGLContext eglContext, EGLDisplay eglDisplay) throws GlException; diff --git a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java index 9727cab101..5339f64c61 100644 --- a/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java +++ b/libraries/common/src/main/java/androidx/media3/common/TrackSelectionParameters.java @@ -28,7 +28,6 @@ import android.os.Looper; import android.view.accessibility.CaptioningManager; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.BundleCollectionUtil; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -830,7 +829,6 @@ public class TrackSelectionParameters implements Bundleable { return new TrackSelectionParameters(this); } - @RequiresApi(19) private void setPreferredTextLanguageAndRoleFlagsToCaptioningManagerSettingsV19( Context context) { if (Util.SDK_INT < 23 && Looper.myLooper() == null) { diff --git a/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java b/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java index 9fb4dfc8d6..c61505c332 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/EGLSurfaceTexture.java @@ -27,14 +27,12 @@ import android.opengl.GLES20; import android.os.Handler; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** Generates a {@link SurfaceTexture} using EGL/GLES functions. */ -@RequiresApi(17) @UnstableApi public final class EGLSurfaceTexture implements SurfaceTexture.OnFrameAvailableListener, Runnable { diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index d6f9113c52..6f24da13c2 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -37,7 +37,6 @@ import android.opengl.Matrix; import androidx.annotation.DoNotInline; import androidx.annotation.IntRange; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import java.nio.ByteBuffer; import java.nio.ByteOrder; @@ -227,7 +226,6 @@ public final class GlUtil { } /** Returns an initialized default {@link EGLDisplay}. */ - @RequiresApi(17) public static EGLDisplay getDefaultEglDisplay() throws GlException { return Api17.getDefaultEglDisplay(); } @@ -240,7 +238,6 @@ public final class GlUtil { * * @param eglDisplay The {@link EGLDisplay} to create an {@link EGLContext} for. */ - @RequiresApi(17) public static EGLContext createEglContext(EGLDisplay eglDisplay) throws GlException { return createEglContext( EGL14.EGL_NO_CONTEXT, eglDisplay, /* openGlVersion= */ 2, EGL_CONFIG_ATTRIBUTES_RGBA_8888); @@ -256,7 +253,6 @@ public final class GlUtil { * @param configAttributes The attributes to configure EGL with. Accepts either {@link * #EGL_CONFIG_ATTRIBUTES_RGBA_1010102}, or {@link #EGL_CONFIG_ATTRIBUTES_RGBA_8888}. */ - @RequiresApi(17) public static EGLContext createEglContext( EGLContext sharedContext, EGLDisplay eglDisplay, @@ -282,7 +278,6 @@ public final class GlUtil { * C#COLOR_TRANSFER_SDR}, {@link C#COLOR_TRANSFER_HLG} and {@link C#COLOR_TRANSFER_ST2084}. * @param isEncoderInputSurface Whether the {@code surface} is the input surface of an encoder. */ - @RequiresApi(17) public static EGLSurface createEglSurface( EGLDisplay eglDisplay, Object surface, @@ -325,7 +320,6 @@ public final class GlUtil { * @param configAttributes EGL configuration attributes. Valid arguments include {@link * #EGL_CONFIG_ATTRIBUTES_RGBA_8888} and {@link #EGL_CONFIG_ATTRIBUTES_RGBA_1010102}. */ - @RequiresApi(17) private static EGLSurface createPbufferSurface( EGLDisplay eglDisplay, int width, int height, int[] configAttributes) throws GlException { int[] pbufferAttributes = @@ -347,7 +341,6 @@ public final class GlUtil { * @param eglDisplay The {@link EGLDisplay} to attach the surface to. * @return {@link EGL14#EGL_NO_SURFACE} if supported and a 1x1 pixel buffer surface otherwise. */ - @RequiresApi(17) public static EGLSurface createFocusedPlaceholderEglSurface( EGLContext eglContext, EGLDisplay eglDisplay) throws GlException { // EGL_CONFIG_ATTRIBUTES_RGBA_1010102 could be used for HDR input, but EGL14.EGL_NO_SURFACE @@ -369,7 +362,6 @@ public final class GlUtil { *

Returns {@code 0} if no {@link EGLContext} {@linkplain #createFocusedPlaceholderEglSurface * is focused}. */ - @RequiresApi(17) public static long getContextMajorVersion() throws GlException { return Api17.getContextMajorVersion(); } @@ -381,7 +373,6 @@ public final class GlUtil { * #createFocusedPlaceholderEglSurface is focused}, or the focused {@link EGLContext} version is * less than 3.0. */ - @RequiresApi(17) public static long createGlSyncFence() throws GlException { // If the context is an OpenGL 3.0 context, we must be running API 18 or later. return Api17.getContextMajorVersion() >= 3 ? Api18.createSyncFence() : 0; @@ -422,7 +413,6 @@ public final class GlUtil { } /** Gets the current {@link EGLContext context}. */ - @RequiresApi(17) public static EGLContext getCurrentContext() { return Api17.getCurrentContext(); } @@ -498,7 +488,6 @@ public final class GlUtil { * Makes the specified {@code eglSurface} the render target, using a viewport of {@code width} by * {@code height} pixels. */ - @RequiresApi(17) public static void focusEglSurface( EGLDisplay eglDisplay, EGLContext eglContext, EGLSurface eglSurface, int width, int height) throws GlException { @@ -510,7 +499,6 @@ public final class GlUtil { * Makes the specified {@code framebuffer} the render target, using a viewport of {@code width} by * {@code height} pixels. */ - @RequiresApi(17) public static void focusFramebuffer( EGLDisplay eglDisplay, EGLContext eglContext, @@ -712,7 +700,6 @@ public final class GlUtil { *

This is a no-op if called on already-destroyed {@link EGLDisplay} and {@link EGLContext} * instances. */ - @RequiresApi(17) public static void destroyEglContext( @Nullable EGLDisplay eglDisplay, @Nullable EGLContext eglContext) throws GlException { Api17.destroyEglContext(eglDisplay, eglContext); @@ -722,7 +709,6 @@ public final class GlUtil { * Destroys the {@link EGLSurface} identified by the provided {@link EGLDisplay} and {@link * EGLSurface}. */ - @RequiresApi(17) public static void destroyEglSurface( @Nullable EGLDisplay eglDisplay, @Nullable EGLSurface eglSurface) throws GlException { Api17.destroyEglSurface(eglDisplay, eglSurface); @@ -751,7 +737,6 @@ public final class GlUtil { } } - @RequiresApi(17) private static final class Api17 { private Api17() {} @@ -921,7 +906,6 @@ public final class GlUtil { } } - @RequiresApi(18) private static final class Api18 { private Api18() {} diff --git a/libraries/common/src/main/java/androidx/media3/common/util/TraceUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/TraceUtil.java index f5510bd3eb..418d110755 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/TraceUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/TraceUtil.java @@ -15,7 +15,6 @@ */ package androidx.media3.common.util; -import androidx.annotation.RequiresApi; import androidx.media3.common.MediaLibraryInfo; /** Calls through to {@link android.os.Trace} methods on supported API levels. */ @@ -33,7 +32,7 @@ public final class TraceUtil { */ public static void beginSection(String sectionName) { if (MediaLibraryInfo.TRACE_ENABLED) { - beginSectionV18(sectionName); + android.os.Trace.beginSection(sectionName); } } @@ -44,17 +43,7 @@ public final class TraceUtil { */ public static void endSection() { if (MediaLibraryInfo.TRACE_ENABLED) { - endSectionV18(); + android.os.Trace.endSection(); } } - - @RequiresApi(18) - private static void beginSectionV18(String sectionName) { - android.os.Trace.beginSection(sectionName); - } - - @RequiresApi(18) - private static void endSectionV18() { - android.os.Trace.endSection(); - } } diff --git a/libraries/common/src/main/java/androidx/media3/common/util/Util.java b/libraries/common/src/main/java/androidx/media3/common/util/Util.java index a3e2f987c3..0d6a892ad5 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/Util.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/Util.java @@ -1560,7 +1560,6 @@ public final class Util { * @throws NoSuchElementException If the array is empty. */ @UnstableApi - @RequiresApi(18) public static long minValue(SparseLongArray sparseLongArray) { if (sparseLongArray.size() == 0) { throw new NoSuchElementException(); @@ -1580,7 +1579,6 @@ public final class Util { * @throws NoSuchElementException If the array is empty. */ @UnstableApi - @RequiresApi(18) public static long maxValue(SparseLongArray sparseLongArray) { if (sparseLongArray.size() == 0) { throw new NoSuchElementException(); @@ -3698,7 +3696,6 @@ public final class Util { outSize.y = mode.getPhysicalHeight(); } - @RequiresApi(17) private static void getDisplaySizeV17(Display display, Point outSize) { display.getRealSize(outSize); } 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 9c822adc38..ff144f9174 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/ExoPlayer.java @@ -1586,7 +1586,6 @@ public interface ExoPlayer extends Player { * * @param videoEffects The {@link List} of {@linkplain Effect video effects} to apply. */ - @RequiresApi(18) @UnstableApi void setVideoEffects(List videoEffects); diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioTimestampPoller.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioTimestampPoller.java index 2e41e3b5d3..d28d1add38 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioTimestampPoller.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/AudioTimestampPoller.java @@ -22,7 +22,6 @@ import android.media.AudioTimestamp; import android.media.AudioTrack; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import java.lang.annotation.Documented; import java.lang.annotation.Retention; @@ -266,7 +265,6 @@ import java.lang.annotation.Target; } } - @RequiresApi(19) private static final class AudioTimestampV19 { private final AudioTrack audioTrack; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSession.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSession.java index 9699fedc2f..340ba92c75 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSession.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSession.java @@ -29,7 +29,6 @@ import android.os.SystemClock; import android.util.Pair; import androidx.annotation.GuardedBy; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.DrmInitData.SchemeData; import androidx.media3.common.util.Assertions; @@ -57,7 +56,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** A {@link DrmSession} that supports playbacks using {@link ExoMediaDrm}. */ -@RequiresApi(18) /* package */ class DefaultDrmSession implements DrmSession { /** Thrown when an unexpected exception or error is thrown during provisioning or key requests. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java index bede9775e6..0376be83c9 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java @@ -29,7 +29,6 @@ import android.os.Message; import android.os.SystemClock; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.DrmInitData; import androidx.media3.common.DrmInitData.SchemeData; @@ -68,7 +67,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; *

This implementation supports pre-acquisition of sessions using {@link * #preacquireSession(DrmSessionEventListener.EventDispatcher, Format)}. */ -@RequiresApi(18) @UnstableApi public class DefaultDrmSessionManager implements DrmSessionManager { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManagerProvider.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManagerProvider.java index 666c0f298b..e015f93a50 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManagerProvider.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManagerProvider.java @@ -20,7 +20,6 @@ import static androidx.media3.exoplayer.drm.DefaultDrmSessionManager.MODE_PLAYBA import androidx.annotation.GuardedBy; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.MediaItem; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -88,7 +87,6 @@ public final class DefaultDrmSessionManagerProvider implements DrmSessionManager } } - @RequiresApi(18) private DrmSessionManager createManager(MediaItem.DrmConfiguration drmConfiguration) { DataSource.Factory dataSourceFactory = drmHttpDataSourceFactory != null diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DrmUtil.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DrmUtil.java index f6def1cb5e..ee2870c1aa 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DrmUtil.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DrmUtil.java @@ -106,7 +106,6 @@ public final class DrmUtil { // Internal classes. - @RequiresApi(18) private static final class Api18 { @DoNotInline diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java index 58efd2f082..d50b0ef827 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DummyExoMediaDrm.java @@ -18,7 +18,6 @@ package androidx.media3.exoplayer.drm; import android.media.MediaDrmException; import android.os.PersistableBundle; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.DrmInitData; import androidx.media3.common.util.UnstableApi; @@ -29,7 +28,6 @@ import java.util.List; import java.util.Map; /** An {@link ExoMediaDrm} that does not support any protection schemes. */ -@RequiresApi(18) @UnstableApi public final class DummyExoMediaDrm implements ExoMediaDrm { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java index e3d51fffc8..d0a5e48e87 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/FrameworkMediaDrm.java @@ -52,7 +52,6 @@ import java.util.Map; import java.util.UUID; /** An {@link ExoMediaDrm} implementation that wraps the framework {@link MediaDrm}. */ -@RequiresApi(18) public final class FrameworkMediaDrm implements ExoMediaDrm { private static final String TAG = "FrameworkMediaDrm"; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java index 6cc5c54733..1e9c0cdd5e 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/OfflineLicenseHelper.java @@ -22,7 +22,6 @@ import android.os.HandlerThread; import android.os.Looper; import android.util.Pair; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.DrmInitData; import androidx.media3.common.Format; import androidx.media3.common.util.Assertions; @@ -38,7 +37,6 @@ import java.util.Map; import java.util.concurrent.ExecutionException; /** Helper class to download, renew and release offline licenses. */ -@RequiresApi(18) @UnstableApi public final class OfflineLicenseHelper { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.java index 49c9620f0f..5eb6848320 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.java @@ -250,7 +250,6 @@ public interface MediaCodecAdapter { * * @see MediaCodec#setParameters(Bundle) */ - @RequiresApi(19) void setParameters(Bundle params); /** diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecBufferEnqueuer.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecBufferEnqueuer.java index 4267b741fd..0e58a8896f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecBufferEnqueuer.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecBufferEnqueuer.java @@ -17,7 +17,6 @@ package androidx.media3.exoplayer.mediacodec; import android.media.MediaCodec; import android.os.Bundle; -import androidx.annotation.RequiresApi; import androidx.media3.decoder.CryptoInfo; /** @@ -57,7 +56,6 @@ import androidx.media3.decoder.CryptoInfo; * * @see MediaCodec#setParameters(Bundle) */ - @RequiresApi(19) void setParameters(Bundle parameters); /** Flushes the instance. */ diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecInfo.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecInfo.java index 956d934635..23031f3521 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecInfo.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/MediaCodecInfo.java @@ -698,7 +698,6 @@ public final class MediaCodecInfo { return isAdaptiveV19(capabilities); } - @RequiresApi(19) private static boolean isAdaptiveV19(CodecCapabilities capabilities) { return capabilities.isFeatureSupported(CodecCapabilities.FEATURE_AdaptivePlayback); } diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.java index 1d5d4cb27d..d45a6d5035 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/mediacodec/SynchronousMediaCodecAdapter.java @@ -192,7 +192,6 @@ public final class SynchronousMediaCodecAdapter implements MediaCodecAdapter { } @Override - @RequiresApi(19) public void setParameters(Bundle params) { codec.setParameters(params); } 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 dca7777385..4607b925df 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 @@ -1682,7 +1682,6 @@ public class MediaCodecVideoRenderer extends MediaCodecRenderer && (!codecInfo.secure || PlaceholderSurface.isSecureSupported(context)); } - @RequiresApi(17) private void releasePlaceholderSurface() { if (displaySurface == placeholderSurface) { displaySurface = null; diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java index 5ee73d52f6..5a3e263597 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/PlaceholderSurface.java @@ -26,7 +26,6 @@ import android.os.HandlerThread; import android.os.Message; import android.view.Surface; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.EGLSurfaceTexture; import androidx.media3.common.util.EGLSurfaceTexture.SecureMode; @@ -37,7 +36,6 @@ import androidx.media3.common.util.Util; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** A placeholder {@link Surface}. */ -@RequiresApi(17) @UnstableApi public final class PlaceholderSurface extends Surface { diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameReleaseHelper.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameReleaseHelper.java index c042279ad9..b259334e0f 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameReleaseHelper.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/video/VideoFrameReleaseHelper.java @@ -499,7 +499,6 @@ public final class VideoFrameReleaseHelper { } } - @RequiresApi(17) private static final class DisplayHelperV17 implements DisplayHelper, DisplayManager.DisplayListener { @@ -652,7 +651,6 @@ public final class VideoFrameReleaseHelper { } } - @RequiresApi(17) private static final class Api17 { @DoNotInline diff --git a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java index f6d8be6236..b4061ae1a9 100644 --- a/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java +++ b/libraries/test_exoplayer_playback/src/androidTest/java/androidx/media3/test/exoplayer/playback/gts/DashTestRunner.java @@ -21,7 +21,6 @@ import android.media.MediaDrm; import android.media.UnsupportedSchemeException; import android.view.Surface; import android.widget.FrameLayout; -import androidx.annotation.RequiresApi; import androidx.annotation.Size; import androidx.media3.common.C; import androidx.media3.common.Format; @@ -509,7 +508,6 @@ import java.util.List; * Creates a new {@code MediaDrm} object. The encapsulation ensures that the tests can be executed * for API level < 18. */ - @RequiresApi(18) private static final class MediaDrmBuilder { public static MediaDrm build() { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java index 8f4ee1cb21..64497966ae 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/AdditionalFailureInfo.java @@ -16,7 +16,6 @@ package androidx.media3.test.utils; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.NullableType; import androidx.media3.common.util.UnstableApi; import androidx.media3.common.util.Util; @@ -39,7 +38,6 @@ import org.junit.runners.model.Statement; *

Includes special handling for {@link AssertionError} to ensure that test failures are * correctly distinguished from test errors (all other errors/exceptions). */ -@RequiresApi(19) @UnstableApi public final class AdditionalFailureInfo implements TestRule { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/BitmapPixelTestUtil.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/BitmapPixelTestUtil.java index d35e5a7e32..1610103144 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/BitmapPixelTestUtil.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/BitmapPixelTestUtil.java @@ -145,7 +145,6 @@ public class BitmapPixelTestUtil { * @return A {@link Bitmap}. * @throws IOException If the bitmap can't be read. */ - @RequiresApi(19) // BitmapFactory.Options#inPremultiplied. public static Bitmap readBitmapUnpremultipliedAlpha(String assetString) throws IOException { Bitmap bitmap; try (InputStream inputStream = getApplicationContext().getAssets().open(assetString)) { @@ -161,7 +160,6 @@ public class BitmapPixelTestUtil { * Returns a bitmap with the same information as the provided alpha/red/green/blue 8-bits per * component image. */ - @RequiresApi(19) public static Bitmap createArgb8888BitmapFromRgba8888Image(Image image) { int width = image.getWidth(); int height = image.getHeight(); @@ -186,7 +184,6 @@ public class BitmapPixelTestUtil { /** * Returns a grayscale bitmap from the Luma channel in the {@link ImageFormat#YUV_420_888} image. */ - @RequiresApi(19) public static Bitmap createGrayscaleArgb8888BitmapFromYuv420888Image(Image image) { int width = image.getWidth(); int height = image.getHeight(); @@ -423,7 +420,6 @@ public class BitmapPixelTestUtil { // createUnpremultipliedArgb8888BitmapFromFocusedGlFramebuffer back to // createArgb8888BitmapFromFocusedGlFramebuffer. Also, apply // setPremultiplied(false) to createBitmapFromFocusedGlFrameBuffer. - @RequiresApi(17) // #flipBitmapVertically. public static Bitmap createArgb8888BitmapFromFocusedGlFramebuffer(int width, int height) throws GlUtil.GlException { return createBitmapFromFocusedGlFrameBuffer( @@ -440,7 +436,6 @@ public class BitmapPixelTestUtil { * @param height The height of the pixel rectangle to read. * @return A {@link Bitmap} with the framebuffer's values. */ - @RequiresApi(19) // Bitmap#setPremultiplied. public static Bitmap createUnpremultipliedArgb8888BitmapFromFocusedGlFramebuffer( int width, int height) throws GlUtil.GlException { Bitmap bitmap = @@ -471,7 +466,6 @@ public class BitmapPixelTestUtil { width, height, /* pixelSize= */ 8, GLES30.GL_HALF_FLOAT, Bitmap.Config.RGBA_F16); } - @RequiresApi(17) // #flipBitmapVertically. private static Bitmap createBitmapFromFocusedGlFrameBuffer( int width, int height, int pixelSize, int glReadPixelsFormat, Bitmap.Config bitmapConfig) throws GlUtil.GlException { @@ -494,14 +488,12 @@ public class BitmapPixelTestUtil { * @param bitmap A {@link Bitmap}. * @return The identifier of the newly created texture. */ - @RequiresApi(17) // #flipBitmapVertically. public static int createGlTextureFromBitmap(Bitmap bitmap) throws GlUtil.GlException { // Put the flipped bitmap in the OpenGL texture as the bitmap's positive y-axis points down // while OpenGL's positive y-axis points up. return GlUtil.createTexture(flipBitmapVertically(bitmap)); } - @RequiresApi(17) // Bitmap#isPremultiplied. public static Bitmap flipBitmapVertically(Bitmap bitmap) { boolean wasPremultiplied = bitmap.isPremultiplied(); if (!wasPremultiplied) { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/CapturingRenderersFactory.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/CapturingRenderersFactory.java index 1be920f8f5..d11aa70432 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/CapturingRenderersFactory.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/CapturingRenderersFactory.java @@ -174,7 +174,6 @@ public class CapturingRenderersFactory implements RenderersFactory, Dumper.Dumpa constructedAdapters = new ArrayList<>(); } - @RequiresApi(18) @Override public MediaCodecAdapter createAdapter(Configuration configuration) throws IOException { CapturingMediaCodecAdapter adapter = @@ -343,7 +342,6 @@ public class CapturingRenderersFactory implements RenderersFactory, Dumper.Dumpa delegate.setOutputSurface(surface); } - @RequiresApi(19) @Override public void setParameters(Bundle params) { delegate.setParameters(params); diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DataSourceContractTest.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DataSourceContractTest.java index bc483fdfe9..c9db9dc5cb 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DataSourceContractTest.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DataSourceContractTest.java @@ -31,7 +31,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import android.net.Uri; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.util.Assertions; import androidx.media3.common.util.UnstableApi; @@ -68,7 +67,6 @@ import org.mockito.Mockito; * not required) to also annotate this {@link Ignore @Ignore} so that JUnit correctly reports the * test as skipped/ignored instead of passing. */ -@RequiresApi(19) @UnstableApi public abstract class DataSourceContractTest { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/HttpDataSourceTestEnv.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/HttpDataSourceTestEnv.java index 48ae08e1f3..dad7531277 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/HttpDataSourceTestEnv.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/HttpDataSourceTestEnv.java @@ -19,7 +19,6 @@ package androidx.media3.test.utils; import static androidx.media3.test.utils.WebServerDispatcher.getRequestPath; import android.net.Uri; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.UnstableApi; import androidx.media3.datasource.HttpDataSource; import com.google.common.collect.ImmutableList; @@ -32,7 +31,6 @@ import org.junit.Rule; import org.junit.rules.ExternalResource; /** A JUnit {@link Rule} that creates test resources for {@link HttpDataSource} contract tests. */ -@RequiresApi(19) @UnstableApi public class HttpDataSourceTestEnv extends ExternalResource { private static int seed = 0; diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TextureBitmapReader.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TextureBitmapReader.java index 3ff86df499..042c92cf46 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/TextureBitmapReader.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/TextureBitmapReader.java @@ -23,7 +23,6 @@ import android.graphics.Bitmap; import android.os.Build; import android.view.Surface; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.GlTextureInfo; import androidx.media3.common.VideoFrameProcessingException; import androidx.media3.common.util.GlUtil; @@ -93,7 +92,6 @@ public final class TextureBitmapReader implements VideoFrameProcessorTestRunner. // createArgb8888BitmapFromFocusedGlFramebuffer, so that TextureBitmapReader always reads bitmaps // as unpremultiplied alpha. Then, remove this method (as we'll already be using premultiplied // alpha). - @RequiresApi(17) // BitmapPixelTestUtil#createArgb8888BitmapFromFocusedGlFramebuffer. public void readBitmap(GlTextureInfo outputTexture, long presentationTimeUs) throws VideoFrameProcessingException { try { @@ -114,7 +112,6 @@ public final class TextureBitmapReader implements VideoFrameProcessorTestRunner. *

The read result can be fetched by calling {@link #getBitmapAtPresentationTimeUs} or {@link * #getBitmap}. */ - @RequiresApi(19) // BitmapPixelTestUtil#createArgb8888BitmapFromFocusedGlFramebuffer. public void readBitmapUnpremultipliedAlpha(GlTextureInfo outputTexture, long presentationTimeUs) throws VideoFrameProcessingException { checkState(!useHighPrecisionColorComponents); @@ -130,7 +127,6 @@ public final class TextureBitmapReader implements VideoFrameProcessorTestRunner. } } - @RequiresApi(17) // BitmapPixelTestUtil#createArgb8888BitmapFromFocusedGlFramebuffer. private static Bitmap createBitmapFromCurrentGlFrameBuffer( int width, int height, boolean useHighPrecisionColorComponents) throws GlUtil.GlException { if (!useHighPrecisionColorComponents) { diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java index 8c6a6e94a9..5481badb4b 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/VideoFrameProcessorTestRunner.java @@ -35,7 +35,6 @@ import android.media.MediaFormat; import android.util.Pair; import android.view.Surface; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.ColorInfo; import androidx.media3.common.DebugViewProvider; import androidx.media3.common.Effect; @@ -61,7 +60,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** A test runner for {@link VideoFrameProcessor} tests. */ @UnstableApi -@RequiresApi(19) public final class VideoFrameProcessorTestRunner { /** A builder for {@link VideoFrameProcessorTestRunner} instances. */ diff --git a/libraries/ui/src/main/java/androidx/media3/ui/CaptionStyleCompat.java b/libraries/ui/src/main/java/androidx/media3/ui/CaptionStyleCompat.java index 3f1e8507aa..a24e22cdcd 100644 --- a/libraries/ui/src/main/java/androidx/media3/ui/CaptionStyleCompat.java +++ b/libraries/ui/src/main/java/androidx/media3/ui/CaptionStyleCompat.java @@ -114,7 +114,6 @@ public final class CaptionStyleCompat { * @param captionStyle A {@link CaptionStyle}. * @return The equivalent {@link CaptionStyleCompat}. */ - @RequiresApi(19) public static CaptionStyleCompat createFromCaptionStyle( CaptioningManager.CaptionStyle captionStyle) { if (Util.SDK_INT >= 21) { @@ -149,7 +148,6 @@ public final class CaptionStyleCompat { this.typeface = typeface; } - @RequiresApi(19) @SuppressWarnings("ResourceType") private static CaptionStyleCompat createFromCaptionStyleV19( CaptioningManager.CaptionStyle captionStyle) {