From 7b352e1903415f630d01429faa818ed259570bf0 Mon Sep 17 00:00:00 2001 From: tonihei Date: Thu, 23 May 2024 07:34:35 -0700 Subject: [PATCH] Add more details to thread assertion in onAudioCapabilitiesChanged This helps to debug issues reported in https://github.com/androidx/media/issues/1191 PiperOrigin-RevId: 636545970 --- .../media3/exoplayer/audio/DefaultAudioSink.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java index c9000e69ce..1de4cf13b4 100644 --- a/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java +++ b/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/audio/DefaultAudioSink.java @@ -1530,7 +1530,18 @@ public final class DefaultAudioSink implements AudioSink { // AudioCapabilitiesReceiver.Listener implementation. public void onAudioCapabilitiesChanged(AudioCapabilities audioCapabilities) { - checkState(playbackLooper == Looper.myLooper()); + Looper myLooper = Looper.myLooper(); + if (playbackLooper != myLooper) { + String playbackLooperName = + playbackLooper == null ? "null" : playbackLooper.getThread().getName(); + String myLooperName = myLooper == null ? "null" : myLooper.getThread().getName(); + throw new IllegalStateException( + "Current looper (" + + myLooperName + + ") is not the playback looper (" + + playbackLooperName + + ")"); + } if (!audioCapabilities.equals(this.audioCapabilities)) { this.audioCapabilities = audioCapabilities; if (listener != null) {