mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
69 lines
2.1 KiB
Java
69 lines
2.1 KiB
Java
package androidx.media3.exoplayer.source.chunk;
|
|
|
|
import androidx.media3.common.Format;
|
|
import androidx.media3.common.util.Util;
|
|
import androidx.media3.datasource.DataSource;
|
|
import androidx.media3.datasource.DataSourceUtil;
|
|
import androidx.media3.datasource.DataSpec;
|
|
import java.io.IOException;
|
|
import java.util.Arrays;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public abstract class DataChunk extends Chunk {
|
|
private static final int READ_GRANULARITY = 16384;
|
|
private byte[] data;
|
|
private volatile boolean loadCanceled;
|
|
|
|
@Override // androidx.media3.exoplayer.upstream.Loader.Loadable
|
|
public final void cancelLoad() {
|
|
this.loadCanceled = true;
|
|
}
|
|
|
|
protected abstract void consume(byte[] bArr, int i) throws IOException;
|
|
|
|
public byte[] getDataHolder() {
|
|
return this.data;
|
|
}
|
|
|
|
public DataChunk(DataSource dataSource, DataSpec dataSpec, int i, Format format, int i2, Object obj, byte[] bArr) {
|
|
super(dataSource, dataSpec, i, format, i2, obj, -9223372036854775807L, -9223372036854775807L);
|
|
DataChunk dataChunk;
|
|
byte[] bArr2;
|
|
if (bArr == null) {
|
|
bArr2 = Util.EMPTY_BYTE_ARRAY;
|
|
dataChunk = this;
|
|
} else {
|
|
dataChunk = this;
|
|
bArr2 = bArr;
|
|
}
|
|
dataChunk.data = bArr2;
|
|
}
|
|
|
|
@Override // androidx.media3.exoplayer.upstream.Loader.Loadable
|
|
public final void load() throws IOException {
|
|
try {
|
|
this.dataSource.open(this.dataSpec);
|
|
int i = 0;
|
|
int i2 = 0;
|
|
while (i != -1 && !this.loadCanceled) {
|
|
maybeExpandData(i2);
|
|
i = this.dataSource.read(this.data, i2, 16384);
|
|
if (i != -1) {
|
|
i2 += i;
|
|
}
|
|
}
|
|
if (!this.loadCanceled) {
|
|
consume(this.data, i2);
|
|
}
|
|
} finally {
|
|
DataSourceUtil.closeQuietly(this.dataSource);
|
|
}
|
|
}
|
|
|
|
private void maybeExpandData(int i) {
|
|
byte[] bArr = this.data;
|
|
if (bArr.length < i + 16384) {
|
|
this.data = Arrays.copyOf(bArr, bArr.length + 16384);
|
|
}
|
|
}
|
|
}
|