Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connecting/disconnecting Bluetooth causes client crash if just audio is playing #4460

Open
3 tasks done
FazeThree71 opened this issue Feb 15, 2025 · 0 comments
Open
3 tasks done
Labels
bug Something isn't working

Comments

@FazeThree71
Copy link

FazeThree71 commented Feb 15, 2025

This issue respects the following points:

  • This issue is not already reported on GitHub (I've searched it).
  • I agree to follow Jellyfin's Code of Conduct.
  • This report addresses only a single issue; If you encounter multiple issues, kindly create separate reports for each one.

Describe the bug

This is pretty consistent for me. I'm using an Onn 4k Pro connected via Bluetooth to a Sharp XL-BH250 and if I connect or disconnect to the stereo while JF is playing an audio playlist, the client will crash. This doesn't happen if a movie or video playlist is running. I initially suspected an issue with the BT support as this device supports 2.1+/EDR/A2DP/AVRCP and will show the song information while another device supporting 5.2 without that support initially did not cause a crash. However, that does appear to cause a crash for me now as well after attempts to recreate. The log from the crash with that device is shown below the log for the BH250. Videos are not sending media information to the BH250, which is why I suspect that may be a factor but I could be completely incorrect.

Steps:

  1. Open app on streaming device
  2. Select either artist or music playlist
  3. Once audio starts, turn on or off Bluetooth-connected stereo/speaker

Actual:
JF client crashes and a logfile is generated

Expected:
JF client shouldn't care

Logs


client: Jellyfin for Android TV
client_version: 0.18.4
client_repository: https://github.com/jellyfin/jellyfin-androidtv
type: crash_report
format: markdown

Logs

Stack Trace:

java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.os.HandlerThread.run(HandlerThread.java:67)

Logcat:

02-15 06:10:12.167 I/CCodecConfig(14777): query failed after returning 7 values (BAD_INDEX)
02-15 06:10:12.167 D/CCodecConfig(14777): c2 config diff is Dict {
02-15 06:10:12.167 D/CCodecConfig(14777):   c2::u32 coded.bitrate.value = 64000
02-15 06:10:12.167 D/CCodecConfig(14777):   c2::u32 input.buffers.max-size.value = 8192
02-15 06:10:12.167 D/CCodecConfig(14777):   c2::u32 input.delay.value = 0
02-15 06:10:12.167 D/CCodecConfig(14777):   string input.media-type.value = "audio/mpeg"
02-15 06:10:12.167 D/CCodecConfig(14777):   string output.media-type.value = "audio/raw"
02-15 06:10:12.167 D/CCodecConfig(14777):   c2::u32 raw.channel-count.value = 2
02-15 06:10:12.167 D/CCodecConfig(14777):   c2::u32 raw.sample-rate.value = 44100
02-15 06:10:12.167 D/CCodecConfig(14777): }
02-15 06:10:12.170 I/MediaCodec(14777): MediaCodec will operate in async mode
02-15 06:10:12.170 D/MediaCodec(14777): flushMediametrics
02-15 06:10:12.171 D/CCodec  (14777): [c2.android.mp3.decoder] buffers are bound to CCodec for this session
02-15 06:10:12.171 D/CCodecConfig(14777): no c2 equivalents for log-session-id
02-15 06:10:12.171 D/CCodecConfig(14777): no c2 equivalents for flags
02-15 06:10:12.172 D/CCodecConfig(14777): config failed => CORRUPTED
02-15 06:10:12.172 W/Codec2Client(14777): query -- param skipped: index = 1107298332.
02-15 06:10:12.172 D/CCodec  (14777): client requested max input size 4096, which is smaller than what component recommended (8192); overriding with component recommendation.
02-15 06:10:12.172 W/CCodec  (14777): This behavior is subject to change. It is recommended that app developers double check whether the requested max input size is in reasonable range.
02-15 06:10:12.172 D/CCodec  (14777): setup formats input: AMessage(what = 0x00000000) = {
02-15 06:10:12.172 D/CCodec  (14777):   int32_t bitrate = 64000
02-15 06:10:12.172 D/CCodec  (14777):   int32_t channel-count = 2
02-15 06:10:12.172 D/CCodec  (14777):   int32_t max-input-size = 8192
02-15 06:10:12.172 D/CCodec  (14777):   string mime = "audio/mpeg"
02-15 06:10:12.172 D/CCodec  (14777):   int32_t sample-rate = 44100
02-15 06:10:12.172 D/CCodec  (14777): }
02-15 06:10:12.172 D/CCodec  (14777): setup formats output: AMessage(what = 0x00000000) = {
02-15 06:10:12.172 D/CCodec  (14777):   int32_t channel-count = 2
02-15 06:10:12.172 D/CCodec  (14777):   string mime = "audio/raw"
02-15 06:10:12.172 D/CCodec  (14777):   int32_t sample-rate = 44100
02-15 06:10:12.172 D/CCodec  (14777): }
02-15 06:10:12.172 I/CCodecConfig(14777): query failed after returning 7 values (BAD_INDEX)
02-15 06:10:12.173 D/MediaCodec(14777): keep callback message for reclaim
02-15 06:10:12.175 W/Codec2Client(14777): query -- param skipped: index = 1342179345.
02-15 06:10:12.175 W/Codec2Client(14777): query -- param skipped: index = 2415921170.
02-15 06:10:12.176 D/C2Store (14777): Using ION
02-15 06:10:12.177 D/CCodecBufferChannel(14777): [c2.android.mp3.decoder#977] Created input block pool with allocatorID 16 => poolID 17 - OK (0)
02-15 06:10:12.180 I/CCodecBufferChannel(14777): [c2.android.mp3.decoder#977] Created output block pool with allocatorID 16 => poolID 352 - OK
02-15 06:10:12.180 D/CCodecBufferChannel(14777): [c2.android.mp3.decoder#977] Configured output block pool ids 352 => OK
02-15 06:10:12.182 E/ion     (14777): ioctl c0044901 failed with code -1: Inappropriate ioctl for device
02-15 06:10:12.195 D/AudioNowPlayingFragment(14777): **** Got playstate change: PLAYING
02-15 06:10:12.196 D/AudioNowPlayingFragment(14777): Updating buttons
02-15 06:10:12.211 I/org.jellyfin.sdk.api.ktor.KtorClient(14777): POST http://192.168.4.44:39806/Sessions/Playing
02-15 06:10:12.218 V/io.ktor.client.plugins.HttpPlainText(14777): Adding Accept-Charset=UTF-8 to http://192.168.4.44:39806/Sessions/Playing
02-15 06:10:12.219 V/io.ktor.client.plugins.defaultTransformers(14777): Transformed with default transformers request body for http://192.168.4.44:39806/Sessions/Playing from class io.ktor.http.content.TextContent (Kotlin reflection is not available)
02-15 06:10:12.322 D/AudioTrack(14777): getTimestamp_l(956): device stall time corrected using current time 562824312231582
02-15 06:10:12.332 W/AudioTrack(14777): getTimestamp_l(956): retrograde timestamp time corrected, 562824311199290 < 562824312231582
02-15 06:10:12.390 V/io.ktor.client.plugins.HttpCallValidator(14777): Validating response for request http://192.168.4.44:39806/Sessions/Playing
02-15 06:10:12.391 V/io.ktor.client.plugins.DefaultResponseValidation(14777): Skipping default response validation for http://192.168.4.44:39806/Sessions/Playing
02-15 06:10:12.392 V/io.ktor.client.plugins.defaultTransformers(14777): Transformed with default transformers response body for http://192.168.4.44:39806/Sessions/Playing to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
02-15 06:10:12.786 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(14777): Receiving (raw) message {"MessageId":"a3f3a63b687740cdb15f133e1d75df1b","Data":{"UserId":"938ca7c4ad9c443dabfc6daf78e106e4","UserDataList":[{"PlaybackPositionTicks":0,"PlayCount":1,"IsFavorite":false,"LastPlayedDate":"2025-02-15T12:10:10.4907003Z","Played":true,"Key":"Oingo Boingo-Dark At The End Of The Tunnel-0000-0005Long Breakdown","ItemId":"b7405dcdbcb4bc0ed99eb4c1c451b9a1"},{"PlaybackPositionTicks":0,"PlayCount":0,"IsFavorite":false,"Played":false,"Key":"Oingo Boingo-Dark At The End Of The Tunnel","ItemId":"b435621eaf1dafe48f4eac4d6100bc13"}]},"MessageType":"UserDataChanged"}
02-15 06:10:17.359 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 212/217 (recycle/alloc) - 6/430 (fetch/transfer)
02-15 06:10:22.601 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 412/417 (recycle/alloc) - 6/830 (fetch/transfer)
02-15 06:10:27.849 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 613/618 (recycle/alloc) - 6/1232 (fetch/transfer)
02-15 06:10:33.052 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 813/818 (recycle/alloc) - 6/1632 (fetch/transfer)
02-15 06:10:34.128 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(14777): Sending (raw) message {"MessageType":"KeepAlive"}
02-15 06:10:34.132 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(14777): Receiving (raw) message {"MessageId":"17c9cd51c6094c6d80d89776a7f11e68","MessageType":"KeepAlive"}
02-15 06:10:38.309 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1013/1018 (recycle/alloc) - 6/2032 (fetch/transfer)
02-15 06:10:43.554 D/BufferPoolAccessor2.0(14777): bufferpool2 0xeb4f7348 : 5(40960 size) total buffers - 1(8192 size) used buffers - 1214/1219 (recycle/alloc) - 6/2434 (fetch/transfer)
--------- beginning of crash
02-15 06:10:46.846 E/AndroidRuntime(14777): FATAL EXCEPTION: ExoPlayer:Playback
02-15 06:10:46.846 E/AndroidRuntime(14777): Process: org.jellyfin.androidtv, PID: 14777
02-15 06:10:46.846 E/AndroidRuntime(14777): java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.os.Handler.handleCallback(Handler.java:938)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.os.Looper.loopOnce(Looper.java:201)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.os.Looper.loop(Looper.java:288)
02-15 06:10:46.846 E/AndroidRuntime(14777): 	at android.os.HandlerThread.run(HandlerThread.java:67)
02-15 06:10:46.848 E/ACRA    (14777): ACRA caught a IllegalStateException for org.jellyfin.androidtv
02-15 06:10:46.848 E/ACRA    (14777): java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
02-15 06:10:46.848 E/ACRA    (14777): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.os.Handler.handleCallback(Handler.java:938)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.os.Looper.loopOnce(Looper.java:201)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.os.Looper.loop(Looper.java:288)
02-15 06:10:46.848 E/ACRA    (14777): 	at android.os.HandlerThread.run(HandlerThread.java:67)
02-15 06:10:46.849 D/ACRA    (14777): Building report
02-15 06:10:46.851 D/ACRA    (14777): Starting collectors with priority FIRST
02-15 06:10:46.852 D/ACRA    (14777): Calling collector org.acra.collector.DropBoxCollector
02-15 06:10:46.852 D/ACRA    (14777): Collector org.acra.collector.DropBoxCollector completed
02-15 06:10:46.852 D/ACRA    (14777): Calling collector org.acra.collector.LogCatCollector
02-15 06:10:46.853 D/ACRA    (14777): Calling collector org.acra.collector.StacktraceCollector
02-15 06:10:46.855 D/ACRA    (14777): Collector org.acra.collector.StacktraceCollector completed
02-15 06:10:46.861 D/ACRA    (14777): Retrieving logcat output (buffer:default)...

App information

App version: 0.18.4 (180499)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"jarvis","BOOTLOADER":"01.01.240802.010524","BRAND":"onn","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"SNA","DISPLAY":"SGZ3.231226.086.A1.12555768","FINGERPRINT":"onn\/jarvis\/SNA:12\/SGZ3.231226.086.A1\/12555768:user\/release-keys","HARDWARE":"amlogic","HOST":"r-04ee229aec0a6463-745m","ID":"SGZ3.231226.086.A1","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"onn","MODEL":"onn. Streaming Device 4K pro","ODM_SKU":"unknown","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"jarvis","RADIO":"unknown","SKU":"unknown","SOC_MANUFACTURER":"Amlogic","SOC_MODEL":"AMLS905X4","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1729862481000,"TYPE":"user","UNKNOWN":"unknown","USER":"android-build","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"12555768","MEDIA_PERFORMANCE_CLASS":0,"PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"12","RELEASE_OR_CODENAME":"12","SDK":"31","SDK_INT":31,"SECURITY_PATCH":"2024-11-01"}}

Build config:

{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":180499,"VERSION_NAME":"0.18.4"}

Device information

Android version: 12
Device brand: onn
Device product: jarvis
Device model: onn. Streaming Device 4K pro

Crash information

Start time: 2025-02-15T04:13:54.432-06:00
Crash time: 2025-02-15T06:10:46.953-06:00



client: Jellyfin for Android TV
client_version: 0.18.4
client_repository: https://github.com/jellyfin/jellyfin-androidtv
type: crash_report
format: markdown

Logs

Stack Trace:

java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.os.HandlerThread.run(HandlerThread.java:67)

Logcat:

02-15 06:40:37.962 D/CCodecConfig(22460): read media type: audio/mpeg
02-15 06:40:37.970 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: algo.buffers.max-count.values
02-15 06:40:37.971 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: output.subscribed-indices.values
02-15 06:40:37.971 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: input.buffers.allocator-ids.values
02-15 06:40:37.971 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: output.buffers.allocator-ids.values
02-15 06:40:37.972 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: algo.buffers.allocator-ids.values
02-15 06:40:37.972 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: output.buffers.pool-ids.values
02-15 06:40:37.972 D/ReflectedParamUpdater(22460): extent() != 1 for single value type: algo.buffers.pool-ids.values
02-15 06:40:37.976 I/CCodecConfig(22460): query failed after returning 7 values (BAD_INDEX)
02-15 06:40:37.977 D/CCodecConfig(22460): c2 config diff is Dict {
02-15 06:40:37.977 D/CCodecConfig(22460):   c2::u32 coded.bitrate.value = 64000
02-15 06:40:37.977 D/CCodecConfig(22460):   c2::u32 input.buffers.max-size.value = 8192
02-15 06:40:37.977 D/CCodecConfig(22460):   c2::u32 input.delay.value = 0
02-15 06:40:37.977 D/CCodecConfig(22460):   string input.media-type.value = "audio/mpeg"
02-15 06:40:37.977 D/CCodecConfig(22460):   string output.media-type.value = "audio/raw"
02-15 06:40:37.977 D/CCodecConfig(22460):   c2::u32 raw.channel-count.value = 2
02-15 06:40:37.977 D/CCodecConfig(22460):   c2::u32 raw.sample-rate.value = 44100
02-15 06:40:37.977 D/CCodecConfig(22460): }
02-15 06:40:37.980 I/MediaCodec(22460): MediaCodec will operate in async mode
02-15 06:40:37.981 D/MediaCodec(22460): flushMediametrics
02-15 06:40:37.982 D/CCodec  (22460): [c2.android.mp3.decoder] buffers are bound to CCodec for this session
02-15 06:40:37.982 D/CCodecConfig(22460): no c2 equivalents for log-session-id
02-15 06:40:37.982 D/CCodecConfig(22460): no c2 equivalents for flags
02-15 06:40:37.983 D/CCodecConfig(22460): config failed => CORRUPTED
02-15 06:40:37.983 W/Codec2Client(22460): query -- param skipped: index = 1107298332.
02-15 06:40:37.983 D/CCodec  (22460): client requested max input size 4096, which is smaller than what component recommended (8192); overriding with component recommendation.
02-15 06:40:37.983 W/CCodec  (22460): This behavior is subject to change. It is recommended that app developers double check whether the requested max input size is in reasonable range.
02-15 06:40:37.983 D/CCodec  (22460): setup formats input: AMessage(what = 0x00000000) = {
02-15 06:40:37.983 D/CCodec  (22460):   int32_t bitrate = 64000
02-15 06:40:37.983 D/CCodec  (22460):   int32_t channel-count = 2
02-15 06:40:37.983 D/CCodec  (22460):   int32_t max-input-size = 8192
02-15 06:40:37.983 D/CCodec  (22460):   string mime = "audio/mpeg"
02-15 06:40:37.983 D/CCodec  (22460):   int32_t sample-rate = 44100
02-15 06:40:37.983 D/CCodec  (22460): }
02-15 06:40:37.983 D/CCodec  (22460): setup formats output: AMessage(what = 0x00000000) = {
02-15 06:40:37.983 D/CCodec  (22460):   int32_t channel-count = 2
02-15 06:40:37.983 D/CCodec  (22460):   string mime = "audio/raw"
02-15 06:40:37.983 D/CCodec  (22460):   int32_t sample-rate = 44100
02-15 06:40:37.983 D/CCodec  (22460): }
02-15 06:40:37.983 I/CCodecConfig(22460): query failed after returning 7 values (BAD_INDEX)
02-15 06:40:37.984 D/MediaCodec(22460): keep callback message for reclaim
02-15 06:40:37.985 W/Codec2Client(22460): query -- param skipped: index = 1342179345.
02-15 06:40:37.985 W/Codec2Client(22460): query -- param skipped: index = 2415921170.
02-15 06:40:37.986 D/C2Store (22460): Using ION
02-15 06:40:37.986 D/CCodecBufferChannel(22460): [c2.android.mp3.decoder#281] Created input block pool with allocatorID 16 => poolID 17 - OK (0)
02-15 06:40:37.988 I/CCodecBufferChannel(22460): [c2.android.mp3.decoder#281] Created output block pool with allocatorID 16 => poolID 363 - OK
02-15 06:40:37.988 D/CCodecBufferChannel(22460): [c2.android.mp3.decoder#281] Configured output block pool ids 363 => OK
02-15 06:40:37.989 E/ion     (22460): ioctl c0044901 failed with code -1: Inappropriate ioctl for device
02-15 06:40:37.994 D/AudioNowPlayingFragment(22460): **** Got playstate change: PLAYING
02-15 06:40:37.994 D/AudioNowPlayingFragment(22460): Updating buttons
02-15 06:40:38.017 I/org.jellyfin.sdk.api.ktor.KtorClient(22460): POST http://192.168.4.44:39806/Sessions/Playing
02-15 06:40:38.029 V/io.ktor.client.plugins.HttpPlainText(22460): Adding Accept-Charset=UTF-8 to http://192.168.4.44:39806/Sessions/Playing
02-15 06:40:38.030 V/io.ktor.client.plugins.defaultTransformers(22460): Transformed with default transformers request body for http://192.168.4.44:39806/Sessions/Playing from class io.ktor.http.content.TextContent (Kotlin reflection is not available)
02-15 06:40:38.233 V/io.ktor.client.plugins.HttpCallValidator(22460): Validating response for request http://192.168.4.44:39806/Sessions/Playing
02-15 06:40:38.233 V/io.ktor.client.plugins.DefaultResponseValidation(22460): Skipping default response validation for http://192.168.4.44:39806/Sessions/Playing
02-15 06:40:38.236 V/io.ktor.client.plugins.defaultTransformers(22460): Transformed with default transformers response body for http://192.168.4.44:39806/Sessions/Playing to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
02-15 06:40:38.591 D/org.jellyfin.sdk.api.sockets.OkHttpSocketConnection(22460): Receiving (raw) message {"MessageId":"2f228411e9334eabb944790c41ca4f4d","Data":{"UserId":"938ca7c4ad9c443dabfc6daf78e106e4","UserDataList":[{"PlaybackPositionTicks":0,"PlayCount":1,"IsFavorite":false,"LastPlayedDate":"2025-02-15T12:40:36.2637059Z","Played":true,"Key":"Bon Jovi-7800\u00B0 Fahrenheit (Japanese Edition)-0000-0001In And Out Of Love","ItemId":"75a91991cbdc94c8d14ff076c7582278"},{"PlaybackPositionTicks":0,"PlayCount":0,"IsFavorite":false,"Played":false,"Key":"Bon Jovi-7800\u00B0 Fahrenheit (Japanese Edition)","ItemId":"2b7c69390c627961d6559ce059e5095f"}]},"MessageType":"UserDataChanged"}
02-15 06:40:43.177 D/BufferPoolAccessor2.0(22460): bufferpool2 0xeb4d4308 : 5(40960 size) total buffers - 1(8192 size) used buffers - 214/219 (recycle/alloc) - 5/434 (fetch/transfer)
02-15 06:40:48.418 D/BufferPoolAccessor2.0(22460): bufferpool2 0xeb4d4308 : 5(40960 size) total buffers - 1(8192 size) used buffers - 414/419 (recycle/alloc) - 5/834 (fetch/transfer)
--------- beginning of crash
02-15 06:40:51.352 E/AndroidRuntime(22460): FATAL EXCEPTION: ExoPlayer:Playback
02-15 06:40:51.352 E/AndroidRuntime(22460): Process: org.jellyfin.androidtv, PID: 22460
02-15 06:40:51.352 E/AndroidRuntime(22460): java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.os.Handler.handleCallback(Handler.java:938)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.os.Looper.loopOnce(Looper.java:201)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.os.Looper.loop(Looper.java:288)
02-15 06:40:51.352 E/AndroidRuntime(22460): 	at android.os.HandlerThread.run(HandlerThread.java:67)
02-15 06:40:51.352 E/ACRA    (22460): ACRA caught a IllegalStateException for org.jellyfin.androidtv
02-15 06:40:51.352 E/ACRA    (22460): java.lang.IllegalStateException: Current looper (ExoPlayer:Playback) is not the playback looper (main)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink.onAudioCapabilitiesChanged(DefaultAudioSink.java:1582)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$$ExternalSyntheticLambda15.onAudioCapabilitiesChanged(D8$$SyntheticClass:0)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.onNewAudioCapabilities(AudioCapabilitiesReceiver.java:197)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.AudioCapabilitiesReceiver.setRoutedDevice(AudioCapabilitiesReceiver.java:140)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.onRoutingChanged(DefaultAudioSink.java:2019)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24.$r8$lambda$iF2hPfQ_z_eejaC3PvZcN-i9wBM(Unknown Source:0)
02-15 06:40:51.352 E/ACRA    (22460): 	at androidx.media3.exoplayer.audio.DefaultAudioSink$OnRoutingChangedListenerApi24$$ExternalSyntheticLambda4.onRoutingChanged(D8$$SyntheticClass:0)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.media.NativeRoutingEventHandlerDelegate$1.run(NativeRoutingEventHandlerDelegate.java:45)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.os.Handler.handleCallback(Handler.java:938)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.os.Handler.dispatchMessage(Handler.java:99)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.os.Looper.loopOnce(Looper.java:201)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.os.Looper.loop(Looper.java:288)
02-15 06:40:51.352 E/ACRA    (22460): 	at android.os.HandlerThread.run(HandlerThread.java:67)
02-15 06:40:51.352 D/ACRA    (22460): Building report
02-15 06:40:51.353 D/ACRA    (22460): Starting collectors with priority FIRST
02-15 06:40:51.355 D/ACRA    (22460): Calling collector org.acra.collector.DropBoxCollector
02-15 06:40:51.355 D/ACRA    (22460): Collector org.acra.collector.DropBoxCollector completed
02-15 06:40:51.356 D/ACRA    (22460): Calling collector org.acra.collector.StacktraceCollector
02-15 06:40:51.356 D/ACRA    (22460): Collector org.acra.collector.StacktraceCollector completed
02-15 06:40:51.358 D/ACRA    (22460): Calling collector org.acra.collector.LogCatCollector
02-15 06:40:51.365 D/ACRA    (22460): Retrieving logcat output (buffer:default)...

App information

App version: 0.18.4 (180499)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"jarvis","BOOTLOADER":"01.01.240802.010524","BRAND":"onn","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"SNA","DISPLAY":"SGZ3.231226.086.A1.12555768","FINGERPRINT":"onn\/jarvis\/SNA:12\/SGZ3.231226.086.A1\/12555768:user\/release-keys","HARDWARE":"amlogic","HOST":"r-04ee229aec0a6463-745m","ID":"SGZ3.231226.086.A1","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"onn","MODEL":"onn. Streaming Device 4K pro","ODM_SKU":"unknown","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"jarvis","RADIO":"unknown","SKU":"unknown","SOC_MANUFACTURER":"Amlogic","SOC_MODEL":"AMLS905X4","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1729862481000,"TYPE":"user","UNKNOWN":"unknown","USER":"android-build","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"12555768","MEDIA_PERFORMANCE_CLASS":0,"PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"12","RELEASE_OR_CODENAME":"12","SDK":"31","SDK_INT":31,"SECURITY_PATCH":"2024-11-01"}}

Build config:

{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":180499,"VERSION_NAME":"0.18.4"}

Device information

Android version: 12
Device brand: onn
Device product: jarvis
Device model: onn. Streaming Device 4K pro

Crash information

Start time: 2025-02-15T06:40:25.596-06:00
Crash time: 2025-02-15T06:40:51.439-06:00

Application version

0.18.4

Where did you install the app from?

Google Play Store

Device information

Onn 4k Pro / Sharp XL-BH250 / Comiso C17A

Android version

12 / SGZ3.231226.086.A1.12555768

Jellyfin server version

10.10.5

Other sources

No response

@FazeThree71 FazeThree71 added the bug Something isn't working label Feb 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant