From a58a99e84db81683a5c8262ed3c197f61bedd6f9 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Wed, 17 Apr 2024 01:53:53 -0700 Subject: [PATCH] Don't constrain audio for playout in Transformer Transformer's input shouldn't be constrained to the number of playable audio channels on the current device because the media may be edited (to mix channels for example) or encoded for playback on another device (a server for example). PiperOrigin-RevId: 625604243 --- RELEASENOTES.md | 2 ++ .../java/androidx/media3/transformer/ExoPlayerAssetLoader.java | 1 + 2 files changed, 3 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index fa227548d0..07a96bf755 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -13,6 +13,8 @@ * Transformer: * Work around a decoder bug where the number of audio channels was capped at stereo when handling PCM input. + * When selecting tracks in `ExoPlayerAssetLoader`, ignore audio channel + count constraints as they only apply for playback. * Track Selection: * Extractors: * Audio: diff --git a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java index dca4c39015..ee785a42a3 100644 --- a/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java +++ b/libraries/transformer/src/main/java/androidx/media3/transformer/ExoPlayerAssetLoader.java @@ -160,6 +160,7 @@ public final class ExoPlayerAssetLoader implements AssetLoader { trackSelector.setParameters( new DefaultTrackSelector.Parameters.Builder(context) .setForceHighestSupportedBitrate(true) + .setConstrainAudioChannelCountToDeviceCapabilities(false) .build()); // Arbitrarily decrease buffers for playback so that samples start being sent earlier to the // exporters (rebuffers are less problematic for the export use case).