mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
50 lines
2.1 KiB
Java
50 lines
2.1 KiB
Java
package androidx.media3.exoplayer.source.chunk;
|
|
|
|
import androidx.media3.common.Format;
|
|
import androidx.media3.datasource.DataSource;
|
|
import androidx.media3.datasource.DataSourceUtil;
|
|
import androidx.media3.datasource.DataSpec;
|
|
import androidx.media3.exoplayer.source.chunk.ChunkExtractor;
|
|
import androidx.media3.extractor.DefaultExtractorInput;
|
|
import java.io.IOException;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public final class InitializationChunk extends Chunk {
|
|
private final ChunkExtractor chunkExtractor;
|
|
private volatile boolean loadCanceled;
|
|
private long nextLoadPosition;
|
|
private ChunkExtractor.TrackOutputProvider trackOutputProvider;
|
|
|
|
@Override // androidx.media3.exoplayer.upstream.Loader.Loadable
|
|
public void cancelLoad() {
|
|
this.loadCanceled = true;
|
|
}
|
|
|
|
public void init(ChunkExtractor.TrackOutputProvider trackOutputProvider) {
|
|
this.trackOutputProvider = trackOutputProvider;
|
|
}
|
|
|
|
public InitializationChunk(DataSource dataSource, DataSpec dataSpec, Format format, int i, Object obj, ChunkExtractor chunkExtractor) {
|
|
super(dataSource, dataSpec, 2, format, i, obj, -9223372036854775807L, -9223372036854775807L);
|
|
this.chunkExtractor = chunkExtractor;
|
|
}
|
|
|
|
@Override // androidx.media3.exoplayer.upstream.Loader.Loadable
|
|
public void load() throws IOException {
|
|
if (this.nextLoadPosition == 0) {
|
|
this.chunkExtractor.init(this.trackOutputProvider, -9223372036854775807L, -9223372036854775807L);
|
|
}
|
|
try {
|
|
DataSpec subrange = this.dataSpec.subrange(this.nextLoadPosition);
|
|
DefaultExtractorInput defaultExtractorInput = new DefaultExtractorInput(this.dataSource, subrange.position, this.dataSource.open(subrange));
|
|
while (!this.loadCanceled && this.chunkExtractor.read(defaultExtractorInput)) {
|
|
try {
|
|
} finally {
|
|
this.nextLoadPosition = defaultExtractorInput.getPosition() - this.dataSpec.position;
|
|
}
|
|
}
|
|
} finally {
|
|
DataSourceUtil.closeQuietly(this.dataSource);
|
|
}
|
|
}
|
|
}
|