- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
71 lines
2.4 KiB
Java
71 lines
2.4 KiB
Java
package com.mbridge.msdk.playercommon.exoplayer2.util;
|
|
|
|
import android.support.v4.media.session.PlaybackStateCompat;
|
|
|
|
/* loaded from: classes4.dex */
|
|
public final class FlacStreamInfo {
|
|
public final int bitsPerSample;
|
|
public final int channels;
|
|
public final int maxBlockSize;
|
|
public final int maxFrameSize;
|
|
public final int minBlockSize;
|
|
public final int minFrameSize;
|
|
public final int sampleRate;
|
|
public final long totalSamples;
|
|
|
|
public final int bitRate() {
|
|
return this.bitsPerSample * this.sampleRate;
|
|
}
|
|
|
|
public FlacStreamInfo(byte[] bArr, int i) {
|
|
ParsableBitArray parsableBitArray = new ParsableBitArray(bArr);
|
|
parsableBitArray.setPosition(i * 8);
|
|
this.minBlockSize = parsableBitArray.readBits(16);
|
|
this.maxBlockSize = parsableBitArray.readBits(16);
|
|
this.minFrameSize = parsableBitArray.readBits(24);
|
|
this.maxFrameSize = parsableBitArray.readBits(24);
|
|
this.sampleRate = parsableBitArray.readBits(20);
|
|
this.channels = parsableBitArray.readBits(3) + 1;
|
|
this.bitsPerSample = parsableBitArray.readBits(5) + 1;
|
|
this.totalSamples = ((parsableBitArray.readBits(4) & 15) << 32) | (parsableBitArray.readBits(32) & 4294967295L);
|
|
}
|
|
|
|
public FlacStreamInfo(int i, int i2, int i3, int i4, int i5, int i6, int i7, long j) {
|
|
this.minBlockSize = i;
|
|
this.maxBlockSize = i2;
|
|
this.minFrameSize = i3;
|
|
this.maxFrameSize = i4;
|
|
this.sampleRate = i5;
|
|
this.channels = i6;
|
|
this.bitsPerSample = i7;
|
|
this.totalSamples = j;
|
|
}
|
|
|
|
public final int maxDecodedFrameSize() {
|
|
return this.maxBlockSize * this.channels * (this.bitsPerSample / 8);
|
|
}
|
|
|
|
public final long durationUs() {
|
|
return (this.totalSamples * 1000000) / this.sampleRate;
|
|
}
|
|
|
|
public final long getSampleIndex(long j) {
|
|
return Util.constrainValue((j * this.sampleRate) / 1000000, 0L, this.totalSamples - 1);
|
|
}
|
|
|
|
public final long getApproxBytesPerFrame() {
|
|
long j;
|
|
long j2;
|
|
int i = this.maxFrameSize;
|
|
if (i > 0) {
|
|
j = (i + this.minFrameSize) / 2;
|
|
j2 = 1;
|
|
} else {
|
|
int i2 = this.minBlockSize;
|
|
j = ((((i2 != this.maxBlockSize || i2 <= 0) ? PlaybackStateCompat.ACTION_SKIP_TO_QUEUE_ITEM : i2) * this.channels) * this.bitsPerSample) / 8;
|
|
j2 = 64;
|
|
}
|
|
return j + j2;
|
|
}
|
|
}
|