package androidx.media3.datasource; import androidx.media3.common.util.Assertions; import java.io.IOException; import java.io.InputStream; /* loaded from: classes2.dex */ public final class DataSourceInputStream extends InputStream { private final DataSource dataSource; private final DataSpec dataSpec; private long totalBytesRead; private boolean opened = false; private boolean closed = false; private final byte[] singleByteArray = new byte[1]; public long bytesRead() { return this.totalBytesRead; } public DataSourceInputStream(DataSource dataSource, DataSpec dataSpec) { this.dataSource = dataSource; this.dataSpec = dataSpec; } public void open() throws IOException { checkOpened(); } @Override // java.io.InputStream public int read() throws IOException { if (read(this.singleByteArray) == -1) { return -1; } return this.singleByteArray[0] & 255; } @Override // java.io.InputStream public int read(byte[] bArr) throws IOException { return read(bArr, 0, bArr.length); } @Override // java.io.InputStream public int read(byte[] bArr, int i, int i2) throws IOException { Assertions.checkState(!this.closed); checkOpened(); int read = this.dataSource.read(bArr, i, i2); if (read == -1) { return -1; } this.totalBytesRead += read; return read; } @Override // java.io.InputStream, java.io.Closeable, java.lang.AutoCloseable public void close() throws IOException { if (this.closed) { return; } this.dataSource.close(); this.closed = true; } private void checkOpened() throws IOException { if (this.opened) { return; } this.dataSource.open(this.dataSpec); this.opened = true; } }