Files
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- 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
2026-02-18 15:48:36 -08:00

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;
}
}