From f36de381d9ba52cf903f112a0de7fd638c8c1d2c Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 28 Mar 2018 04:34:24 -0700 Subject: [PATCH] Fix "FLAC decoder input buffer too small" issue Issue: #3514 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=190752950 --- RELEASENOTES.md | 1 + extensions/flac/src/androidTest/assets/bear.flac.0.dump | 2 +- extensions/flac/src/androidTest/assets/bear.flac.1.dump | 2 +- extensions/flac/src/androidTest/assets/bear.flac.2.dump | 2 +- extensions/flac/src/androidTest/assets/bear.flac.3.dump | 2 +- .../com/google/android/exoplayer2/ext/flac/FlacExtractor.java | 2 +- 6 files changed, 6 insertions(+), 5 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 5904e71684..3148cf0779 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -10,6 +10,7 @@ ([#4006](https://github.com/google/ExoPlayer/issues/4006)). * Fix handling of zero padded strings when parsing Matroska streams ([#4010](https://github.com/google/ExoPlayer/issues/4010)). +* Fix "Decoder input buffer too small" error when playing some FLAC streams. * MediaSession extension: Omit fast forward and rewind actions when media is not seekable ([#4001](https://github.com/google/ExoPlayer/issues/4001)). diff --git a/extensions/flac/src/androidTest/assets/bear.flac.0.dump b/extensions/flac/src/androidTest/assets/bear.flac.0.dump index 2a17cbdea6..ad88981718 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.0.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.0.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/raw - maxInputSize = -1 + maxInputSize = 16384 width = -1 height = -1 frameRate = -1.0 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.1.dump b/extensions/flac/src/androidTest/assets/bear.flac.1.dump index 412e4a1b8f..22f30e9db2 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.1.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.1.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/raw - maxInputSize = -1 + maxInputSize = 16384 width = -1 height = -1 frameRate = -1.0 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.2.dump b/extensions/flac/src/androidTest/assets/bear.flac.2.dump index 42ebb125d1..c52a74cbfb 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.2.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.2.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/raw - maxInputSize = -1 + maxInputSize = 16384 width = -1 height = -1 frameRate = -1.0 diff --git a/extensions/flac/src/androidTest/assets/bear.flac.3.dump b/extensions/flac/src/androidTest/assets/bear.flac.3.dump index 958cb0d418..760f369597 100644 --- a/extensions/flac/src/androidTest/assets/bear.flac.3.dump +++ b/extensions/flac/src/androidTest/assets/bear.flac.3.dump @@ -9,7 +9,7 @@ track 0: id = null containerMimeType = null sampleMimeType = audio/raw - maxInputSize = -1 + maxInputSize = 16384 width = -1 height = -1 frameRate = -1.0 diff --git a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java index b630298c6e..6859b44877 100644 --- a/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java +++ b/extensions/flac/src/main/java/com/google/android/exoplayer2/ext/flac/FlacExtractor.java @@ -116,7 +116,7 @@ public final class FlacExtractor implements Extractor { MimeTypes.AUDIO_RAW, null, streamInfo.bitRate(), - Format.NO_VALUE, + streamInfo.maxDecodedFrameSize(), streamInfo.channels, streamInfo.sampleRate, getPcmEncoding(streamInfo.bitsPerSample),