diff --git a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java index 8c31bde2a2..79dd20065b 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/extractor/flac/FlacExtractor.java @@ -256,15 +256,18 @@ public final class FlacExtractor implements Extractor { // Copy more bytes into the buffer. int currentLimit = buffer.limit(); - int bytesRead = - input.read( - buffer.data, /* offset= */ currentLimit, /* length= */ BUFFER_LENGTH - currentLimit); - boolean foundEndOfInput = bytesRead == C.RESULT_END_OF_INPUT; - if (!foundEndOfInput) { - buffer.setLimit(currentLimit + bytesRead); - } else if (buffer.bytesLeft() == 0) { - outputSampleMetadata(); - return Extractor.RESULT_END_OF_INPUT; + boolean foundEndOfInput = false; + if (currentLimit < BUFFER_LENGTH) { + int bytesRead = + input.read( + buffer.data, /* offset= */ currentLimit, /* length= */ BUFFER_LENGTH - currentLimit); + foundEndOfInput = bytesRead == C.RESULT_END_OF_INPUT; + if (!foundEndOfInput) { + buffer.setLimit(currentLimit + bytesRead); + } else if (buffer.bytesLeft() == 0) { + outputSampleMetadata(); + return Extractor.RESULT_END_OF_INPUT; + } } // Search for a frame.