*** Original commit ***

Suppress warnings in preparation for Checker Framework 3.7.1 upgrade.

***

PiperOrigin-RevId: 343086403
This commit is contained in:
tonihei 2020-11-18 16:43:24 +00:00 committed by Ian Baker
parent 44009ea686
commit f13ffb4390
25 changed files with 27 additions and 176 deletions

View File

@ -42,11 +42,7 @@ import java.util.List;
// LINT.ThenChange(../../../../../../../jni/ffmpeg_jni.cc)
private final String codecName;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private final byte[] extraData;
@Nullable private final byte[] extraData;
private final @C.Encoding int encoding;
private final int outputBufferSize;
@ -167,8 +163,6 @@ import java.util.List;
* Returns FFmpeg-compatible codec-specific initialization data ("extra data"), or {@code null} if
* not required.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private static @Nullable byte[] getExtraData(String mimeType, List<byte[]> initializationData) {
switch (mimeType) {
case MimeTypes.AUDIO_AAC:
@ -215,8 +209,6 @@ import java.util.List;
return extraData;
}
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private native long ffmpegInitialize(
String codecName,
@Nullable byte[] extraData,
@ -231,8 +223,6 @@ import java.util.List;
private native int ffmpegGetSampleRate(long context);
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private native long ffmpegReset(long context, @Nullable byte[] extraData);
private native void ffmpegRelease(long context);

View File

@ -50,11 +50,7 @@ import java.nio.ByteBuffer;
@Nullable private ByteBuffer byteBufferData;
@Nullable private ExtractorInput extractorInput;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private byte[] tempBuffer;
@Nullable private byte[] tempBuffer;
private boolean endOfExtractorInput;
public FlacDecoderJni() throws FlacDecoderException {
@ -230,8 +226,6 @@ import java.nio.ByteBuffer;
* @return The corresponding {@link SeekMap.SeekPoints} obtained from the seek table, or {@code
* null} if the stream doesn't have a seek table.
*/
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
public SeekMap.SeekPoints getSeekPoints(long timeUs) {
long[] seekPoints = new long[4];

View File

@ -384,8 +384,6 @@ public final class MediaSessionConnector {
* @param player The player connected to the media session.
* @return The custom action to be included in the session playback state or {@code null}.
*/
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
PlaybackStateCompat.CustomAction getCustomAction(Player player);
}
@ -739,8 +737,6 @@ public final class MediaSessionConnector {
Map<String, CustomActionProvider> currentActions = new HashMap<>();
for (CustomActionProvider customActionProvider : customActionProviders) {
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
PlaybackStateCompat.CustomAction customAction = customActionProvider.getCustomAction(player);
if (customAction != null) {

View File

@ -237,8 +237,6 @@ import java.util.List;
int inputSize,
SimpleOutputBuffer outputBuffer);
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private native int opusSecureDecode(
long decoder,
long timeUs,

View File

@ -207,8 +207,6 @@ import java.nio.ByteBuffer;
private native long vpxClose(long context);
private native long vpxDecode(long context, ByteBuffer encoded, int length);
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private native long vpxSecureDecode(
long context,
ByteBuffer encoded,

View File

@ -100,10 +100,7 @@ public final class AudioAttributes {
public final @C.AudioUsage int usage;
public final @C.AudioAllowedCapturePolicy int allowedCapturePolicy;
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private android.media.AudioAttributes audioAttributesV21;
@Nullable private android.media.AudioAttributes audioAttributesV21;
private AudioAttributes(
@C.AudioContentType int contentType,

View File

@ -32,19 +32,13 @@ public final class CryptoInfo {
*
* @see android.media.MediaCodec.CryptoInfo#iv
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public byte[] iv;
@Nullable public byte[] iv;
/**
* The 16 byte key id.
*
* @see android.media.MediaCodec.CryptoInfo#key
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public byte[] key;
@Nullable public byte[] key;
/**
* The type of encryption that has been applied. Must be one of the {@link C.CryptoMode} values.
*
@ -57,20 +51,14 @@ public final class CryptoInfo {
*
* @see android.media.MediaCodec.CryptoInfo#numBytesOfClearData
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public int[] numBytesOfClearData;
@Nullable public int[] numBytesOfClearData;
/**
* The number of trailing encrypted bytes in each sub-sample. If null, all bytes are treated as
* clear and {@link #numBytesOfClearData} must be specified.
*
* @see android.media.MediaCodec.CryptoInfo#numBytesOfEncryptedData
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public int[] numBytesOfEncryptedData;
@Nullable public int[] numBytesOfEncryptedData;
/**
* The number of subSamples that make up the buffer's contents.
*

View File

@ -291,10 +291,7 @@ public final class DrmInitData implements Comparator<SchemeData>, Parcelable {
/** The mimeType of {@link #data}. */
public final String mimeType;
/** The initialization data. May be null for scheme support checks only. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public final byte[] data;
@Nullable public final byte[] data;
/**
* @param uuid The {@link UUID} of the DRM scheme, or {@link C#UUID_NIL} if the data is
@ -302,8 +299,6 @@ public final class DrmInitData implements Comparator<SchemeData>, Parcelable {
* @param mimeType See {@link #mimeType}.
* @param data See {@link #data}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public SchemeData(UUID uuid, String mimeType, @Nullable byte[] data) {
this(uuid, /* licenseServerUrl= */ null, mimeType, data);
}
@ -315,8 +310,6 @@ public final class DrmInitData implements Comparator<SchemeData>, Parcelable {
* @param mimeType See {@link #mimeType}.
* @param data See {@link #data}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public SchemeData(
UUID uuid, @Nullable String licenseServerUrl, String mimeType, @Nullable byte[] data) {
this.uuid = Assertions.checkNotNull(uuid);
@ -365,8 +358,6 @@ public final class DrmInitData implements Comparator<SchemeData>, Parcelable {
* @param data The data to include in the copy.
* @return The new instance.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public SchemeData copyWithData(@Nullable byte[] data) {
return new SchemeData(uuid, licenseServerUrl, mimeType, data);
}

View File

@ -44,8 +44,6 @@ public final class Metadata implements Parcelable {
* Returns the bytes of the wrapped metadata in this Entry, or null if it doesn't contain
* wrapped metadata.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
default byte[] getWrappedMetadataBytes() {
return null;

View File

@ -118,8 +118,6 @@ public final class EventMessage implements Metadata.Entry {
}
}
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Override
@Nullable
public byte[] getWrappedMetadataBytes() {

View File

@ -40,11 +40,7 @@ public final class DataSpec {
@Nullable private Uri uri;
private long uriPositionOffset;
@HttpMethod private int httpMethod;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private byte[] httpBody;
@Nullable private byte[] httpBody;
private Map<String, String> httpRequestHeaders;
private long position;
private long length;
@ -127,8 +123,6 @@ public final class DataSpec {
* @param httpBody The {@link DataSpec#httpBody}.
* @return The builder.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public Builder setHttpBody(@Nullable byte[] httpBody) {
this.httpBody = httpBody;
return this;
@ -330,10 +324,7 @@ public final class DataSpec {
* The HTTP request body, null otherwise. If the body is non-null, then {@code httpBody.length}
* will be non-zero.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public final byte[] httpBody;
@Nullable public final byte[] httpBody;
/**
* Additional HTTP headers to use when requesting the data.
@ -538,8 +529,7 @@ public final class DataSpec {
* @param key {@link #key}.
* @param flags {@link #flags}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings({"deprecation", "nullness:nullness.on.primitive"})
@SuppressWarnings("deprecation")
@Deprecated
public DataSpec(
Uri uri,
@ -573,8 +563,7 @@ public final class DataSpec {
* @param key {@link #key}.
* @param flags {@link #flags}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings({"deprecation", "nullness:nullness.on.primitive"})
@SuppressWarnings("deprecation")
@Deprecated
public DataSpec(
Uri uri,
@ -611,8 +600,6 @@ public final class DataSpec {
* @param flags {@link #flags}.
* @param httpRequestHeaders {@link #httpRequestHeaders}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Deprecated
public DataSpec(
Uri uri,
@ -637,8 +624,7 @@ public final class DataSpec {
/* customData= */ null);
}
// nullness annotations are not applicable to primitive types
@SuppressWarnings({"deprecation", "nullness:nullness.on.primitive"})
@SuppressWarnings("deprecation")
private DataSpec(
Uri uri,
long uriPositionOffset,

View File

@ -50,10 +50,7 @@ public final class ColorInfo implements Parcelable {
@C.ColorTransfer public final int colorTransfer;
/** HdrStaticInfo as defined in CTA-861.3, or null if none specified. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public final byte[] hdrStaticInfo;
@Nullable public final byte[] hdrStaticInfo;
// Lazily initialized hashcode.
private int hashCode;
@ -66,8 +63,6 @@ public final class ColorInfo implements Parcelable {
* @param colorTransfer The color transfer characteristics of the video.
* @param hdrStaticInfo HdrStaticInfo as defined in CTA-861.3, or null if none specified.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public ColorInfo(
@C.ColorSpace int colorSpace,
@C.ColorRange int colorRange,

View File

@ -101,15 +101,8 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
@Nullable private final Format primaryTrackManifestFormat;
private ExtractorOutput extractorOutput;
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private MediaParser.SeekMap dummySeekMap;
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private MediaParser.SeekMap lastSeekMap;
@Nullable private MediaParser.SeekMap dummySeekMap;
@Nullable private MediaParser.SeekMap lastSeekMap;
@Nullable private String containerMimeType;
@Nullable private ChunkIndex lastChunkIndex;
@Nullable private TimestampAdjuster timestampAdjuster;
@ -201,8 +194,6 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
* {@link MediaParser.SeekPoint#timeMicros} matches the requested timestamp, and {@link
* MediaParser.SeekPoint#position} is 0.
*/
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
public MediaParser.SeekMap getDummySeekMap() {
return dummySeekMap;
@ -325,8 +316,6 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
scratchDataReaderAdapter, (int) sampleData.getLength(), /* allowEndOfInput= */ true);
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Override
public void onSampleCompleted(
int trackIndex,
@ -534,8 +523,6 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
return formatBuilder.build();
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private static DrmInitData toExoPlayerDrmInitData(
@Nullable String schemeType, @Nullable android.media.DrmInitData drmInitData) {
@ -593,8 +580,6 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
private static ColorInfo getColorInfo(MediaFormat mediaFormat) {
@Nullable
ByteBuffer hdrStaticInfoByteBuffer = mediaFormat.getByteBuffer(MediaFormat.KEY_HDR_STATIC_INFO);
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
byte[] hdrStaticInfo =
hdrStaticInfoByteBuffer != null ? getArray(hdrStaticInfoByteBuffer) : null;
@ -696,10 +681,7 @@ public final class OutputConsumerAdapterV30 implements MediaParser.OutputConsume
private static final class DataReaderAdapter implements DataReader {
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
public MediaParser.InputReader input;
@Nullable public MediaParser.InputReader input;
@Override
public int read(byte[] target, int offset, int length) throws IOException {

View File

@ -565,8 +565,6 @@ public final class Cue {
*
* @see Cue#textAlignment
*/
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
public Builder setTextAlignment(@Nullable Layout.Alignment textAlignment) {
this.textAlignment = textAlignment;
return this;

View File

@ -625,8 +625,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
/** Draws a pixel data sub-block, as defined by ETSI EN 300 743 7.2.5.1, into a canvas. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private static void paintPixelDataSubBlock(
byte[] pixelData,
int[] clutEntries,
@ -638,18 +636,9 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
ParsableBitArray data = new ParsableBitArray(pixelData);
int column = horizontalAddress;
int line = verticalAddress;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
byte[] clutMapTable2To4 = null;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
byte[] clutMapTable2To8 = null;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
byte[] clutMapTable4To8 = null;
@Nullable byte[] clutMapTable2To4 = null;
@Nullable byte[] clutMapTable2To8 = null;
@Nullable byte[] clutMapTable4To8 = null;
while (data.bitsLeft() != 0) {
int dataType = data.readBits(8);
@ -704,8 +693,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
/** Paint a 2-bit/pixel code string, as defined by ETSI EN 300 743 7.2.5.2, to a canvas. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private static int paint2BitPixelCodeString(
ParsableBitArray data,
int[] clutEntries,
@ -758,8 +745,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
/** Paint a 4-bit/pixel code string, as defined by ETSI EN 300 743 7.2.5.2, to a canvas. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private static int paint4BitPixelCodeString(
ParsableBitArray data,
int[] clutEntries,
@ -818,8 +803,6 @@ import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
}
/** Paint an 8-bit/pixel code string, as defined by ETSI EN 300 743 7.2.5.2, to a canvas. */
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private static int paint8BitPixelCodeString(
ParsableBitArray data,
int[] clutEntries,

View File

@ -180,10 +180,7 @@ public final class SsaDecoder extends SimpleSubtitleDecoder {
*/
private static Map<String, SsaStyle> parseStyles(ParsableByteArray data) {
Map<String, SsaStyle> styles = new LinkedHashMap<>();
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
SsaStyle.Format formatInfo = null;
@Nullable SsaStyle.Format formatInfo = null;
@Nullable String currentLine;
while ((currentLine = data.readLine()) != null
&& (data.bytesLeft() == 0 || data.peekUnsignedByte() != '[')) {
@ -332,8 +329,6 @@ public final class SsaDecoder extends SimpleSubtitleDecoder {
return cue.build();
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private static Layout.Alignment toTextAlignment(@SsaStyle.SsaAlignment int alignment) {
switch (alignment) {

View File

@ -84,11 +84,7 @@ import java.lang.annotation.RetentionPolicy;
@Nullable private String id;
@RubyType private int rubyType;
@RubySpan.Position private int rubyPosition;
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
private Layout.Alignment textAlign;
@Nullable private Layout.Alignment textAlign;
@OptionalBoolean private int textCombine;
public TtmlStyle() {
@ -283,15 +279,11 @@ import java.lang.annotation.RetentionPolicy;
return rubyPosition;
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
public Layout.Alignment getTextAlign() {
return textAlign;
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
public TtmlStyle setTextAlign(@Nullable Layout.Alignment textAlign) {
this.textAlign = textAlign;
return this;

View File

@ -31,10 +31,7 @@ public final class AesCipherDataSink implements DataSink {
private final DataSink wrappedDataSink;
private final byte[] secretKey;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private final byte[] scratch;
@Nullable private final byte[] scratch;
@Nullable private AesFlushingCipher cipher;
@ -62,8 +59,6 @@ public final class AesCipherDataSink implements DataSink {
* cipher calls will be required to complete the operation. If {@code null} then encryption
* will overwrite the input {@code data}.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
public AesCipherDataSink(byte[] secretKey, DataSink wrappedDataSink, @Nullable byte[] scratch) {
this.wrappedDataSink = wrappedDataSink;
this.secretKey = secretKey;

View File

@ -52,7 +52,5 @@ public interface Clock {
*
* @see Handler#Handler(Looper, Handler.Callback)
*/
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
HandlerWrapper createHandler(Looper looper, @Nullable Handler.Callback callback);
}

View File

@ -50,11 +50,7 @@ public class VideoDecoderOutputBuffer extends OutputBuffer {
/** YUV planes for YUV mode. */
@Nullable public ByteBuffer[] yuvPlanes;
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
public int[] yuvStrides;
@Nullable public int[] yuvStrides;
public int colorspace;
/**

View File

@ -106,10 +106,7 @@ public final class CameraMotionRenderer extends BaseRenderer {
}
buffer.flip();
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
float[] rotation = parseMetadata(Util.castNonNull(buffer.data));
@Nullable float[] rotation = parseMetadata(Util.castNonNull(buffer.data));
if (rotation == null) {
continue;
}
@ -128,8 +125,6 @@ public final class CameraMotionRenderer extends BaseRenderer {
return true;
}
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private float[] parseMetadata(ByteBuffer data) {
if (data.remaining() != 16) {

View File

@ -236,8 +236,6 @@ public final class PlayerEmsgHandler implements Handler.Callback {
}
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
private @Nullable Map.Entry<Long, Long> ceilingExpiryEntryForPublishTime(long publishTimeMs) {
return manifestPublishTimeToExpiryTimeUs.ceilingEntry(publishTimeMs);
}

View File

@ -92,10 +92,7 @@ import com.google.android.exoplayer2.util.Util;
* Entries are in the range [0, 255], but are stored as long integers for convenience. Null if the
* table of contents was missing from the header, in which case seeking is not be supported.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
@Nullable
private final long[] tableOfContents;
@Nullable private final long[] tableOfContents;
private XingSeeker(long dataStartPosition, int xingFrameSize, long durationUs) {
this(
@ -106,8 +103,6 @@ import com.google.android.exoplayer2.util.Util;
/* tableOfContents= */ null);
}
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private XingSeeker(
long dataStartPosition,
int xingFrameSize,

View File

@ -170,8 +170,6 @@ public final class PesReader implements TsPayloadReader {
* @param targetLength The target length of the read.
* @return Whether the target length has been reached.
*/
// nullness annotations are not applicable to primitive types
@SuppressWarnings("nullness:nullness.on.primitive")
private boolean continueRead(
ParsableByteArray source, @Nullable byte[] target, int targetLength) {
int bytesToRead = min(source.bytesLeft(), targetLength - bytesRead);

View File

@ -159,10 +159,7 @@ public final class HlsDownloader extends SegmentDownloader<HlsPlaylist> {
// Generating an incomplete segment list is allowed. Advance to the next media playlist.
continue;
}
// nullness annotations are not applicable to outer types
@SuppressWarnings("nullness:nullness.on.outer")
@Nullable
HlsMediaPlaylist.Segment lastInitSegment = null;
@Nullable HlsMediaPlaylist.Segment lastInitSegment = null;
List<HlsMediaPlaylist.Segment> hlsSegments = mediaPlaylist.segments;
for (int i = 0; i < hlsSegments.size(); i++) {
HlsMediaPlaylist.Segment segment = hlsSegments.get(i);