Commit 0c2e77da by ibaker Committed by Ian Baker

Mark all non-public IntDefs as only TYPE_USE

This only changes IntDefs that cannot be used by apps because they're
either private or package-private.

A follow-up change will fix the positions of existing usages to match
this new config.

#minor-release

PiperOrigin-RevId: 426372273
parent 361d9b17
Showing with 229 additions and 3 deletions
...@@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.ext.ima.ImaUtil.getImaLooper; ...@@ -23,6 +23,7 @@ import static com.google.android.exoplayer2.ext.ima.ImaUtil.getImaLooper;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; 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.checkState;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
...@@ -69,6 +70,7 @@ import java.io.IOException; ...@@ -69,6 +70,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -108,6 +110,7 @@ import java.util.Map; ...@@ -108,6 +110,7 @@ import java.util.Map;
/** The state of ad playback. */ /** The state of ad playback. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({IMA_AD_STATE_NONE, IMA_AD_STATE_PLAYING, IMA_AD_STATE_PAUSED}) @IntDef({IMA_AD_STATE_NONE, IMA_AD_STATE_PLAYING, IMA_AD_STATE_PAUSED})
private @interface ImaAdState {} private @interface ImaAdState {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.ext.media2; package com.google.android.exoplayer2.ext.media2;
import static com.google.android.exoplayer2.util.Util.postOrRun; import static com.google.android.exoplayer2.util.Util.postOrRun;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.concurrent.TimeUnit.MILLISECONDS;
import android.os.Handler; import android.os.Handler;
...@@ -32,6 +33,7 @@ import com.google.common.util.concurrent.SettableFuture; ...@@ -32,6 +33,7 @@ import com.google.common.util.concurrent.SettableFuture;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Deque; import java.util.Deque;
...@@ -103,6 +105,7 @@ import java.util.concurrent.Callable; ...@@ -103,6 +105,7 @@ import java.util.concurrent.Callable;
/** List of session commands whose result would be set after the command is finished. */ /** List of session commands whose result would be set after the command is finished. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef( @IntDef(
value = { value = {
COMMAND_CODE_PLAYER_SET_AUDIO_ATTRIBUTES, COMMAND_CODE_PLAYER_SET_AUDIO_ATTRIBUTES,
...@@ -129,6 +132,7 @@ import java.util.concurrent.Callable; ...@@ -129,6 +132,7 @@ import java.util.concurrent.Callable;
/** Command whose result would be set later via listener after the command is finished. */ /** Command whose result would be set later via listener after the command is finished. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef( @IntDef(
value = {COMMAND_CODE_PLAYER_PREPARE, COMMAND_CODE_PLAYER_PLAY, COMMAND_CODE_PLAYER_PAUSE}) value = {COMMAND_CODE_PLAYER_PREPARE, COMMAND_CODE_PLAYER_PLAY, COMMAND_CODE_PLAYER_PAUSE})
public @interface AsyncCommandCode {} public @interface AsyncCommandCode {}
......
...@@ -87,6 +87,7 @@ public final class DeviceInfo implements Bundleable { ...@@ -87,6 +87,7 @@ public final class DeviceInfo implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_PLAYBACK_TYPE, FIELD_MIN_VOLUME, FIELD_MAX_VOLUME}) @IntDef({FIELD_PLAYBACK_TYPE, FIELD_MIN_VOLUME, FIELD_MAX_VOLUME})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -28,6 +30,7 @@ import com.google.common.base.Joiner; ...@@ -28,6 +30,7 @@ import com.google.common.base.Joiner;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
...@@ -1397,6 +1400,7 @@ public final class Format implements Bundleable { ...@@ -1397,6 +1400,7 @@ public final class Format implements Bundleable {
// Bundleable implementation. // Bundleable implementation.
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_ID, FIELD_ID,
FIELD_LABEL, FIELD_LABEL,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -24,6 +25,7 @@ import com.google.common.base.Objects; ...@@ -24,6 +25,7 @@ import com.google.common.base.Objects;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* A rating expressed as "heart" or "no heart". It can be used to indicate whether the content is a * A rating expressed as "heart" or "no heart". It can be used to indicate whether the content is a
...@@ -80,6 +82,7 @@ public final class HeartRating extends Rating { ...@@ -80,6 +82,7 @@ public final class HeartRating extends Rating {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_HEART}) @IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_HEART})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2; ...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; 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.checkState;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
...@@ -31,6 +32,7 @@ import com.google.common.collect.ImmutableMap; ...@@ -31,6 +32,7 @@ import com.google.common.collect.ImmutableMap;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
...@@ -1182,6 +1184,7 @@ public final class MediaItem implements Bundleable { ...@@ -1182,6 +1184,7 @@ public final class MediaItem implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TARGET_OFFSET_MS, FIELD_TARGET_OFFSET_MS,
FIELD_MIN_OFFSET_MS, FIELD_MIN_OFFSET_MS,
...@@ -1590,6 +1593,7 @@ public final class MediaItem implements Bundleable { ...@@ -1590,6 +1593,7 @@ public final class MediaItem implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_START_POSITION_MS, FIELD_START_POSITION_MS,
FIELD_END_POSITION_MS, FIELD_END_POSITION_MS,
...@@ -1735,6 +1739,7 @@ public final class MediaItem implements Bundleable { ...@@ -1735,6 +1739,7 @@ public final class MediaItem implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_MEDIA_ID, FIELD_MEDIA_ID,
FIELD_LIVE_CONFIGURATION, FIELD_LIVE_CONFIGURATION,
......
...@@ -828,6 +828,7 @@ public final class MediaMetadata implements Bundleable { ...@@ -828,6 +828,7 @@ public final class MediaMetadata implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TITLE, FIELD_TITLE,
FIELD_ARTIST, FIELD_ARTIST,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.FloatRange; import androidx.annotation.FloatRange;
...@@ -25,6 +26,7 @@ import com.google.common.base.Objects; ...@@ -25,6 +26,7 @@ import com.google.common.base.Objects;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** A rating expressed as a percentage. */ /** A rating expressed as a percentage. */
public final class PercentageRating extends Rating { public final class PercentageRating extends Rating {
...@@ -78,6 +80,7 @@ public final class PercentageRating extends Rating { ...@@ -78,6 +80,7 @@ public final class PercentageRating extends Rating {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_RATING_TYPE, FIELD_PERCENT}) @IntDef({FIELD_RATING_TYPE, FIELD_PERCENT})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.CheckResult; import androidx.annotation.CheckResult;
import androidx.annotation.FloatRange; import androidx.annotation.FloatRange;
...@@ -25,6 +27,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -25,6 +27,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** Parameters that apply to playback, including speed setting. */ /** Parameters that apply to playback, including speed setting. */
public final class PlaybackParameters implements Bundleable { public final class PlaybackParameters implements Bundleable {
...@@ -119,6 +122,7 @@ public final class PlaybackParameters implements Bundleable { ...@@ -119,6 +122,7 @@ public final class PlaybackParameters implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_SPEED, FIELD_PITCH}) @IntDef({FIELD_SPEED, FIELD_PITCH})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -600,6 +600,7 @@ public interface Player { ...@@ -600,6 +600,7 @@ public interface Player {
// Bundleable implementation. // Bundleable implementation.
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_MEDIA_ITEM_INDEX, FIELD_MEDIA_ITEM_INDEX,
FIELD_MEDIA_ITEM, FIELD_MEDIA_ITEM,
...@@ -894,6 +895,7 @@ public interface Player { ...@@ -894,6 +895,7 @@ public interface Player {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_COMMANDS}) @IntDef({FIELD_COMMANDS})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -15,11 +15,14 @@ ...@@ -15,11 +15,14 @@
*/ */
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* A rating for media content. The style of a rating can be one of {@link HeartRating}, {@link * A rating for media content. The style of a rating can be one of {@link HeartRating}, {@link
...@@ -40,6 +43,7 @@ public abstract class Rating implements Bundleable { ...@@ -40,6 +43,7 @@ public abstract class Rating implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
RATING_TYPE_UNSET, RATING_TYPE_UNSET,
RATING_TYPE_HEART, RATING_TYPE_HEART,
...@@ -57,6 +61,7 @@ public abstract class Rating implements Bundleable { ...@@ -57,6 +61,7 @@ public abstract class Rating implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_RATING_TYPE}) @IntDef({FIELD_RATING_TYPE})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.FloatRange; import androidx.annotation.FloatRange;
...@@ -26,6 +27,7 @@ import com.google.common.base.Objects; ...@@ -26,6 +27,7 @@ import com.google.common.base.Objects;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** A rating expressed as a fractional number of stars. */ /** A rating expressed as a fractional number of stars. */
public final class StarRating extends Rating { public final class StarRating extends Rating {
...@@ -105,6 +107,7 @@ public final class StarRating extends Rating { ...@@ -105,6 +107,7 @@ public final class StarRating extends Rating {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_RATING_TYPE, FIELD_MAX_STARS, FIELD_STAR_RATING}) @IntDef({FIELD_RATING_TYPE, FIELD_MAX_STARS, FIELD_STAR_RATING})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -24,6 +25,7 @@ import com.google.common.base.Objects; ...@@ -24,6 +25,7 @@ import com.google.common.base.Objects;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** A rating expressed as "thumbs up" or "thumbs down". */ /** A rating expressed as "thumbs up" or "thumbs down". */
public final class ThumbRating extends Rating { public final class ThumbRating extends Rating {
...@@ -77,6 +79,7 @@ public final class ThumbRating extends Rating { ...@@ -77,6 +79,7 @@ public final class ThumbRating extends Rating {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_THUMBS_UP}) @IntDef({FIELD_RATING_TYPE, FIELD_RATED, FIELD_IS_THUMBS_UP})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument; ...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkState;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
...@@ -37,6 +38,7 @@ import com.google.errorprone.annotations.InlineMe; ...@@ -37,6 +38,7 @@ import com.google.errorprone.annotations.InlineMe;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -413,6 +415,7 @@ public abstract class Timeline implements Bundleable { ...@@ -413,6 +415,7 @@ public abstract class Timeline implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_MEDIA_ITEM, FIELD_MEDIA_ITEM,
FIELD_PRESENTATION_START_TIME_MS, FIELD_PRESENTATION_START_TIME_MS,
...@@ -896,6 +899,7 @@ public abstract class Timeline implements Bundleable { ...@@ -896,6 +899,7 @@ public abstract class Timeline implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_WINDOW_INDEX, FIELD_WINDOW_INDEX,
FIELD_DURATION_US, FIELD_DURATION_US,
...@@ -1351,6 +1355,7 @@ public abstract class Timeline implements Bundleable { ...@@ -1351,6 +1355,7 @@ public abstract class Timeline implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_WINDOWS, FIELD_WINDOWS,
FIELD_PERIODS, FIELD_PERIODS,
......
...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; ...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList; import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList;
import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle; import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle;
import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList; import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -31,6 +32,7 @@ import com.google.common.primitives.Booleans; ...@@ -31,6 +32,7 @@ import com.google.common.primitives.Booleans;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
...@@ -193,6 +195,7 @@ public final class TracksInfo implements Bundleable { ...@@ -193,6 +195,7 @@ public final class TracksInfo implements Bundleable {
// Bundleable implementation. // Bundleable implementation.
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TRACK_GROUP, FIELD_TRACK_GROUP,
FIELD_TRACK_SUPPORT, FIELD_TRACK_SUPPORT,
...@@ -326,6 +329,7 @@ public final class TracksInfo implements Bundleable { ...@@ -326,6 +329,7 @@ public final class TracksInfo implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TRACK_GROUP_INFOS, FIELD_TRACK_GROUP_INFOS,
}) })
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.audio; package com.google.android.exoplayer2.audio;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.DoNotInline; import androidx.annotation.DoNotInline;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
...@@ -181,6 +184,7 @@ public final class AudioAttributes implements Bundleable { ...@@ -181,6 +184,7 @@ public final class AudioAttributes implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_CONTENT_TYPE, FIELD_CONTENT_TYPE,
FIELD_FLAGS, FIELD_FLAGS,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.source; package com.google.android.exoplayer2.source;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.CheckResult; import androidx.annotation.CheckResult;
...@@ -31,6 +32,7 @@ import com.google.common.collect.Lists; ...@@ -31,6 +32,7 @@ import com.google.common.collect.Lists;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
...@@ -138,6 +140,7 @@ public final class TrackGroup implements Bundleable { ...@@ -138,6 +140,7 @@ public final class TrackGroup implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FIELD_FORMATS, FIELD_ID}) @IntDef({FIELD_FORMATS, FIELD_ID})
private @interface FieldNumber {} private @interface FieldNumber {}
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.source; package com.google.android.exoplayer2.source;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -26,6 +28,7 @@ import com.google.common.collect.ImmutableList; ...@@ -26,6 +28,7 @@ import com.google.common.collect.ImmutableList;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.List; import java.util.List;
/** An immutable array of {@link TrackGroup}s. */ /** An immutable array of {@link TrackGroup}s. */
...@@ -105,6 +108,7 @@ public final class TrackGroupArray implements Bundleable { ...@@ -105,6 +108,7 @@ public final class TrackGroupArray implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TRACK_GROUPS, FIELD_TRACK_GROUPS,
}) })
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.source.ads; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.source.ads;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkState;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
...@@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import org.checkerframework.checker.nullness.compatqual.NullableType; import org.checkerframework.checker.nullness.compatqual.NullableType;
...@@ -344,6 +346,7 @@ public final class AdPlaybackState implements Bundleable { ...@@ -344,6 +346,7 @@ public final class AdPlaybackState implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TIME_US, FIELD_TIME_US,
FIELD_COUNT, FIELD_COUNT,
...@@ -914,6 +917,7 @@ public final class AdPlaybackState implements Bundleable { ...@@ -914,6 +917,7 @@ public final class AdPlaybackState implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_AD_GROUPS, FIELD_AD_GROUPS,
FIELD_AD_RESUME_POSITION_US, FIELD_AD_RESUME_POSITION_US,
......
...@@ -961,6 +961,7 @@ public final class Cue implements Bundleable { ...@@ -961,6 +961,7 @@ public final class Cue implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TEXT, FIELD_TEXT,
FIELD_TEXT_ALIGNMENT, FIELD_TEXT_ALIGNMENT,
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList; import static com.google.android.exoplayer2.util.BundleableUtil.fromBundleNullableList;
import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList; import static com.google.android.exoplayer2.util.BundleableUtil.toBundleArrayList;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.util.Collections.max; import static java.util.Collections.max;
import static java.util.Collections.min; import static java.util.Collections.min;
...@@ -35,6 +36,7 @@ import com.google.common.primitives.Ints; ...@@ -35,6 +36,7 @@ import com.google.common.primitives.Ints;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
...@@ -183,6 +185,7 @@ public final class TrackSelectionOverrides implements Bundleable { ...@@ -183,6 +185,7 @@ public final class TrackSelectionOverrides implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_TRACK_GROUP, FIELD_TRACK_GROUP,
FIELD_TRACKS, FIELD_TRACKS,
...@@ -268,6 +271,7 @@ public final class TrackSelectionOverrides implements Bundleable { ...@@ -268,6 +271,7 @@ public final class TrackSelectionOverrides implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_OVERRIDES, FIELD_OVERRIDES,
}) })
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.trackselection;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle; import static com.google.android.exoplayer2.util.BundleableUtil.fromNullableBundle;
import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.firstNonNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.Context; import android.content.Context;
import android.graphics.Point; import android.graphics.Point;
...@@ -36,6 +37,7 @@ import com.google.common.primitives.Ints; ...@@ -36,6 +37,7 @@ import com.google.common.primitives.Ints;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import org.checkerframework.checker.initialization.qual.UnknownInitialization; import org.checkerframework.checker.initialization.qual.UnknownInitialization;
...@@ -978,6 +980,7 @@ public class TrackSelectionParameters implements Bundleable { ...@@ -978,6 +980,7 @@ public class TrackSelectionParameters implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_PREFERRED_AUDIO_LANGUAGES, FIELD_PREFERRED_AUDIO_LANGUAGES,
FIELD_PREFERRED_AUDIO_ROLE_FLAGS, FIELD_PREFERRED_AUDIO_ROLE_FLAGS,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.video; package com.google.android.exoplayer2.video;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Format; ...@@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Format;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import org.checkerframework.dataflow.qual.Pure; import org.checkerframework.dataflow.qual.Pure;
...@@ -164,6 +167,7 @@ public final class ColorInfo implements Bundleable { ...@@ -164,6 +167,7 @@ public final class ColorInfo implements Bundleable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_COLOR_SPACE, FIELD_COLOR_SPACE,
FIELD_COLOR_RANGE, FIELD_COLOR_RANGE,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.video; package com.google.android.exoplayer2.video;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Bundle; import android.os.Bundle;
import androidx.annotation.FloatRange; import androidx.annotation.FloatRange;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Bundleable; ...@@ -24,6 +26,7 @@ import com.google.android.exoplayer2.Bundleable;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** Represents the video size. */ /** Represents the video size. */
public final class VideoSize implements Bundleable { public final class VideoSize implements Bundleable {
...@@ -129,6 +132,7 @@ public final class VideoSize implements Bundleable { ...@@ -129,6 +132,7 @@ public final class VideoSize implements Bundleable {
// Bundleable implementation. // Bundleable implementation.
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_WIDTH, FIELD_WIDTH,
FIELD_HEIGHT, FIELD_HEIGHT,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2; package com.google.android.exoplayer2;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.Context; import android.content.Context;
import android.media.AudioFocusRequest; import android.media.AudioFocusRequest;
...@@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -32,6 +33,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Manages requesting and responding to changes in audio focus. */ /** Manages requesting and responding to changes in audio focus. */
...@@ -76,6 +78,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -76,6 +78,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Audio focus state. */ /** Audio focus state. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
AUDIO_FOCUS_STATE_NO_FOCUS, AUDIO_FOCUS_STATE_NO_FOCUS,
AUDIO_FOCUS_STATE_HAVE_FOCUS, AUDIO_FOCUS_STATE_HAVE_FOCUS,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.audio; package com.google.android.exoplayer2.audio;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.media.AudioTimestamp; import android.media.AudioTimestamp;
import android.media.AudioTrack; import android.media.AudioTrack;
...@@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -26,6 +28,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* Polls the {@link AudioTrack} timestamp, if the platform supports it, taking care of polling at * Polls the {@link AudioTrack} timestamp, if the platform supports it, taking care of polling at
...@@ -49,6 +52,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -49,6 +52,7 @@ import java.lang.annotation.RetentionPolicy;
/** Timestamp polling states. */ /** Timestamp polling states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_INITIALIZING, STATE_INITIALIZING,
STATE_TIMESTAMP, STATE_TIMESTAMP,
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.audio; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.audio;
import static com.google.android.exoplayer2.util.Util.castNonNull; import static com.google.android.exoplayer2.util.Util.castNonNull;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.media.AudioTimestamp; import android.media.AudioTimestamp;
import android.media.AudioTrack; import android.media.AudioTrack;
...@@ -30,6 +31,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -30,6 +31,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
...@@ -111,6 +113,7 @@ import java.lang.reflect.Method; ...@@ -111,6 +113,7 @@ import java.lang.reflect.Method;
/** {@link AudioTrack} playback states. */ /** {@link AudioTrack} playback states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({PLAYSTATE_STOPPED, PLAYSTATE_PAUSED, PLAYSTATE_PLAYING}) @IntDef({PLAYSTATE_STOPPED, PLAYSTATE_PAUSED, PLAYSTATE_PLAYING})
private @interface PlayState {} private @interface PlayState {}
/** @see AudioTrack#PLAYSTATE_STOPPED */ /** @see AudioTrack#PLAYSTATE_STOPPED */
......
...@@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE ...@@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE
import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT; import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT;
import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.MoreObjects.firstNonNull;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -93,6 +94,7 @@ public abstract class DecoderAudioRenderer< ...@@ -93,6 +94,7 @@ public abstract class DecoderAudioRenderer<
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@java.lang.annotation.Target(TYPE_USE)
@IntDef({ @IntDef({
REINITIALIZATION_STATE_NONE, REINITIALIZATION_STATE_NONE,
REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM, REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.audio; package com.google.android.exoplayer2.audio;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
...@@ -24,6 +25,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -24,6 +25,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
/** /**
...@@ -51,6 +53,7 @@ public final class SilenceSkippingAudioProcessor extends BaseAudioProcessor { ...@@ -51,6 +53,7 @@ public final class SilenceSkippingAudioProcessor extends BaseAudioProcessor {
/** Trimming states. */ /** Trimming states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_NOISY, STATE_NOISY,
STATE_MAYBE_SILENT, STATE_MAYBE_SILENT,
......
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
package com.google.android.exoplayer2.mediacodec; package com.google.android.exoplayer2.mediacodec;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.media.MediaCodec; import android.media.MediaCodec;
import android.media.MediaCrypto; import android.media.MediaCrypto;
import android.media.MediaFormat; import android.media.MediaFormat;
...@@ -36,6 +38,7 @@ import java.io.IOException; ...@@ -36,6 +38,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
/** /**
...@@ -124,6 +127,7 @@ import java.nio.ByteBuffer; ...@@ -124,6 +127,7 @@ import java.nio.ByteBuffer;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({STATE_CREATED, STATE_INITIALIZED, STATE_SHUT_DOWN}) @IntDef({STATE_CREATED, STATE_INITIALIZED, STATE_SHUT_DOWN})
private @interface State {} private @interface State {}
......
...@@ -15,14 +15,18 @@ ...@@ -15,14 +15,18 @@
*/ */
package com.google.android.exoplayer2.mediacodec; package com.google.android.exoplayer2.mediacodec;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.media.MediaCodec; import android.media.MediaCodec;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.util.Log; import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.io.IOException; import java.io.IOException;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* The default {@link MediaCodecAdapter.Factory}. * The default {@link MediaCodecAdapter.Factory}.
...@@ -35,7 +39,9 @@ import java.lang.annotation.RetentionPolicy; ...@@ -35,7 +39,9 @@ import java.lang.annotation.RetentionPolicy;
*/ */
public final class DefaultMediaCodecAdapterFactory implements MediaCodecAdapter.Factory { public final class DefaultMediaCodecAdapterFactory implements MediaCodecAdapter.Factory {
@Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({MODE_DEFAULT, MODE_ENABLED, MODE_DISABLED}) @IntDef({MODE_DEFAULT, MODE_ENABLED, MODE_DISABLED})
private @interface Mode {} private @interface Mode {}
......
...@@ -29,6 +29,7 @@ import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FOR ...@@ -29,6 +29,7 @@ import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FOR
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; 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.checkState;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.media.MediaCodec; import android.media.MediaCodec;
...@@ -77,6 +78,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -77,6 +78,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.ByteOrder; import java.nio.ByteOrder;
import java.util.ArrayDeque; import java.util.ArrayDeque;
...@@ -210,6 +212,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -210,6 +212,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
RECONFIGURATION_STATE_NONE, RECONFIGURATION_STATE_NONE,
RECONFIGURATION_STATE_WRITE_PENDING, RECONFIGURATION_STATE_WRITE_PENDING,
...@@ -228,6 +231,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -228,6 +231,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({DRAIN_STATE_NONE, DRAIN_STATE_SIGNAL_END_OF_STREAM, DRAIN_STATE_WAIT_END_OF_STREAM}) @IntDef({DRAIN_STATE_NONE, DRAIN_STATE_SIGNAL_END_OF_STREAM, DRAIN_STATE_WAIT_END_OF_STREAM})
private @interface DrainState {} private @interface DrainState {}
/** The codec is not being drained. */ /** The codec is not being drained. */
...@@ -239,6 +243,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -239,6 +243,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
DRAIN_ACTION_NONE, DRAIN_ACTION_NONE,
DRAIN_ACTION_FLUSH, DRAIN_ACTION_FLUSH,
...@@ -257,6 +262,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer { ...@@ -257,6 +262,7 @@ public abstract class MediaCodecRenderer extends BaseRenderer {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
ADAPTATION_WORKAROUND_MODE_NEVER, ADAPTATION_WORKAROUND_MODE_NEVER,
ADAPTATION_WORKAROUND_MODE_SAME_RESOLUTION, ADAPTATION_WORKAROUND_MODE_SAME_RESOLUTION,
......
...@@ -18,14 +18,17 @@ package com.google.android.exoplayer2.text; ...@@ -18,14 +18,17 @@ package com.google.android.exoplayer2.text;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; 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.checkNotNull;
import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkState;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.MimeTypes;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Deque; import java.util.Deque;
import java.util.List; import java.util.List;
...@@ -35,6 +38,8 @@ import java.util.List; ...@@ -35,6 +38,8 @@ import java.util.List;
* MimeTypes#TEXT_EXOPLAYER_CUES} * MimeTypes#TEXT_EXOPLAYER_CUES}
*/ */
public final class ExoplayerCuesDecoder implements SubtitleDecoder { public final class ExoplayerCuesDecoder implements SubtitleDecoder {
@Documented
@Target(TYPE_USE)
@IntDef(value = {INPUT_BUFFER_AVAILABLE, INPUT_BUFFER_DEQUEUED, INPUT_BUFFER_QUEUED}) @IntDef(value = {INPUT_BUFFER_AVAILABLE, INPUT_BUFFER_DEQUEUED, INPUT_BUFFER_QUEUED})
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
private @interface InputBufferState {} private @interface InputBufferState {}
......
...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.text; ...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.text;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; 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.checkState;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Handler; import android.os.Handler;
import android.os.Handler.Callback; import android.os.Handler.Callback;
...@@ -36,6 +37,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -36,6 +37,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
...@@ -52,6 +54,7 @@ public final class TextRenderer extends BaseRenderer implements Callback { ...@@ -52,6 +54,7 @@ public final class TextRenderer extends BaseRenderer implements Callback {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
REPLACEMENT_STATE_NONE, REPLACEMENT_STATE_NONE,
REPLACEMENT_STATE_SIGNAL_END_OF_STREAM, REPLACEMENT_STATE_SIGNAL_END_OF_STREAM,
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
package com.google.android.exoplayer2.trackselection; package com.google.android.exoplayer2.trackselection;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.util.Collections.max; import static java.util.Collections.max;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
...@@ -54,6 +55,7 @@ import com.google.common.primitives.Ints; ...@@ -54,6 +55,7 @@ import com.google.common.primitives.Ints;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
...@@ -1113,6 +1115,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { ...@@ -1113,6 +1115,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY, FIELD_EXCEED_VIDEO_CONSTRAINTS_IF_NECESSARY,
FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS, FIELD_ALLOW_VIDEO_MIXED_MIME_TYPE_ADAPTIVENESS,
...@@ -1373,6 +1376,7 @@ public class DefaultTrackSelector extends MappingTrackSelector { ...@@ -1373,6 +1376,7 @@ public class DefaultTrackSelector extends MappingTrackSelector {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FIELD_GROUP_INDEX, FIELD_GROUP_INDEX,
FIELD_TRACKS, FIELD_TRACKS,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.upstream; package com.google.android.exoplayer2.upstream;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.os.Handler; import android.os.Handler;
...@@ -33,6 +34,7 @@ import java.io.IOException; ...@@ -33,6 +34,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
...@@ -143,6 +145,7 @@ public final class Loader implements LoaderErrorThrower { ...@@ -143,6 +145,7 @@ public final class Loader implements LoaderErrorThrower {
/** Types of action that can be taken in response to a load error. */ /** Types of action that can be taken in response to a load error. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
ACTION_TYPE_RETRY, ACTION_TYPE_RETRY,
ACTION_TYPE_RETRY_AND_RESET_ERROR_COUNT, ACTION_TYPE_RETRY_AND_RESET_ERROR_COUNT,
......
...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.DISCA ...@@ -20,6 +20,7 @@ import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.DISCA
import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE_RESULT_NO; import static com.google.android.exoplayer2.decoder.DecoderReuseEvaluation.REUSE_RESULT_NO;
import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT; import static com.google.android.exoplayer2.source.SampleStream.FLAG_REQUIRE_FORMAT;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Handler; import android.os.Handler;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -35,7 +36,7 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -35,7 +36,7 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.Format;
import com.google.android.exoplayer2.FormatHolder; import com.google.android.exoplayer2.FormatHolder;
import com.google.android.exoplayer2.PlaybackException; import com.google.android.exoplayer2.PlaybackException;
import com.google.android.exoplayer2.PlayerMessage.Target; import com.google.android.exoplayer2.PlayerMessage;
import com.google.android.exoplayer2.decoder.CryptoConfig; import com.google.android.exoplayer2.decoder.CryptoConfig;
import com.google.android.exoplayer2.decoder.Decoder; import com.google.android.exoplayer2.decoder.Decoder;
import com.google.android.exoplayer2.decoder.DecoderCounters; import com.google.android.exoplayer2.decoder.DecoderCounters;
...@@ -55,12 +56,13 @@ import com.google.android.exoplayer2.video.VideoRendererEventListener.EventDispa ...@@ -55,12 +56,13 @@ import com.google.android.exoplayer2.video.VideoRendererEventListener.EventDispa
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* Decodes and renders video using a {@link Decoder}. * Decodes and renders video using a {@link Decoder}.
* *
* <p>This renderer accepts the following messages sent via {@link ExoPlayer#createMessage(Target)} * <p>This renderer accepts the following messages sent via {@link
* on the playback thread: * ExoPlayer#createMessage(PlayerMessage.Target)} on the playback thread:
* *
* <ul> * <ul>
* <li>Message with type {@link #MSG_SET_VIDEO_OUTPUT} to set the output surface. The message * <li>Message with type {@link #MSG_SET_VIDEO_OUTPUT} to set the output surface. The message
...@@ -78,6 +80,7 @@ public abstract class DecoderVideoRenderer extends BaseRenderer { ...@@ -78,6 +80,7 @@ public abstract class DecoderVideoRenderer extends BaseRenderer {
/** Decoder reinitialization states. */ /** Decoder reinitialization states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
REINITIALIZATION_STATE_NONE, REINITIALIZATION_STATE_NONE,
REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM, REINITIALIZATION_STATE_SIGNAL_END_OF_STREAM,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.video.spherical; package com.google.android.exoplayer2.video.spherical;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.C.StereoMode; import com.google.android.exoplayer2.C.StereoMode;
...@@ -22,6 +24,7 @@ import com.google.android.exoplayer2.util.Assertions; ...@@ -22,6 +24,7 @@ import com.google.android.exoplayer2.util.Assertions;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** The projection mesh used with 360/VR videos. */ /** The projection mesh used with 360/VR videos. */
/* package */ final class Projection { /* package */ final class Projection {
...@@ -29,6 +32,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -29,6 +32,7 @@ import java.lang.annotation.RetentionPolicy;
/** Enforces allowed (sub) mesh draw modes. */ /** Enforces allowed (sub) mesh draw modes. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({DRAW_MODE_TRIANGLES, DRAW_MODE_TRIANGLES_STRIP, DRAW_MODE_TRIANGLES_FAN}) @IntDef({DRAW_MODE_TRIANGLES, DRAW_MODE_TRIANGLES_STRIP, DRAW_MODE_TRIANGLES_FAN})
public @interface DrawMode {} public @interface DrawMode {}
/** Triangle draw mode. */ /** Triangle draw mode. */
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.source.dash; package com.google.android.exoplayer2.source.dash;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.util.Pair; import android.util.Pair;
import android.util.SparseArray; import android.util.SparseArray;
...@@ -60,6 +61,7 @@ import java.io.IOException; ...@@ -60,6 +61,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.IdentityHashMap; import java.util.IdentityHashMap;
...@@ -911,6 +913,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; ...@@ -911,6 +913,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({CATEGORY_PRIMARY, CATEGORY_EMBEDDED, CATEGORY_MANIFEST_EVENTS}) @IntDef({CATEGORY_PRIMARY, CATEGORY_EMBEDDED, CATEGORY_MANIFEST_EVENTS})
public @interface TrackGroupCategory {} public @interface TrackGroupCategory {}
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.database; package com.google.android.exoplayer2.database;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.ContentValues; import android.content.ContentValues;
import android.database.Cursor; import android.database.Cursor;
import android.database.SQLException; import android.database.SQLException;
...@@ -25,6 +27,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -25,6 +27,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* Utility methods for accessing versions of media library database components. This allows them to * Utility methods for accessing versions of media library database components. This allows them to
...@@ -73,6 +76,7 @@ public final class VersionTable { ...@@ -73,6 +76,7 @@ public final class VersionTable {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
FEATURE_OFFLINE, FEATURE_OFFLINE,
FEATURE_CACHE_CONTENT_METADATA, FEATURE_CACHE_CONTENT_METADATA,
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.extractor.flac; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.extractor.flac;
import static com.google.android.exoplayer2.util.Util.castNonNull; import static com.google.android.exoplayer2.util.Util.castNonNull;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -41,6 +42,7 @@ import java.io.IOException; ...@@ -41,6 +42,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** /**
...@@ -77,6 +79,7 @@ public final class FlacExtractor implements Extractor { ...@@ -77,6 +79,7 @@ public final class FlacExtractor implements Extractor {
/** Parser state. */ /** Parser state. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_READ_ID3_METADATA, STATE_READ_ID3_METADATA,
STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES, STATE_GET_STREAM_MARKER_AND_INFO_BLOCK_BYTES,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.flv; package com.google.android.exoplayer2.extractor.flv;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
...@@ -32,6 +33,7 @@ import java.io.IOException; ...@@ -32,6 +33,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...@@ -44,6 +46,7 @@ public final class FlvExtractor implements Extractor { ...@@ -44,6 +46,7 @@ public final class FlvExtractor implements Extractor {
/** Extractor states. */ /** Extractor states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_READING_FLV_HEADER, STATE_READING_FLV_HEADER,
STATE_SKIPPING_TO_TAG_HEADER, STATE_SKIPPING_TO_TAG_HEADER,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.jpeg; package com.google.android.exoplayer2.extractor.jpeg;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -36,6 +37,7 @@ import java.io.IOException; ...@@ -36,6 +37,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Extracts JPEG image using the Exif format. */ /** Extracts JPEG image using the Exif format. */
...@@ -44,6 +46,7 @@ public final class JpegExtractor implements Extractor { ...@@ -44,6 +46,7 @@ public final class JpegExtractor implements Extractor {
/** Parser states. */ /** Parser states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_READING_MARKER, STATE_READING_MARKER,
STATE_READING_SEGMENT_LENGTH, STATE_READING_SEGMENT_LENGTH,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.extractor.mkv; package com.google.android.exoplayer2.extractor.mkv;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.ParserException;
...@@ -25,6 +27,7 @@ import java.io.IOException; ...@@ -25,6 +27,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...@@ -34,6 +37,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull; ...@@ -34,6 +37,7 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ELEMENT_STATE_READ_ID, ELEMENT_STATE_READ_CONTENT_SIZE, ELEMENT_STATE_READ_CONTENT}) @IntDef({ELEMENT_STATE_READ_ID, ELEMENT_STATE_READ_CONTENT_SIZE, ELEMENT_STATE_READ_CONTENT})
private @interface ElementState {} private @interface ElementState {}
......
...@@ -22,6 +22,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; ...@@ -22,6 +22,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.Util.castNonNull; import static com.google.android.exoplayer2.util.Util.castNonNull;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.util.Pair; import android.util.Pair;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -53,6 +54,7 @@ import java.io.IOException; ...@@ -53,6 +54,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -99,6 +101,7 @@ public final class Mp4Extractor implements Extractor, SeekMap { ...@@ -99,6 +101,7 @@ public final class Mp4Extractor implements Extractor, SeekMap {
/** Parser states. */ /** Parser states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_READING_ATOM_HEADER, STATE_READING_ATOM_HEADER,
STATE_READING_ATOM_PAYLOAD, STATE_READING_ATOM_PAYLOAD,
...@@ -115,6 +118,7 @@ public final class Mp4Extractor implements Extractor, SeekMap { ...@@ -115,6 +118,7 @@ public final class Mp4Extractor implements Extractor, SeekMap {
/** Supported file types. */ /** Supported file types. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({FILE_TYPE_MP4, FILE_TYPE_QUICKTIME, FILE_TYPE_HEIC}) @IntDef({FILE_TYPE_MP4, FILE_TYPE_QUICKTIME, FILE_TYPE_HEIC})
private @interface FileType {} private @interface FileType {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.mp4; package com.google.android.exoplayer2.extractor.mp4;
import static com.google.android.exoplayer2.extractor.Extractor.RESULT_SEEK; import static com.google.android.exoplayer2.extractor.Extractor.RESULT_SEEK;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
...@@ -31,6 +32,7 @@ import java.io.IOException; ...@@ -31,6 +32,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -44,6 +46,7 @@ import java.util.List; ...@@ -44,6 +46,7 @@ import java.util.List;
/** Reader states. */ /** Reader states. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_SHOULD_CHECK_FOR_SEF, STATE_SHOULD_CHECK_FOR_SEF,
STATE_CHECKING_FOR_SEF, STATE_CHECKING_FOR_SEF,
...@@ -60,6 +63,7 @@ import java.util.List; ...@@ -60,6 +63,7 @@ import java.util.List;
/** Supported data types. */ /** Supported data types. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
TYPE_SLOW_MOTION_DATA, TYPE_SLOW_MOTION_DATA,
TYPE_SUPER_SLOW_MOTION_DATA, TYPE_SUPER_SLOW_MOTION_DATA,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.ts; package com.google.android.exoplayer2.extractor.ts;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -33,6 +34,7 @@ import com.google.android.exoplayer2.util.Util; ...@@ -33,6 +34,7 @@ import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...@@ -41,6 +43,7 @@ public final class Ac3Reader implements ElementaryStreamReader { ...@@ -41,6 +43,7 @@ public final class Ac3Reader implements ElementaryStreamReader {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({STATE_FINDING_SYNC, STATE_READING_HEADER, STATE_READING_SAMPLE}) @IntDef({STATE_FINDING_SYNC, STATE_READING_HEADER, STATE_READING_SAMPLE})
private @interface State {} private @interface State {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.ts; package com.google.android.exoplayer2.extractor.ts;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -33,6 +34,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray; ...@@ -33,6 +34,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
import org.checkerframework.checker.nullness.qual.RequiresNonNull; import org.checkerframework.checker.nullness.qual.RequiresNonNull;
...@@ -41,6 +43,7 @@ public final class Ac4Reader implements ElementaryStreamReader { ...@@ -41,6 +43,7 @@ public final class Ac4Reader implements ElementaryStreamReader {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({STATE_FINDING_SYNC, STATE_READING_HEADER, STATE_READING_SAMPLE}) @IntDef({STATE_FINDING_SYNC, STATE_READING_HEADER, STATE_READING_SAMPLE})
private @interface State {} private @interface State {}
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.extractor.ts; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.extractor.ts;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import static com.google.android.exoplayer2.util.Util.castNonNull; import static com.google.android.exoplayer2.util.Util.castNonNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -31,8 +32,10 @@ import com.google.android.exoplayer2.util.MimeTypes; ...@@ -31,8 +32,10 @@ import com.google.android.exoplayer2.util.MimeTypes;
import com.google.android.exoplayer2.util.NalUnitUtil; import com.google.android.exoplayer2.util.NalUnitUtil;
import com.google.android.exoplayer2.util.ParsableBitArray; import com.google.android.exoplayer2.util.ParsableBitArray;
import com.google.android.exoplayer2.util.ParsableByteArray; import com.google.android.exoplayer2.util.ParsableByteArray;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
...@@ -311,7 +314,9 @@ public final class H263Reader implements ElementaryStreamReader { ...@@ -311,7 +314,9 @@ public final class H263Reader implements ElementaryStreamReader {
private static final byte[] START_CODE = new byte[] {0, 0, 1}; private static final byte[] START_CODE = new byte[] {0, 0, 1};
@Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_SKIP_TO_VISUAL_OBJECT_SEQUENCE_START, STATE_SKIP_TO_VISUAL_OBJECT_SEQUENCE_START,
STATE_EXPECT_VISUAL_OBJECT_START, STATE_EXPECT_VISUAL_OBJECT_START,
......
...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.text; ...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.text;
import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkState;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -35,15 +36,19 @@ import com.google.android.exoplayer2.util.Util; ...@@ -35,15 +36,19 @@ import com.google.android.exoplayer2.util.Util;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.io.IOException; import java.io.IOException;
import java.io.InterruptedIOException; import java.io.InterruptedIOException;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.checkerframework.checker.nullness.qual.MonotonicNonNull; import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
/** Generic extractor for extracting subtitles from various subtitle formats. */ /** Generic extractor for extracting subtitles from various subtitle formats. */
public class SubtitleExtractor implements Extractor { public class SubtitleExtractor implements Extractor {
@Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
STATE_CREATED, STATE_CREATED,
STATE_INITIALIZED, STATE_INITIALIZED,
......
...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.text.ssa; ...@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.text.ssa;
import static com.google.android.exoplayer2.text.ssa.SsaDecoder.STYLE_LINE_PREFIX; import static com.google.android.exoplayer2.text.ssa.SsaDecoder.STYLE_LINE_PREFIX;
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.SOURCE; import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.graphics.Color; import android.graphics.Color;
...@@ -35,6 +36,7 @@ import com.google.common.base.Ascii; ...@@ -35,6 +36,7 @@ import com.google.common.base.Ascii;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -61,6 +63,7 @@ import java.util.regex.Pattern; ...@@ -61,6 +63,7 @@ import java.util.regex.Pattern;
* <li>{@link #SSA_ALIGNMENT_TOP_RIGHT} * <li>{@link #SSA_ALIGNMENT_TOP_RIGHT}
* </ul> * </ul>
*/ */
@Target(TYPE_USE)
@IntDef({ @IntDef({
SSA_ALIGNMENT_UNKNOWN, SSA_ALIGNMENT_UNKNOWN,
SSA_ALIGNMENT_BOTTOM_LEFT, SSA_ALIGNMENT_BOTTOM_LEFT,
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
*/ */
package com.google.android.exoplayer2.text.ttml; package com.google.android.exoplayer2.text.ttml;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.SOURCE; import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -29,6 +30,7 @@ import com.google.common.collect.Iterables; ...@@ -29,6 +30,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -41,6 +43,7 @@ import java.util.regex.Pattern; ...@@ -41,6 +43,7 @@ import java.util.regex.Pattern;
@Documented @Documented
@Retention(SOURCE) @Retention(SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
TextEmphasisSpan.MARK_SHAPE_NONE, TextEmphasisSpan.MARK_SHAPE_NONE,
TextEmphasisSpan.MARK_SHAPE_CIRCLE, TextEmphasisSpan.MARK_SHAPE_CIRCLE,
...@@ -58,6 +61,7 @@ import java.util.regex.Pattern; ...@@ -58,6 +61,7 @@ import java.util.regex.Pattern;
@Documented @Documented
@Retention(SOURCE) @Retention(SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
TextAnnotation.POSITION_UNKNOWN, TextAnnotation.POSITION_UNKNOWN,
TextAnnotation.POSITION_BEFORE, TextAnnotation.POSITION_BEFORE,
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.text.ttml; package com.google.android.exoplayer2.text.ttml;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.text.Layout; import android.text.Layout;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -23,6 +25,7 @@ import com.google.android.exoplayer2.text.span.TextAnnotation; ...@@ -23,6 +25,7 @@ import com.google.android.exoplayer2.text.span.TextAnnotation;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** Style object of a <code>TtmlNode</code> */ /** Style object of a <code>TtmlNode</code> */
/* package */ final class TtmlStyle { /* package */ final class TtmlStyle {
...@@ -32,6 +35,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -32,6 +35,7 @@ import java.lang.annotation.RetentionPolicy;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef( @IntDef(
flag = true, flag = true,
value = {UNSPECIFIED, STYLE_NORMAL, STYLE_BOLD, STYLE_ITALIC, STYLE_BOLD_ITALIC}) value = {UNSPECIFIED, STYLE_NORMAL, STYLE_BOLD, STYLE_ITALIC, STYLE_BOLD_ITALIC})
...@@ -44,6 +48,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -44,6 +48,7 @@ import java.lang.annotation.RetentionPolicy;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({UNSPECIFIED, FONT_SIZE_UNIT_PIXEL, FONT_SIZE_UNIT_EM, FONT_SIZE_UNIT_PERCENT}) @IntDef({UNSPECIFIED, FONT_SIZE_UNIT_PIXEL, FONT_SIZE_UNIT_EM, FONT_SIZE_UNIT_PERCENT})
public @interface FontSizeUnit {} public @interface FontSizeUnit {}
...@@ -53,6 +58,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -53,6 +58,7 @@ import java.lang.annotation.RetentionPolicy;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({UNSPECIFIED, OFF, ON}) @IntDef({UNSPECIFIED, OFF, ON})
private @interface OptionalBoolean {} private @interface OptionalBoolean {}
...@@ -61,6 +67,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -61,6 +67,7 @@ import java.lang.annotation.RetentionPolicy;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({UNSPECIFIED, RUBY_TYPE_CONTAINER, RUBY_TYPE_BASE, RUBY_TYPE_TEXT, RUBY_TYPE_DELIMITER}) @IntDef({UNSPECIFIED, RUBY_TYPE_CONTAINER, RUBY_TYPE_BASE, RUBY_TYPE_TEXT, RUBY_TYPE_DELIMITER})
public @interface RubyType {} public @interface RubyType {}
......
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
*/ */
package com.google.android.exoplayer2.text.webvtt; package com.google.android.exoplayer2.text.webvtt;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
...@@ -25,6 +27,7 @@ import com.google.common.base.Ascii; ...@@ -25,6 +27,7 @@ import com.google.common.base.Ascii;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
...@@ -71,6 +74,7 @@ public final class WebvttCssStyle { ...@@ -71,6 +74,7 @@ public final class WebvttCssStyle {
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({UNSPECIFIED, OFF, ON}) @IntDef({UNSPECIFIED, OFF, ON})
private @interface OptionalBoolean {} private @interface OptionalBoolean {}
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.text.webvtt; package com.google.android.exoplayer2.text.webvtt;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import static java.lang.annotation.RetentionPolicy.SOURCE; import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.graphics.Color; import android.graphics.Color;
...@@ -46,6 +47,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray; ...@@ -46,6 +47,7 @@ import com.google.android.exoplayer2.util.ParsableByteArray;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -74,6 +76,7 @@ public final class WebvttCueParser { ...@@ -74,6 +76,7 @@ public final class WebvttCueParser {
*/ */
@Documented @Documented
@Retention(SOURCE) @Retention(SOURCE)
@Target(TYPE_USE)
@IntDef({ @IntDef({
TEXT_ALIGNMENT_START, TEXT_ALIGNMENT_START,
TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER,
......
...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source.hls; ...@@ -17,6 +17,7 @@ package com.google.android.exoplayer2.source.hls;
import static com.google.android.exoplayer2.util.Assertions.checkNotNull; import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -50,8 +51,10 @@ import com.google.common.collect.ImmutableList; ...@@ -50,8 +51,10 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.primitives.Ints; import com.google.common.primitives.Ints;
import java.io.IOException; import java.io.IOException;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
...@@ -89,6 +92,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -89,6 +92,8 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
* Chunk publication state. One of {@link #CHUNK_PUBLICATION_STATE_PRELOAD}, {@link * Chunk publication state. One of {@link #CHUNK_PUBLICATION_STATE_PRELOAD}, {@link
* #CHUNK_PUBLICATION_STATE_PUBLISHED}, {@link #CHUNK_PUBLICATION_STATE_REMOVED}. * #CHUNK_PUBLICATION_STATE_PUBLISHED}, {@link #CHUNK_PUBLICATION_STATE_REMOVED}.
*/ */
@Documented
@Target(TYPE_USE)
@IntDef({ @IntDef({
CHUNK_PUBLICATION_STATE_PRELOAD, CHUNK_PUBLICATION_STATE_PRELOAD,
CHUNK_PUBLICATION_STATE_PUBLISHED, CHUNK_PUBLICATION_STATE_PUBLISHED,
......
...@@ -15,14 +15,18 @@ ...@@ -15,14 +15,18 @@
*/ */
package com.google.android.exoplayer2.source.rtsp; package com.google.android.exoplayer2.source.rtsp;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.util.Base64; import android.util.Base64;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.ParserException;
import com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.RtspAuthUserInfo; import com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.RtspAuthUserInfo;
import com.google.android.exoplayer2.util.Util; import com.google.android.exoplayer2.util.Util;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
...@@ -30,7 +34,9 @@ import java.security.NoSuchAlgorithmException; ...@@ -30,7 +34,9 @@ import java.security.NoSuchAlgorithmException;
/* package */ final class RtspAuthenticationInfo { /* package */ final class RtspAuthenticationInfo {
/** The supported authentication methods. */ /** The supported authentication methods. */
@Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({BASIC, DIGEST}) @IntDef({BASIC, DIGEST})
@interface AuthenticationMechanism {} @interface AuthenticationMechanism {}
......
...@@ -35,6 +35,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState; ...@@ -35,6 +35,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkState;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import static com.google.common.base.Strings.nullToEmpty; import static com.google.common.base.Strings.nullToEmpty;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
...@@ -61,6 +62,7 @@ import java.io.IOException; ...@@ -61,6 +62,7 @@ import java.io.IOException;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.net.Socket; import java.net.Socket;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.HashMap; import java.util.HashMap;
...@@ -78,6 +80,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -78,6 +80,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
*/ */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({RTSP_STATE_UNINITIALIZED, RTSP_STATE_INIT, RTSP_STATE_READY, RTSP_STATE_PLAYING}) @IntDef({RTSP_STATE_UNINITIALIZED, RTSP_STATE_INIT, RTSP_STATE_READY, RTSP_STATE_PLAYING})
public @interface RtspState {} public @interface RtspState {}
/** RTSP uninitialized state, the state before sending any SETUP request. */ /** RTSP uninitialized state, the state before sending any SETUP request. */
......
...@@ -19,6 +19,7 @@ import static com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.isRtspSt ...@@ -19,6 +19,7 @@ import static com.google.android.exoplayer2.source.rtsp.RtspMessageUtil.isRtspSt
import static com.google.android.exoplayer2.util.Assertions.checkArgument; import static com.google.android.exoplayer2.util.Assertions.checkArgument;
import static com.google.android.exoplayer2.util.Assertions.checkState; import static com.google.android.exoplayer2.util.Assertions.checkState;
import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull; import static com.google.android.exoplayer2.util.Assertions.checkStateNotNull;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
...@@ -42,6 +43,7 @@ import java.io.OutputStream; ...@@ -42,6 +43,7 @@ import java.io.OutputStream;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.net.Socket; import java.net.Socket;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -339,6 +341,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull; ...@@ -339,6 +341,7 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({STATE_READING_FIRST_LINE, STATE_READING_HEADER, STATE_READING_BODY}) @IntDef({STATE_READING_FIRST_LINE, STATE_READING_HEADER, STATE_READING_BODY})
@interface ReadingState {} @interface ReadingState {}
......
...@@ -16,11 +16,14 @@ ...@@ -16,11 +16,14 @@
package com.google.android.exoplayer2.source.rtsp; package com.google.android.exoplayer2.source.rtsp;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.net.Uri; import android.net.Uri;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** Represents an RTSP request. */ /** Represents an RTSP request. */
/* package */ final class RtspRequest { /* package */ final class RtspRequest {
...@@ -47,6 +50,7 @@ import java.lang.annotation.RetentionPolicy; ...@@ -47,6 +50,7 @@ import java.lang.annotation.RetentionPolicy;
*/ */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef( @IntDef(
value = { value = {
METHOD_UNSET, METHOD_UNSET,
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package com.google.android.exoplayer2.testutil; package com.google.android.exoplayer2.testutil;
import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth.assertWithMessage;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.content.Context; import android.content.Context;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -28,6 +29,7 @@ import java.io.PrintWriter; ...@@ -28,6 +29,7 @@ import java.io.PrintWriter;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/** /**
* Helper class to enable assertions based on golden-data dump files. * Helper class to enable assertions based on golden-data dump files.
...@@ -51,6 +53,7 @@ public class DumpFileAsserts { ...@@ -51,6 +53,7 @@ public class DumpFileAsserts {
/** Possible actions to take with the dumps passed to {@link #assertOutput}. */ /** Possible actions to take with the dumps passed to {@link #assertOutput}. */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef( @IntDef(
flag = true, flag = true,
value = {COMPARE_WITH_EXISTING, WRITE_TO_LOCAL, WRITE_TO_DEVICE}) value = {COMPARE_WITH_EXISTING, WRITE_TO_LOCAL, WRITE_TO_DEVICE})
......
...@@ -21,6 +21,7 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull; ...@@ -21,6 +21,7 @@ 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.checkState;
import static java.lang.Math.max; import static java.lang.Math.max;
import static java.lang.Math.min; import static java.lang.Math.min;
import static java.lang.annotation.ElementType.TYPE_USE;
import android.util.Pair; import android.util.Pair;
import androidx.annotation.IntDef; import androidx.annotation.IntDef;
...@@ -33,6 +34,7 @@ import com.google.common.collect.Maps; ...@@ -33,6 +34,7 @@ import com.google.common.collect.Maps;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
...@@ -66,6 +68,7 @@ public class WebServerDispatcher extends Dispatcher { ...@@ -66,6 +68,7 @@ public class WebServerDispatcher extends Dispatcher {
*/ */
@Documented @Documented
@Retention(RetentionPolicy.SOURCE) @Retention(RetentionPolicy.SOURCE)
@Target(TYPE_USE)
@IntDef({GZIP_SUPPORT_DISABLED, GZIP_SUPPORT_ENABLED, GZIP_SUPPORT_FORCED}) @IntDef({GZIP_SUPPORT_DISABLED, GZIP_SUPPORT_ENABLED, GZIP_SUPPORT_FORCED})
private @interface GzipSupport {} private @interface GzipSupport {}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment