diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 51580c032c..28689c76a9 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -172,7 +172,81 @@ * Change the following `IntDefs` to `@Target(TYPE_USE)` only. This may break the compilation of usages in Kotlin, which can be fixed by moving the annotation to annotate the type (`Int`). + * `@AacAudioObjectType` + * `@Ac3Util.SyncFrameInfo.StreamType` + * `@AdLoadException.Type` + * `@AdtsExtractor.Flags` + * `@AmrExtractor.Flags` + * `@AspectRatioFrameLayout.ResizeMode` + * `@AudioFocusManager.PlayerCommand` + * `@AudioSink.SinkFormatSupport` + * `@BinarySearchSeeker.TimestampSearchResult.Type` + * `@BufferReplacementMode` + * `@C.BufferFlags` + * `@C.ColorRange` + * `@C.ColorSpace` + * `@C.ColorTransfer` + * `@C.CryptoMode` + * `@C.Encoding` + * `@C.PcmEncoding` + * `@C.Projection` * `@C.SelectionReason` + * `@C.StereoMode` + * `@C.VideoOutputMode` + * `@CacheDataSource.Flags` + * `@CaptionStyleCompat.EdgeType` + * `@DataSpec.Flags` + * `@DataSpec.HttpMethods` + * `@DecoderDiscardReasons` + * `@DecoderReuseResult` + * `@DefaultAudioSink.OutputMode` + * `@DefaultDrmSessionManager.Mode` + * `@DefaultTrackSelector.SelectionEligibility` + * `@DefaultTsPayloadReaderFactory.Flags` + * `@EGLSurfaceTexture.SecureMode` + * `@EbmlProcessor.ElementType` + * `@ExoMediaDrm.KeyRequest.RequestType` + * `@ExtensionRendererMode` + * `@Extractor.ReadResult` + * `@FileTypes.Type` + * `@FlacExtractor.Flags` (in `com.google.android.exoplayer2.ext.flac` + package) + * `@FlacExtractor.Flags` (in + `com.google.android.exoplayer2.extractor.flac` package) + * `@FragmentedMp4Extractor.Flags` + * `@HlsMediaPlaylist.PlaylistType` + * `@HttpDataSourceException.Type` + * `@IllegalClippingException.Reason` + * `@IllegalMergeException.Reason` + * `@LoadErrorHandlingPolicy.FallbackType` + * `@MatroskaExtractor.Flags` + * `@Mp3Extractor.Flags` + * `@Mp4Extractor.Flags` + * `@NotificationUtil.Importance` + * `@PlaybackException.FieldNumber` + * `@PlayerNotificationManager.Priority` + * `@PlayerNotificationManager.Visibility` + * `@PlayerView.ShowBuffering` + * `@Renderer.State` + * `@RendererCapabilities.AdaptiveSupport` + * `@RendererCapabilities.Capabilities` + * `@RendererCapabilities.DecoderSupport` + * `@RendererCapabilities.FormatSupport` + * `@RendererCapabilities.HardwareAccelerationSupport` + * `@RendererCapabilities.TunnelingSupport` + * `@SampleStream.ReadDataResult` + * `@SampleStream.ReadFlags` + * `@StyledPlayerView.ShowBuffering` + * `@SubtitleView.ViewType` + * `@TextAnnotation.Position` + * `@TextEmphasisSpan.MarkFill` + * `@TextEmphasisSpan.MarkShape` + * `@Track.Transformation` + * `@TrackOutput.SampleDataPart` + * `@Transformer.ProgressState` + * `@TsExtractor.Mode` + * `@TsPayloadReader.Flags` + * `@WebvttCssStyle.FontSizeUnit` ### 2.16.1 (2021-11-18) diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index 23cb9f3bbd..0c51811e8e 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.ext.flac; import static com.google.android.exoplayer2.util.Util.getPcmEncoding; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -40,6 +41,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -61,6 +63,7 @@ public final class FlacExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_DISABLE_ID3_METADATA}) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/C.java b/library/common/src/main/java/com/google/android/exoplayer2/C.java index ecc3f9c48b..0c476e17a9 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/C.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/C.java @@ -163,6 +163,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({CRYPTO_MODE_UNENCRYPTED, CRYPTO_MODE_AES_CTR, CRYPTO_MODE_AES_CBC}) public @interface CryptoMode {} /** @see MediaCodec#CRYPTO_MODE_UNENCRYPTED */ @@ -188,6 +189,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ Format.NO_VALUE, ENCODING_INVALID, @@ -222,6 +224,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ Format.NO_VALUE, ENCODING_INVALID, @@ -478,6 +481,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { @@ -508,6 +512,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef(value = {VIDEO_OUTPUT_MODE_NONE, VIDEO_OUTPUT_MODE_YUV, VIDEO_OUTPUT_MODE_SURFACE_YUV}) public @interface VideoOutputMode {} /** Video decoder output mode is not set. */ @@ -636,6 +641,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( open = true, value = { @@ -828,6 +834,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ Format.NO_VALUE, STEREO_MODE_MONO, @@ -854,6 +861,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({Format.NO_VALUE, COLOR_SPACE_BT709, COLOR_SPACE_BT601, COLOR_SPACE_BT2020}) public @interface ColorSpace {} /** @see MediaFormat#COLOR_STANDARD_BT709 */ @@ -869,6 +877,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({Format.NO_VALUE, COLOR_TRANSFER_SDR, COLOR_TRANSFER_ST2084, COLOR_TRANSFER_HLG}) public @interface ColorTransfer {} /** @see MediaFormat#COLOR_TRANSFER_SDR_VIDEO */ @@ -884,6 +893,7 @@ public final class C { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({Format.NO_VALUE, COLOR_RANGE_LIMITED, COLOR_RANGE_FULL}) public @interface ColorRange {} /** @see MediaFormat#COLOR_RANGE_LIMITED */ @@ -894,6 +904,7 @@ public final class C { /** Video projection types. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ Format.NO_VALUE, PROJECTION_RECTANGULAR, diff --git a/library/common/src/main/java/com/google/android/exoplayer2/PlaybackException.java b/library/common/src/main/java/com/google/android/exoplayer2/PlaybackException.java index 0a3b012d8f..edcb9dc448 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/PlaybackException.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/PlaybackException.java @@ -406,6 +406,7 @@ public class PlaybackException extends Exception implements Bundleable { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( open = true, value = { diff --git a/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextAnnotation.java b/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextAnnotation.java index 6d86aac161..81eeff99f4 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextAnnotation.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextAnnotation.java @@ -15,11 +15,13 @@ */ package com.google.android.exoplayer2.text.span; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import androidx.annotation.IntDef; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import java.lang.annotation.Target; /** Properties of a text annotation (i.e. ruby, text emphasis marks). */ public final class TextAnnotation { @@ -55,6 +57,7 @@ public final class TextAnnotation { */ @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({POSITION_UNKNOWN, POSITION_BEFORE, POSITION_AFTER}) public @interface Position {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextEmphasisSpan.java b/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextEmphasisSpan.java index ce79cf6134..a273d74c1c 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextEmphasisSpan.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/text/span/TextEmphasisSpan.java @@ -15,11 +15,13 @@ */ package com.google.android.exoplayer2.text.span; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import androidx.annotation.IntDef; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import java.lang.annotation.Target; /** * A styling span for text emphasis marks. @@ -48,6 +50,7 @@ public final class TextEmphasisSpan implements LanguageFeatureSpan { */ @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({MARK_SHAPE_NONE, MARK_SHAPE_CIRCLE, MARK_SHAPE_DOT, MARK_SHAPE_SESAME}) public @interface MarkShape {} @@ -69,6 +72,7 @@ public final class TextEmphasisSpan implements LanguageFeatureSpan { */ @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({MARK_FILL_UNKNOWN, MARK_FILL_FILLED, MARK_FILL_OPEN}) public @interface MarkFill {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/EGLSurfaceTexture.java b/library/common/src/main/java/com/google/android/exoplayer2/util/EGLSurfaceTexture.java index b4b7ec1a96..011a48cd8c 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/EGLSurfaceTexture.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/EGLSurfaceTexture.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.util; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.graphics.SurfaceTexture; import android.opengl.EGL14; import android.opengl.EGLConfig; @@ -29,6 +31,7 @@ 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) @@ -46,6 +49,7 @@ public final class EGLSurfaceTexture implements SurfaceTexture.OnFrameAvailableL */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({SECURE_MODE_NONE, SECURE_MODE_SURFACELESS_CONTEXT, SECURE_MODE_PROTECTED_PBUFFER}) public @interface SecureMode {} diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/FileTypes.java b/library/common/src/main/java/com/google/android/exoplayer2/util/FileTypes.java index 53396e135b..6bf5d01099 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/FileTypes.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/FileTypes.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.util; import static com.google.android.exoplayer2.util.MimeTypes.normalizeMimeType; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import androidx.annotation.IntDef; @@ -24,6 +25,7 @@ import androidx.annotation.VisibleForTesting; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.List; import java.util.Map; @@ -37,6 +39,7 @@ public final class FileTypes { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ UNKNOWN, AC3, AC4, ADTS, AMR, FLAC, FLV, MATROSKA, MP3, MP4, OGG, PS, TS, WAV, WEBVTT, JPEG }) diff --git a/library/common/src/main/java/com/google/android/exoplayer2/util/NotificationUtil.java b/library/common/src/main/java/com/google/android/exoplayer2/util/NotificationUtil.java index 9f6274afd6..2d1211b93a 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/util/NotificationUtil.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/util/NotificationUtil.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.util; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.app.Notification; @@ -29,6 +30,7 @@ import androidx.annotation.StringRes; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Utility methods for displaying {@link Notification Notifications}. */ @SuppressLint("InlinedApi") @@ -41,6 +43,7 @@ public final class NotificationUtil { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ IMPORTANCE_UNSPECIFIED, IMPORTANCE_NONE, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java b/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java index 00d09cb562..0510193b06 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/AudioFocusManager.java @@ -62,6 +62,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ PLAYER_COMMAND_DO_NOT_PLAY, PLAYER_COMMAND_WAIT_FOR_CALLBACK, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java index 0d1c126dc5..bef12b5e2c 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/DefaultRenderersFactory.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.content.Context; import android.media.MediaCodec; import android.media.PlaybackParams; @@ -42,6 +44,7 @@ import com.google.android.exoplayer2.video.spherical.CameraMotionRenderer; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.lang.reflect.Constructor; import java.util.ArrayList; @@ -60,6 +63,7 @@ public class DefaultRenderersFactory implements RenderersFactory { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({EXTENSION_RENDERER_MODE_OFF, EXTENSION_RENDERER_MODE_ON, EXTENSION_RENDERER_MODE_PREFER}) public @interface ExtensionRendererMode {} /** Do not allow use of extension renderers. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java index efefe4c61c..8b7dc9c710 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/Renderer.java @@ -15,11 +15,12 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.media.MediaCodec; import android.view.Surface; import androidx.annotation.IntDef; import androidx.annotation.Nullable; -import com.google.android.exoplayer2.PlayerMessage.Target; import com.google.android.exoplayer2.analytics.PlayerId; import com.google.android.exoplayer2.audio.AudioAttributes; import com.google.android.exoplayer2.audio.AuxEffectInfo; @@ -33,6 +34,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * Renders media read from a {@link SampleStream}. @@ -86,6 +88,7 @@ public interface Renderer extends PlayerMessage.Target { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( open = true, value = { @@ -104,8 +107,9 @@ public interface Renderer extends PlayerMessage.Target { public @interface MessageType {} /** * The type of a message that can be passed to a video renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload is normally a {@link Surface}, however - * some video renderers may accept other outputs (e.g., {@link VideoDecoderOutputBufferRenderer}). + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload is normally a {@link + * Surface}, however some video renderers may accept other outputs (e.g., {@link + * VideoDecoderOutputBufferRenderer}). * *

