From 64b928e77f605e65a1154eec4d683806e08e7272 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Thu, 19 Oct 2017 17:28:24 +0100 Subject: [PATCH] Stylistic cleanup --- .../extractor/flv/VideoTagPayloadReader.java | 2 +- .../android/exoplayer2/util/ParsableByteArray.java | 13 +++++++------ .../exoplayer2/util/ParsableByteArrayTest.java | 14 +++++++------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java index 7fa45a2a94..92db91e20b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java @@ -79,7 +79,7 @@ import com.google.android.exoplayer2.video.AvcConfig; @Override protected void parsePayload(ParsableByteArray data, long timeUs) throws ParserException { int packetType = data.readUnsignedByte(); - int compositionTimeMs = data.readSignedInt24(); + int compositionTimeMs = data.readInt24(); timeUs += compositionTimeMs * 1000L; // Parse avc sequence header in case this was not done before. diff --git a/library/core/src/main/java/com/google/android/exoplayer2/util/ParsableByteArray.java b/library/core/src/main/java/com/google/android/exoplayer2/util/ParsableByteArray.java index 9de86cc3bc..57313ea895 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/util/ParsableByteArray.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/util/ParsableByteArray.java @@ -233,7 +233,7 @@ public final class ParsableByteArray { } /** - * Reads the next two bytes as an signed value. + * Reads the next two bytes as a signed value. */ public short readShort() { return (short) ((data[position++] & 0xFF) << 8 @@ -257,11 +257,12 @@ public final class ParsableByteArray { } /** - * Reads the next three bytes as an signed value. + * Reads the next three bytes as a signed value. */ - public int readSignedInt24() { - int ui24 = readUnsignedInt24(); - return (ui24 & 0x800000L) >>> 23 == 1 ? (ui24 | 0xff000000) : ui24; + public int readInt24() { + return ((data[position++] & 0xFF) << 24) >> 8 + | (data[position++] & 0xFF) << 8 + | (data[position++] & 0xFF); } /** @@ -313,7 +314,7 @@ public final class ParsableByteArray { } /** - * Reads the next four bytes as an signed value in little endian order. + * Reads the next four bytes as a signed value in little endian order. */ public int readLittleEndianInt() { return (data[position++] & 0xFF) diff --git a/library/core/src/test/java/com/google/android/exoplayer2/util/ParsableByteArrayTest.java b/library/core/src/test/java/com/google/android/exoplayer2/util/ParsableByteArrayTest.java index 56a4740464..947a692647 100644 --- a/library/core/src/test/java/com/google/android/exoplayer2/util/ParsableByteArrayTest.java +++ b/library/core/src/test/java/com/google/android/exoplayer2/util/ParsableByteArrayTest.java @@ -328,25 +328,25 @@ public final class ParsableByteArrayTest { @Test public void testReadLittleEndianUnsignedInt24() { - byte[] data = { 0x01, 0x02, (byte) 0xFF }; + byte[] data = {0x01, 0x02, (byte) 0xFF}; ParsableByteArray byteArray = new ParsableByteArray(data); assertThat(byteArray.readLittleEndianUnsignedInt24()).isEqualTo(0xFF0201); assertThat(byteArray.getPosition()).isEqualTo(3); } @Test - public void testReadPositiveSignedInt24() { - byte[] data = { 0x01, 0x02, (byte) 0xFF }; + public void testReadInt24Positive() { + byte[] data = {0x01, 0x02, (byte) 0xFF}; ParsableByteArray byteArray = new ParsableByteArray(data); - assertThat(byteArray.readSignedInt24()).isEqualTo(0x0102FF); + assertThat(byteArray.readInt24()).isEqualTo(0x0102FF); assertThat(byteArray.getPosition()).isEqualTo(3); } @Test - public void testReadNegativeSignedInt24() { - byte[] data = { (byte)0xFF, 0x02, (byte) 0x01 }; + public void testReadInt24Negative() { + byte[] data = {(byte) 0xFF, 0x02, (byte) 0x01}; ParsableByteArray byteArray = new ParsableByteArray(data); - assertThat(byteArray.readSignedInt24()).isEqualTo(0xFFFF0201); + assertThat(byteArray.readInt24()).isEqualTo(0xFFFF0201); assertThat(byteArray.getPosition()).isEqualTo(3); }