From bcd0a91ed6d6cb3c44e1f82fa3d9087f083c672e Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 2 Mar 2021 10:31:46 +0000 Subject: [PATCH] Fall back from DTS HD to DTS #minor-release PiperOrigin-RevId: 360384540 --- RELEASENOTES.md | 1 + .../com/google/android/exoplayer2/audio/DefaultAudioSink.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 91dc8a00ec..bd094b84ec 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -13,6 +13,7 @@ ([#6384](https://github.com/google/ExoPlayer/issues/6384)). * Allow forcing offload for gapless content even if gapless playback is not supported. + * Allow fall back from DTS-HD to DTS when playing via passthrough. * Analytics: * Add `onAudioCodecError` and `onVideoCodecError` to `AnalyticsListener`. * Downloads and caching: diff --git a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java index 826839b3d2..0fd0c4fb29 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/audio/DefaultAudioSink.java @@ -1482,6 +1482,10 @@ public final class DefaultAudioSink implements AudioSink { && !audioCapabilities.supportsEncoding(C.ENCODING_E_AC3_JOC)) { // E-AC3 receivers support E-AC3 JOC streams (but decode only the base layer). encoding = C.ENCODING_E_AC3; + } else if (encoding == C.ENCODING_DTS_HD + && !audioCapabilities.supportsEncoding(C.ENCODING_DTS_HD)) { + // DTS receivers support DTS-HD streams (but decode only the core layer). + encoding = C.ENCODING_DTS; } if (!audioCapabilities.supportsEncoding(encoding)) { return null;