From 3b34b0682c49d58dd131710ad59d42ba0b2f8a83 Mon Sep 17 00:00:00 2001 From: Oliver Woodman Date: Tue, 21 Jul 2015 17:35:09 +0100 Subject: [PATCH] Handle the last MP3 sample being truncated without throwing. Issue: #599 --- .../android/exoplayer/extractor/mp3/Mp3Extractor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java index fc9ee215cb..5411f496b1 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java @@ -113,9 +113,12 @@ public final class Mp3Extractor implements Extractor { sampleBytesRemaining -= inputBuffer.drainToOutput(trackOutput, sampleBytesRemaining); if (sampleBytesRemaining > 0) { inputBuffer.mark(); - + try { + sampleBytesRemaining -= trackOutput.sampleData(extractorInput, sampleBytesRemaining); + } catch (EOFException e) { + return RESULT_END_OF_INPUT; + } // Return if we still need more data. - sampleBytesRemaining -= trackOutput.sampleData(extractorInput, sampleBytesRemaining); if (sampleBytesRemaining > 0) { return RESULT_CONTINUE; }