diff --git a/RELEASENOTES.md b/RELEASENOTES.md index bfdf17ea79..445f7e157d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -2,6 +2,8 @@ ### 2.11.8 (2020-08-25) ### +* Fix distorted playback of floating point audio when samples exceed the + `[-1, 1]` nominal range. * MP4: Add support for `piff` and `isml` brands ([#7584](https://github.com/google/ExoPlayer/issues/7584)). * FMP4: Fix `saiz` and `senc` sample count checks, resolving a "length diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/ResamplingAudioProcessor.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/ResamplingAudioProcessor.java index 00d9bb4d1d..a4d2a1b67a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/ResamplingAudioProcessor.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/ResamplingAudioProcessor.java @@ -116,7 +116,7 @@ import java.nio.ByteBuffer; // 32 bit floating point -> 16 bit resampling. Floating point values are in the range // [-1.0, 1.0], so need to be scaled by Short.MAX_VALUE. for (int i = position; i < limit; i += 4) { - // Clamp to avoid integer overflow if the floating point values exceed their allowed range + // Clamp to avoid integer overflow if the floating point values exceed their nominal range // [Internal ref: b/161204847]. float floatValue = Util.constrainValue(inputBuffer.getFloat(i), /* min= */ -1, /* max= */ 1);