Remove duplicated logic in FlacReader

PiperOrigin-RevId: 284952647
This commit is contained in:
kimvde 2019-12-11 11:24:06 +00:00 committed by Oliver Woodman
parent 483e3a6731
commit 039ce8a95b

View File

@ -16,6 +16,7 @@
package com.google.android.exoplayer2.extractor.ogg; package com.google.android.exoplayer2.extractor.ogg;
import com.google.android.exoplayer2.extractor.ExtractorInput; import com.google.android.exoplayer2.extractor.ExtractorInput;
import com.google.android.exoplayer2.extractor.FlacFrameReader;
import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.extractor.SeekMap;
import com.google.android.exoplayer2.extractor.SeekPoint; import com.google.android.exoplayer2.extractor.SeekPoint;
import com.google.android.exoplayer2.util.FlacStreamMetadata; import com.google.android.exoplayer2.util.FlacStreamMetadata;
@ -84,35 +85,15 @@ import java.util.Arrays;
} }
private int getFlacFrameBlockSize(ParsableByteArray packet) { private int getFlacFrameBlockSize(ParsableByteArray packet) {
int blockSizeCode = (packet.data[2] & 0xFF) >> 4; int blockSizeKey = (packet.data[2] & 0xFF) >> 4;
switch (blockSizeCode) { if (blockSizeKey == 6 || blockSizeKey == 7) {
case 1: // Skip the sample number.
return 192; packet.skipBytes(FRAME_HEADER_SAMPLE_NUMBER_OFFSET);
case 2: packet.readUtf8EncodedLong();
case 3:
case 4:
case 5:
return 576 << (blockSizeCode - 2);
case 6:
case 7:
// skip the sample number
packet.skipBytes(FRAME_HEADER_SAMPLE_NUMBER_OFFSET);
packet.readUtf8EncodedLong();
int value = blockSizeCode == 6 ? packet.readUnsignedByte() : packet.readUnsignedShort();
packet.setPosition(0);
return value + 1;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
return 256 << (blockSizeCode - 8);
default:
return -1;
} }
int result = FlacFrameReader.readFrameBlockSizeSamplesFromKey(packet, blockSizeKey);
packet.setPosition(0);
return result;
} }
private class FlacOggSeeker implements OggSeeker, SeekMap { private class FlacOggSeeker implements OggSeeker, SeekMap {