diff --git a/libraries/transformer/build.gradle b/libraries/transformer/build.gradle index 510f8eca97..00dfc401ab 100644 --- a/libraries/transformer/build.gradle +++ b/libraries/transformer/build.gradle @@ -15,6 +15,7 @@ apply from: "$gradle.ext.androidxMediaSettingsDir/common_library_config.gradle" android { defaultConfig { + minSdkVersion 21 // The following argument makes the Android Test Orchestrator run its // "pm clear" command after each test invocation. This command ensures // that the app's state is completely cleared between tests. diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java index 76f7d51955..c98a858dae 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/AudioSamplePipeline.java @@ -23,7 +23,6 @@ import static java.lang.Math.min; import android.media.MediaCodec.BufferInfo; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.PlaybackException; @@ -41,7 +40,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; /** * Pipeline to decode audio samples, apply transformations on the raw samples, and re-encode them. */ -@RequiresApi(18) /* package */ final class AudioSamplePipeline implements SamplePipeline { private static final String TAG = "AudioSamplePipeline"; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameEditor.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameEditor.java index dfad38037c..dc552d26f1 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameEditor.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameEditor.java @@ -24,7 +24,6 @@ import android.opengl.EGLExt; import android.opengl.EGLSurface; import android.opengl.GLES20; import android.view.Surface; -import androidx.annotation.RequiresApi; import androidx.media3.common.util.GlUtil; import java.io.IOException; @@ -32,7 +31,6 @@ import java.io.IOException; * FrameEditor applies changes to individual video frames. Changes include just resolution for now, * but may later include brightness, cropping, rotation, etc. */ -@RequiresApi(18) /* package */ final class FrameEditor { static { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java index e0d3456ba8..4ebe62e846 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/FrameworkMuxer.java @@ -36,7 +36,6 @@ import java.lang.reflect.Field; import java.nio.ByteBuffer; /** Muxer implementation that uses a {@link MediaMuxer}. */ -@RequiresApi(18) /* package */ final class FrameworkMuxer implements Muxer { public static final class Factory implements Muxer.Factory { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MediaCodecAdapterWrapper.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MediaCodecAdapterWrapper.java index 8db4105660..e41174a4ee 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MediaCodecAdapterWrapper.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MediaCodecAdapterWrapper.java @@ -26,7 +26,6 @@ import android.media.MediaCodecInfo.CodecCapabilities; import android.media.MediaFormat; import android.view.Surface; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; @@ -50,7 +49,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; * through {@link MediaCodecAdapter}. This is done by simplifying the calls needed to queue and * dequeue buffers, removing the need to track buffer indices and codec events. */ -@RequiresApi(18) /* package */ final class MediaCodecAdapterWrapper { // MediaCodec decoders always output 16 bit PCM, unless configured to output PCM float. @@ -303,7 +301,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; inputBuffer.data = null; } - @RequiresApi(18) public void signalEndOfInputStream() { codec.signalEndOfInputStream(); } diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/MuxerWrapper.java b/libraries/transformer/src/main/java/androidx/media3/transformer/MuxerWrapper.java index 83c18bd017..0bba625b21 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/MuxerWrapper.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/MuxerWrapper.java @@ -22,7 +22,6 @@ import static androidx.media3.common.util.Util.minValue; import android.util.SparseIntArray; import android.util.SparseLongArray; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; @@ -34,7 +33,6 @@ import java.nio.ByteBuffer; * *

This wrapper can contain at most one video track and one audio track. */ -@RequiresApi(18) /* package */ final class MuxerWrapper { /** diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java index c2f94abbf0..a51b93b64e 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/Transformer.java @@ -80,7 +80,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; * of the application's main thread is used. In all cases the Looper of the thread from which the * transformer must be accessed can be queried using {@link #getApplicationLooper()}. */ -@RequiresApi(18) @UnstableApi public final class Transformer { diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java index 602cceb12c..f534bcfdca 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerAudioRenderer.java @@ -20,7 +20,6 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.exoplayer.source.SampleStream.FLAG_REQUIRE_FORMAT; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.Metadata; @@ -30,7 +29,6 @@ import androidx.media3.exoplayer.FormatHolder; import androidx.media3.exoplayer.source.SampleStream.ReadDataResult; import androidx.media3.extractor.metadata.mp4.SlowMotionData; -@RequiresApi(18) /* package */ final class TransformerAudioRenderer extends TransformerBaseRenderer { private static final String TAG = "TransformerAudioRenderer"; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java index 8703e29007..29bdce9048 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerBaseRenderer.java @@ -19,7 +19,6 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Assertions.checkStateNotNull; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.MimeTypes; @@ -34,7 +33,6 @@ import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; -@RequiresApi(18) /* package */ abstract class TransformerBaseRenderer extends BaseRenderer { protected final MuxerWrapper muxerWrapper; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMediaClock.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMediaClock.java index a33b505502..82d5b45f55 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMediaClock.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerMediaClock.java @@ -18,12 +18,10 @@ package androidx.media3.transformer; import static androidx.media3.common.util.Util.minValue; import android.util.SparseLongArray; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.PlaybackParameters; import androidx.media3.exoplayer.MediaClock; -@RequiresApi(18) /* package */ final class TransformerMediaClock implements MediaClock { private final SparseLongArray trackTypeToTimeUs; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java index 0baca1b026..60d79eda20 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/TransformerVideoRenderer.java @@ -20,7 +20,6 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import static androidx.media3.exoplayer.source.SampleStream.FLAG_REQUIRE_FORMAT; import android.content.Context; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.decoder.DecoderInputBuffer; @@ -31,7 +30,6 @@ import java.nio.ByteBuffer; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; -@RequiresApi(18) /* package */ final class TransformerVideoRenderer extends TransformerBaseRenderer { private static final String TAG = "TransformerTranscodingVideoRenderer"; diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java index 1fe2bbe908..ac1f792dcd 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/VideoSamplePipeline.java @@ -21,7 +21,6 @@ import static androidx.media3.common.util.Assertions.checkNotNull; import android.content.Context; import android.media.MediaCodec; import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; import androidx.media3.common.C; import androidx.media3.common.Format; import androidx.media3.common.PlaybackException; @@ -33,7 +32,6 @@ import java.io.IOException; /** * Pipeline to decode video samples, apply transformations on the raw samples, and re-encode them. */ -@RequiresApi(18) /* package */ final class VideoSamplePipeline implements SamplePipeline { private static final String TAG = "VideoSamplePipeline";