If the receiving renderer does not support the payload type as an output, then it will clear * any existing output that it has. @@ -113,15 +117,15 @@ public interface Renderer extends PlayerMessage.Target { int MSG_SET_VIDEO_OUTPUT = 1; /** * A type of a message that can be passed to an audio renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be a {@link Float} with 0 being - * silence and 1 being unity gain. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be a {@link Float} + * with 0 being silence and 1 being unity gain. */ int MSG_SET_VOLUME = 2; /** * A type of a message that can be passed to an audio renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be an {@link AudioAttributes} - * instance that will configure the underlying audio track. If not set, the default audio - * attributes will be used. They are suitable for general media playback. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be an {@link + * AudioAttributes} instance that will configure the underlying audio track. If not set, the + * default audio attributes will be used. They are suitable for general media playback. * *

Setting the audio attributes during playback may introduce a short gap in audio output as * the audio track is recreated. A new audio session id will also be generated. @@ -140,8 +144,8 @@ public interface Renderer extends PlayerMessage.Target { int MSG_SET_AUDIO_ATTRIBUTES = 3; /** * The type of a message that can be passed to a {@link MediaCodec}-based video renderer via - * {@link ExoPlayer#createMessage(Target)}. The message payload should be one of the integer - * scaling modes in {@link C.VideoScalingMode}. + * {@link ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be one of the + * integer scaling modes in {@link C.VideoScalingMode}. * *

Note that the scaling mode only applies if the {@link Surface} targeted by the renderer is * owned by a {@link android.view.SurfaceView}. @@ -149,45 +153,46 @@ public interface Renderer extends PlayerMessage.Target { int MSG_SET_SCALING_MODE = 4; /** * The type of a message that can be passed to a video renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be one of the integer strategy - * constants in {@link C.VideoChangeFrameRateStrategy}. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be one of the + * integer strategy constants in {@link C.VideoChangeFrameRateStrategy}. */ int MSG_SET_CHANGE_FRAME_RATE_STRATEGY = 5; /** * A type of a message that can be passed to an audio renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be an {@link AuxEffectInfo} - * instance representing an auxiliary audio effect for the underlying audio track. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be an {@link + * AuxEffectInfo} instance representing an auxiliary audio effect for the underlying audio track. */ int MSG_SET_AUX_EFFECT_INFO = 6; /** * The type of a message that can be passed to a video renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be a {@link + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be a {@link * VideoFrameMetadataListener} instance, or null. */ int MSG_SET_VIDEO_FRAME_METADATA_LISTENER = 7; /** * The type of a message that can be passed to a camera motion renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be a {@link CameraMotionListener} - * instance, or null. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be a {@link + * CameraMotionListener} instance, or null. */ int MSG_SET_CAMERA_MOTION_LISTENER = 8; /** * The type of a message that can be passed to an audio renderer via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be a {@link Boolean} instance - * telling whether to enable or disable skipping silences in the audio stream. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be a {@link Boolean} + * instance telling whether to enable or disable skipping silences in the audio stream. */ int MSG_SET_SKIP_SILENCE_ENABLED = 9; /** * The type of a message that can be passed to audio and video renderers via {@link - * ExoPlayer#createMessage(Target)}. The message payload should be an {@link Integer} instance - * representing the audio session ID that will be attached to the underlying audio track. Video - * renderers that support tunneling will use the audio session ID when tunneling is enabled. + * ExoPlayer#createMessage(PlayerMessage.Target)}. The message payload should be an {@link + * Integer} instance representing the audio session ID that will be attached to the underlying + * audio track. Video renderers that support tunneling will use the audio session ID when + * tunneling is enabled. */ int MSG_SET_AUDIO_SESSION_ID = 10; /** * The type of a message that can be passed to a {@link Renderer} via {@link - * ExoPlayer#createMessage(Target)}, to inform the renderer that it can schedule waking up another - * component. + * ExoPlayer#createMessage(PlayerMessage.Target)}, to inform the renderer that it can schedule + * waking up another component. * *

The message payload must be a {@link WakeupListener} instance. */ @@ -204,6 +209,7 @@ public interface Renderer extends PlayerMessage.Target { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({STATE_DISABLED, STATE_ENABLED, STATE_STARTED}) @interface State {} /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/RendererCapabilities.java b/library/core/src/main/java/com/google/android/exoplayer2/RendererCapabilities.java index 79938f6946..1b6d6d03b6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/RendererCapabilities.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/RendererCapabilities.java @@ -15,11 +15,14 @@ */ package com.google.android.exoplayer2; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.annotation.SuppressLint; import androidx.annotation.IntDef; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Defines the capabilities of a {@link Renderer}. */ public interface RendererCapabilities { @@ -28,6 +31,7 @@ public interface RendererCapabilities { @SuppressWarnings("deprecation") @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ FORMAT_HANDLED, FORMAT_EXCEEDS_CAPABILITIES, @@ -56,6 +60,7 @@ public interface RendererCapabilities { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ADAPTIVE_SEAMLESS, ADAPTIVE_NOT_SEAMLESS, ADAPTIVE_NOT_SUPPORTED}) @interface AdaptiveSupport {} @@ -77,6 +82,7 @@ public interface RendererCapabilities { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({TUNNELING_SUPPORTED, TUNNELING_NOT_SUPPORTED}) @interface TunnelingSupport {} @@ -95,6 +101,7 @@ public interface RendererCapabilities { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ HARDWARE_ACCELERATION_SUPPORTED, HARDWARE_ACCELERATION_NOT_SUPPORTED, @@ -115,6 +122,7 @@ public interface RendererCapabilities { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ DECODER_SUPPORT_PRIMARY, DECODER_SUPPORT_FALLBACK, @@ -163,6 +171,7 @@ public interface RendererCapabilities { @Documented @Retention(RetentionPolicy.SOURCE) // Intentionally empty to prevent assignment or comparison with individual flags without masking. + @Target(TYPE_USE) @IntDef({}) @interface Capabilities {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java index 2fa6c708aa..e7ff1b0ec6 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/AudioSink.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.audio; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.media.AudioTrack; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -28,6 +30,7 @@ import com.google.android.exoplayer2.analytics.PlayerId; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; /** @@ -256,6 +259,7 @@ public interface AudioSink { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ SINK_FORMAT_SUPPORTED_DIRECTLY, SINK_FORMAT_SUPPORTED_WITH_TRANSCODING, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java index 3e6c7d1c7b..8807031698 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java @@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.util.Util.constrainValue; import static com.google.common.base.MoreObjects.firstNonNull; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.media.AudioFormat; @@ -50,6 +51,7 @@ import com.google.errorprone.annotations.InlineMeValidationDisabled; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayDeque; @@ -382,6 +384,7 @@ public final class DefaultAudioSink implements AudioSink { /** Audio offload mode configuration. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ OFFLOAD_MODE_DISABLED, OFFLOAD_MODE_ENABLED_GAPLESS_REQUIRED, @@ -419,6 +422,7 @@ public final class DefaultAudioSink implements AudioSink { /** Output mode of the audio sink. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({OUTPUT_MODE_PCM, OUTPUT_MODE_OFFLOAD, OUTPUT_MODE_PASSTHROUGH}) public @interface OutputMode {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.java b/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.java index a23c92ec65..560dfb78a7 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/decoder/DecoderReuseEvaluation.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.decoder; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkNotEmpty; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -26,6 +27,7 @@ import com.google.android.exoplayer2.video.ColorInfo; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * The result of an evaluation to determine whether a decoder can be reused for a new input format. @@ -35,6 +37,7 @@ public final class DecoderReuseEvaluation { /** Possible outcomes of the evaluation. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ REUSE_RESULT_NO, REUSE_RESULT_YES_WITH_FLUSH, @@ -57,6 +60,7 @@ public final class DecoderReuseEvaluation { /** Possible reasons why reuse is not possible. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java index 3fe2636d09..4c50748e89 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/DefaultDrmSessionManager.java @@ -19,6 +19,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.media.ResourceBusyException; @@ -47,6 +48,7 @@ import com.google.common.collect.Sets; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -260,6 +262,7 @@ public class DefaultDrmSessionManager implements DrmSessionManager { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({MODE_PLAYBACK, MODE_QUERY, MODE_DOWNLOAD, MODE_RELEASE}) public @interface Mode {} /** diff --git a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java index 722a010150..45b7885569 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/drm/ExoMediaDrm.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.drm; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.media.DeniedByServerException; import android.media.MediaCryptoException; import android.media.MediaDrm; @@ -32,6 +34,7 @@ import com.google.android.exoplayer2.drm.DrmInitData.SchemeData; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -226,6 +229,7 @@ public interface ExoMediaDrm { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ REQUEST_TYPE_UNKNOWN, REQUEST_TYPE_INITIAL, diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaSource.java index ab62cca0c5..b23eb29c2a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ClippingMediaSource.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -31,6 +32,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; /** @@ -48,6 +50,7 @@ public final class ClippingMediaSource extends CompositeMediaSource { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({REASON_INVALID_PERIOD_COUNT, REASON_NOT_SEEKABLE_TO_START, REASON_START_EXCEEDS_END}) public @interface Reason {} /** The wrapped source doesn't consist of a single period. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/MergingMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/MergingMediaSource.java index f4d44b9540..601ab327cd 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/MergingMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/MergingMediaSource.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -31,6 +32,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -50,6 +52,7 @@ public final class MergingMediaSource extends CompositeMediaSource { /** The reason the merge failed. One of {@link #REASON_PERIOD_COUNT_MISMATCH}. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({REASON_PERIOD_COUNT_MISMATCH}) public @interface Reason {} /** The sources have different period counts. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleStream.java b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleStream.java index a5a05951d1..ff40bd1c34 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/SampleStream.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/SampleStream.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.source; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.FormatHolder; @@ -24,6 +26,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A stream of media samples (and associated format information). */ public interface SampleStream { @@ -34,6 +37,7 @@ public interface SampleStream { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_PEEK, FLAG_REQUIRE_FORMAT, FLAG_OMIT_SAMPLE_DATA}) @@ -67,6 +71,7 @@ public interface SampleStream { /** Return values of {@link #readData}. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({C.RESULT_NOTHING_READ, C.RESULT_FORMAT_READ, C.RESULT_BUFFER_READ}) @interface ReadDataResult {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java index 4667cbea05..ae35402b54 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/source/ads/AdsMediaSource.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source.ads; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import android.os.Handler; @@ -45,6 +46,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -71,6 +73,7 @@ public final class AdsMediaSource extends CompositeMediaSource { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({TYPE_AD, TYPE_AD_GROUP, TYPE_ALL_ADS, TYPE_UNEXPECTED}) public @interface Type {} /** Type for when an ad failed to load. The ad will be skipped. */ diff --git a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java index ef0804feb0..97bc9decde 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/trackselection/DefaultTrackSelector.java @@ -1420,6 +1420,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({SELECTION_ELIGIBILITY_NO, SELECTION_ELIGIBILITY_FIXED, SELECTION_ELIGIBILITY_ADAPTIVE}) protected @interface SelectionEligibility {} diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.java index 0815f9ed5f..67d6109249 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.upstream; import static com.google.android.exoplayer2.util.Assertions.checkArgument; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -28,6 +29,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A policy that defines how load errors are handled. @@ -52,6 +54,7 @@ public interface LoadErrorHandlingPolicy { /** Fallback type. One of {@link #FALLBACK_TYPE_LOCATION} or {@link #FALLBACK_TYPE_TRACK}. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({FALLBACK_TYPE_LOCATION, FALLBACK_TYPE_TRACK}) @interface FallbackType {} diff --git a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/DataSpec.java b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/DataSpec.java index a117a2e3c5..46fd495995 100644 --- a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/DataSpec.java +++ b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/DataSpec.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.upstream; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.net.Uri; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -24,6 +26,7 @@ import com.google.android.exoplayer2.util.Assertions; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -232,6 +235,7 @@ public final class DataSpec { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { @@ -274,6 +278,7 @@ public final class DataSpec { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({HTTP_METHOD_GET, HTTP_METHOD_POST, HTTP_METHOD_HEAD}) public @interface HttpMethod {} /** HTTP GET method. */ diff --git a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/HttpDataSource.java b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/HttpDataSource.java index e76e6f0414..f7c0847a10 100644 --- a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/HttpDataSource.java +++ b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/HttpDataSource.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.upstream; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.text.TextUtils; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -27,6 +29,7 @@ import java.io.InterruptedIOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.net.SocketTimeoutException; import java.util.Collections; import java.util.HashMap; @@ -188,6 +191,7 @@ public interface HttpDataSource extends DataSource { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({TYPE_OPEN, TYPE_READ, TYPE_CLOSE}) public @interface Type {} diff --git a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java index 338d9cd2ac..c18175e6d3 100644 --- a/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java +++ b/library/datasource/src/main/java/com/google/android/exoplayer2/upstream/cache/CacheDataSource.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.upstream.cache; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Util.castNonNull; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import androidx.annotation.IntDef; @@ -41,6 +42,7 @@ import java.io.InterruptedIOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Collections; import java.util.List; import java.util.Map; @@ -328,6 +330,7 @@ public final class CacheDataSource implements DataSource { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/decoder/src/main/java/com/google/android/exoplayer2/decoder/DecoderInputBuffer.java b/library/decoder/src/main/java/com/google/android/exoplayer2/decoder/DecoderInputBuffer.java index 5ddfb9cc81..4ffa262fa7 100644 --- a/library/decoder/src/main/java/com/google/android/exoplayer2/decoder/DecoderInputBuffer.java +++ b/library/decoder/src/main/java/com/google/android/exoplayer2/decoder/DecoderInputBuffer.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.decoder; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -23,6 +25,7 @@ import com.google.android.exoplayer2.Format; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; @@ -66,6 +69,7 @@ public class DecoderInputBuffer extends Buffer { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ BUFFER_REPLACEMENT_MODE_DISABLED, BUFFER_REPLACEMENT_MODE_NORMAL, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/audio/AacUtil.java b/library/extractor/src/main/java/com/google/android/exoplayer2/audio/AacUtil.java index 9fe10f1f86..7010f1c3bf 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/audio/AacUtil.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/audio/AacUtil.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.audio; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.ParserException; @@ -23,6 +25,7 @@ import com.google.android.exoplayer2.util.ParsableBitArray; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Utility methods for handling AAC audio streams. */ public final class AacUtil { @@ -157,6 +160,7 @@ public final class AacUtil { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ AUDIO_OBJECT_TYPE_AAC_LC, AUDIO_OBJECT_TYPE_AAC_SBR, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java b/library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java index f3dfb20f9b..be79879dba 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/audio/Ac3Util.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.audio; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -28,6 +30,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; /** @@ -45,6 +48,7 @@ public final class Ac3Util { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({STREAM_TYPE_UNDEFINED, STREAM_TYPE_TYPE0, STREAM_TYPE_TYPE1, STREAM_TYPE_TYPE2}) public @interface StreamType {} /** Undefined AC3 stream type. */ diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java index b5eb092dfb..8ebe3b84fb 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/BinarySearchSeeker.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -24,6 +26,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** * A seeker that supports seeking within a stream by searching for the target frame using binary @@ -405,6 +408,7 @@ public abstract class BinarySearchSeeker { @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ TYPE_TARGET_TIMESTAMP_FOUND, TYPE_POSITION_OVERESTIMATED, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/Extractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/Extractor.java index 21fb7f1269..b0791bb981 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/Extractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/Extractor.java @@ -15,12 +15,15 @@ */ package com.google.android.exoplayer2.extractor; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Extracts media data from a container format. */ public interface Extractor { @@ -49,6 +52,7 @@ public interface Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef(value = {RESULT_CONTINUE, RESULT_SEEK, RESULT_END_OF_INPUT}) @interface ReadResult {} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/TrackOutput.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/TrackOutput.java index 1a58d232f0..aa505388b4 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/TrackOutput.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/TrackOutput.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -26,6 +28,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; /** Receives track level data extracted by an {@link Extractor}. */ @@ -93,6 +96,7 @@ public interface TrackOutput { /** Defines the part of the sample data to which a call to {@link #sampleData} corresponds. */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({SAMPLE_DATA_PART_MAIN, SAMPLE_DATA_PART_ENCRYPTION, SAMPLE_DATA_PART_SUPPLEMENTAL}) @interface SampleDataPart {} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/amr/AmrExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/amr/AmrExtractor.java index b368874f56..8cd21b0182 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/amr/AmrExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/amr/AmrExtractor.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.amr; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.Format; @@ -37,6 +39,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Arrays; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; @@ -60,6 +63,7 @@ public final class AmrExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_ENABLE_CONSTANT_BITRATE_SEEKING, FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS}) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java index 5182a8a073..02d40451d8 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -65,6 +65,7 @@ public final class FlacExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_DISABLE_ID3_METADATA}) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.java index 458b2e87e3..5c377becb1 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/EbmlProcessor.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.mkv; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.extractor.ExtractorInput; @@ -22,6 +24,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Defines EBML element IDs/types and processes events. */ public interface EbmlProcessor { @@ -33,6 +36,7 @@ public interface EbmlProcessor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ ELEMENT_TYPE_UNKNOWN, ELEMENT_TYPE_MASTER, diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java index 3659f2270e..ccc017c29c 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java @@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.util.Pair; import android.util.SparseArray; @@ -58,6 +59,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.ArrayList; @@ -85,6 +87,7 @@ public class MatroskaExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_DISABLE_SEEK_FOR_CUES}) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.java index d70b6c2f90..fb62350aa2 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp3/Mp3Extractor.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.mp3; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -46,6 +48,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.EnsuresNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; @@ -63,6 +66,7 @@ public final class Mp3Extractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.java index df05019f9b..0c976bf55b 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/FragmentedMp4Extractor.java @@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Util.castNonNull; import static com.google.android.exoplayer2.util.Util.nullSafeArrayCopy; import static java.lang.Math.max; +import static java.lang.annotation.ElementType.TYPE_USE; import android.util.Pair; import android.util.SparseArray; @@ -56,6 +57,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; @@ -78,6 +80,7 @@ public class FragmentedMp4Extractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java index 3b863e1a8d..4731569fca 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Mp4Extractor.java @@ -74,6 +74,7 @@ public final class Mp4Extractor implements Extractor, SeekMap { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Track.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Track.java index 68eb7b4674..eb0427a36a 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Track.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Track.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.mp4; +import static java.lang.annotation.ElementType.TYPE_USE; + import androidx.annotation.IntDef; import androidx.annotation.Nullable; import com.google.android.exoplayer2.C; @@ -22,6 +24,7 @@ import com.google.android.exoplayer2.Format; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** Encapsulates information describing an MP4 track. */ public final class Track { @@ -32,6 +35,7 @@ public final class Track { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({TRANSFORMATION_NONE, TRANSFORMATION_CEA608_CDAT}) public @interface Transformation {} /** A no-op sample transformation. */ diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractor.java index 6ebf9d31b5..827a72c1b9 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/AdtsExtractor.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.extractor.ts; import static com.google.android.exoplayer2.extractor.ts.TsPayloadReader.FLAG_DATA_ALIGNMENT_INDICATOR; import static com.google.android.exoplayer2.metadata.id3.Id3Decoder.ID3_HEADER_LENGTH; import static com.google.android.exoplayer2.metadata.id3.Id3Decoder.ID3_TAG; +import static java.lang.annotation.ElementType.TYPE_USE; import androidx.annotation.IntDef; import com.google.android.exoplayer2.C; @@ -40,6 +41,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull; @@ -56,6 +58,7 @@ public final class AdtsExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {FLAG_ENABLE_CONSTANT_BITRATE_SEEKING, FLAG_ENABLE_CONSTANT_BITRATE_SEEKING_ALWAYS}) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.java index 78af78efc0..6627a64b83 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/DefaultTsPayloadReaderFactory.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.ts; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.util.SparseArray; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -27,6 +29,7 @@ import com.google.common.collect.ImmutableList; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; @@ -42,6 +45,7 @@ public final class DefaultTsPayloadReaderFactory implements TsPayloadReader.Fact */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java index fd678103ab..9d9d0fc656 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsExtractor.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.extractor.ts; import static com.google.android.exoplayer2.extractor.ts.TsPayloadReader.FLAG_PAYLOAD_UNIT_START_INDICATOR; +import static java.lang.annotation.ElementType.TYPE_USE; import android.util.SparseArray; import android.util.SparseBooleanArray; @@ -44,6 +45,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -63,6 +65,7 @@ public final class TsExtractor implements Extractor { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({MODE_MULTI_PMT, MODE_SINGLE_PMT, MODE_HLS}) public @interface Mode {} diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java index 34405a7a1a..06945fe7e1 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/ts/TsPayloadReader.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.extractor.ts; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.util.SparseArray; import androidx.annotation.IntDef; import androidx.annotation.Nullable; @@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.TimestampAdjuster; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.Collections; import java.util.List; @@ -176,6 +179,7 @@ public interface TsPayloadReader { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java index 3edddf17e9..360018cbc5 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/text/webvtt/WebvttCssStyle.java @@ -49,6 +49,7 @@ public final class WebvttCssStyle { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef( flag = true, value = {UNSPECIFIED, STYLE_NORMAL, STYLE_BOLD, STYLE_ITALIC, STYLE_BOLD_ITALIC}) @@ -65,6 +66,7 @@ public final class WebvttCssStyle { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({UNSPECIFIED, FONT_SIZE_UNIT_PIXEL, FONT_SIZE_UNIT_EM, FONT_SIZE_UNIT_PERCENT}) public @interface FontSizeUnit {} diff --git a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java index c0f867dc76..44632fd260 100644 --- a/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java +++ b/library/hls/src/main/java/com/google/android/exoplayer2/source/hls/playlist/HlsMediaPlaylist.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source.hls.playlist; import static java.lang.Math.max; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.net.Uri; import androidx.annotation.IntDef; @@ -30,6 +31,7 @@ import com.google.common.collect.Iterables; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -385,6 +387,7 @@ public final class HlsMediaPlaylist extends HlsPlaylist { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({PLAYLIST_TYPE_UNKNOWN, PLAYLIST_TYPE_VOD, PLAYLIST_TYPE_EVENT}) public @interface PlaylistType {} diff --git a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java index e1f3348bf0..d61dad444a 100644 --- a/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java +++ b/library/transformer/src/main/java/com/google/android/exoplayer2/transformer/Transformer.java @@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.DefaultLoadControl.DEFAULT_MIN_BUFFE import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkState; import static java.lang.Math.min; +import static java.lang.annotation.ElementType.TYPE_USE; import android.content.Context; import android.graphics.Matrix; @@ -62,6 +63,7 @@ import java.io.IOException; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import org.checkerframework.checker.nullness.qual.MonotonicNonNull; /** @@ -501,6 +503,7 @@ public final class Transformer { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ PROGRESS_STATE_WAITING_FOR_AVAILABILITY, PROGRESS_STATE_AVAILABLE, diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/AspectRatioFrameLayout.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/AspectRatioFrameLayout.java index e2428948fa..5ad88c29d7 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/AspectRatioFrameLayout.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/AspectRatioFrameLayout.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.ui; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; @@ -24,6 +26,7 @@ import androidx.annotation.Nullable; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A {@link FrameLayout} that resizes itself to match a specified aspect ratio. */ public final class AspectRatioFrameLayout extends FrameLayout { @@ -51,6 +54,7 @@ public final class AspectRatioFrameLayout extends FrameLayout { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ RESIZE_MODE_FIT, RESIZE_MODE_FIXED_WIDTH, diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/CaptionStyleCompat.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/CaptionStyleCompat.java index dc96abb31d..93761fedd9 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/CaptionStyleCompat.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/CaptionStyleCompat.java @@ -15,6 +15,8 @@ */ package com.google.android.exoplayer2.ui; +import static java.lang.annotation.ElementType.TYPE_USE; + import android.graphics.Color; import android.graphics.Typeface; import android.view.accessibility.CaptioningManager; @@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; /** A compatibility wrapper for {@link CaptionStyle}. */ public final class CaptionStyleCompat { @@ -37,6 +40,7 @@ public final class CaptionStyleCompat { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ EDGE_TYPE_NONE, EDGE_TYPE_OUTLINE, diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java index abb554855b..ec5e48e37f 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java @@ -30,6 +30,7 @@ import static com.google.android.exoplayer2.Player.EVENT_SHUFFLE_MODE_ENABLED_CH import static com.google.android.exoplayer2.Player.EVENT_TIMELINE_CHANGED; import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkState; +import static java.lang.annotation.ElementType.TYPE_USE; import android.app.Notification; import android.app.NotificationChannel; @@ -58,6 +59,7 @@ import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -637,6 +639,7 @@ public class PlayerNotificationManager { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ NotificationCompat.VISIBILITY_PRIVATE, NotificationCompat.VISIBILITY_PUBLIC, @@ -652,6 +655,7 @@ public class PlayerNotificationManager { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({ NotificationCompat.PRIORITY_DEFAULT, NotificationCompat.PRIORITY_MAX, diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java index 8f9ca5d345..b66e1efa80 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerView.java @@ -17,6 +17,7 @@ package com.google.android.exoplayer2.ui; import static com.google.android.exoplayer2.Player.COMMAND_GET_TEXT; import static com.google.android.exoplayer2.Player.COMMAND_SET_VIDEO_SURFACE; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.content.Context; @@ -64,6 +65,7 @@ import com.google.common.collect.ImmutableList; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; @@ -261,6 +263,7 @@ public class PlayerView extends FrameLayout implements AdViewProvider { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({SHOW_BUFFERING_NEVER, SHOW_BUFFERING_WHEN_PLAYING, SHOW_BUFFERING_ALWAYS}) public @interface ShowBuffering {} /** The buffering view is never shown. */ diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java index 2a6107ee09..b32e610731 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerView.java @@ -18,6 +18,7 @@ package com.google.android.exoplayer2.ui; import static com.google.android.exoplayer2.Player.COMMAND_GET_TEXT; import static com.google.android.exoplayer2.Player.COMMAND_SET_VIDEO_SURFACE; import static com.google.android.exoplayer2.util.Assertions.checkNotNull; +import static java.lang.annotation.ElementType.TYPE_USE; import android.annotation.SuppressLint; import android.content.Context; @@ -65,6 +66,7 @@ import com.google.common.collect.ImmutableList; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.List; import org.checkerframework.checker.nullness.qual.EnsuresNonNullIf; @@ -183,6 +185,7 @@ public class StyledPlayerView extends FrameLayout implements AdViewProvider { */ @Documented @Retention(RetentionPolicy.SOURCE) + @Target(TYPE_USE) @IntDef({SHOW_BUFFERING_NEVER, SHOW_BUFFERING_WHEN_PLAYING, SHOW_BUFFERING_ALWAYS}) public @interface ShowBuffering {} /** The buffering view is never shown. */ diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleView.java index 5c5b630d5d..568949b403 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/SubtitleView.java @@ -16,6 +16,7 @@ */ package com.google.android.exoplayer2.ui; +import static java.lang.annotation.ElementType.TYPE_USE; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.content.Context; @@ -35,6 +36,7 @@ import com.google.android.exoplayer2.text.Cue; import com.google.android.exoplayer2.util.Util; import java.lang.annotation.Documented; import java.lang.annotation.Retention; +import java.lang.annotation.Target; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -111,6 +113,7 @@ public final class SubtitleView extends FrameLayout implements Player.Listener { */ @Documented @Retention(SOURCE) + @Target(TYPE_USE) @IntDef({VIEW_TYPE_CANVAS, VIEW_TYPE_WEB}) public @interface ViewType {}