From 039ce8a95b378c41a164563fa990d22ea989a618 Mon Sep 17 00:00:00 2001 From: kimvde Date: Wed, 11 Dec 2019 11:24:06 +0000 Subject: [PATCH] Remove duplicated logic in FlacReader PiperOrigin-RevId: 284952647 --- .../exoplayer2/extractor/ogg/FlacReader.java | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java index 152d803da7..9889c7f220 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/ogg/FlacReader.java @@ -16,6 +16,7 @@ package com.google.android.exoplayer2.extractor.ogg; 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.SeekPoint; import com.google.android.exoplayer2.util.FlacStreamMetadata; @@ -84,35 +85,15 @@ import java.util.Arrays; } private int getFlacFrameBlockSize(ParsableByteArray packet) { - int blockSizeCode = (packet.data[2] & 0xFF) >> 4; - switch (blockSizeCode) { - case 1: - return 192; - case 2: - 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 blockSizeKey = (packet.data[2] & 0xFF) >> 4; + if (blockSizeKey == 6 || blockSizeKey == 7) { + // Skip the sample number. + packet.skipBytes(FRAME_HEADER_SAMPLE_NUMBER_OFFSET); + packet.readUtf8EncodedLong(); } + int result = FlacFrameReader.readFrameBlockSizeSamplesFromKey(packet, blockSizeKey); + packet.setPosition(0); + return result; } private class FlacOggSeeker implements OggSeeker, SeekMap {