jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.87k stars 489 forks source link

v0.16.9 crashes back to firestick home screen when attempting to play any video #3530

Closed MovieWiz closed 6 months ago

MovieWiz commented 6 months ago

Describe the bug

1) On FireStick 4K or Lite, attempt to play any video (various combinations of H264/Hevc and AAC/EAC3/AC3) 2) The app crashes back to FireStick Home Screen. No portion of the video is played.

I tried around 10 different videos with various combinations of video and audio formats and all crashed. All played fine in v0.16.8 of the app.

Logs

From Server log

[2024-04-23 13:14:02.151 -04:00] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "John". EnablePlaybackRemuxing: False EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2024-04-23 13:14:02.159 -04:00] [INF] [83] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="AndroidTV-libVLC", Path="E:\Videos\current season\The Equalizer\The.Equalizer.2021.S04E06.1080p.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/0114d1aa-82c8-9b6b-8e5c-9cc620420168/stream.mkv?MediaSourceId=0114d1aa82c89b6b8e5c9cc620420168&Static=true&VideoCodec=hevc&AudioCodec=eac3&AudioStreamIndex=1&api_key=&SubtitleMethod=Encode&Tag=66dc155461a16dc998861ca4b9aba270" [2024-04-23 13:14:02.235 -04:00] [INF] [94] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Android TV" "0.16.9" playing "DOA". Stopped at "0" ms

On Server from App:


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

Logs

Stack Trace:

java.lang.NoSuchMethodError: No static method create(I)I in class Landroidx/media3/exoplayer/RendererCapabilities; or its super classes (declaration of 'androidx.media3.exoplayer.RendererCapabilities' appears in base.apk!classes4.dex)
    at androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer.supportsFormat(ExperimentalFfmpegVideoRenderer.java:78)
    at androidx.media3.exoplayer.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:513)
    at androidx.media3.exoplayer.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:380)
    at androidx.media3.exoplayer.MediaPeriodHolder.selectTracks(MediaPeriodHolder.java:256)
    at androidx.media3.exoplayer.MediaPeriodHolder.handlePrepared(MediaPeriodHolder.java:194)
    at androidx.media3.exoplayer.ExoPlayerImplInternal.handlePeriodPrepared(ExoPlayerImplInternal.java:2453)
    at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:563)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:211)
    at android.os.HandlerThread.run(HandlerThread.java:65)

Logcat:

04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at android.media.MediaCodecInfo.getCapabilitiesForType(MediaCodecInfo.java:3380)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.MediaCodecCapabilitiesTest.hasDecoder(MediaCodecCapabilitiesTest.kt:95)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.MediaCodecCapabilitiesTest.supportsAVCHigh10(MediaCodecCapabilitiesTest.kt:55)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper$h264VideoProfileCondition$2.invoke(ProfileHelper.kt:181)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper$h264VideoProfileCondition$2.invoke(ProfileHelper.kt:172)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper.getH264VideoProfileCondition(ProfileHelper.kt:172)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.LibVlcProfile.<init>(LibVlcProfile.kt:129)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.buildVLCOptions(PlaybackController.java:590)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:541)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:438)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onActivityCreated(CustomPlaybackOverlayFragment.java:351)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3156)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Handler.handleCallback(Handler.java:873)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Looper.loop(Looper.java:211)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at android.app.ActivityThread.main(ActivityThread.java:6775)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at java.lang.reflect.Method.invoke(Native Method)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
04-23 13:13:58.852 W/MediaCodecCapabilitiesTest( 1067):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
04-23 13:13:58.868 I/chatty  ( 1067): uid=10214(org.jellyfin.androidtv) identical 18 lines
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067): java.lang.IllegalArgumentException: codec does not support type
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at android.media.MediaCodecInfo.getCapabilitiesForType(MediaCodecInfo.java:3380)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.MediaCodecCapabilitiesTest.hasDecoder(MediaCodecCapabilitiesTest.kt:95)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.MediaCodecCapabilitiesTest.supportsAVCHigh10(MediaCodecCapabilitiesTest.kt:55)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper$h264VideoProfileCondition$2.invoke(ProfileHelper.kt:181)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper$h264VideoProfileCondition$2.invoke(ProfileHelper.kt:172)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.ProfileHelper.getH264VideoProfileCondition(ProfileHelper.kt:172)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.util.profile.LibVlcProfile.<init>(LibVlcProfile.kt:129)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.buildVLCOptions(PlaybackController.java:590)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:541)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:438)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onActivityCreated(CustomPlaybackOverlayFragment.java:351)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3156)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1943)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1839)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1782)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:565)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Handler.handleCallback(Handler.java:873)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at android.os.Looper.loop(Looper.java:211)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at android.app.ActivityThread.main(ActivityThread.java:6775)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at java.lang.reflect.Method.invoke(Native Method)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
04-23 13:13:58.869 W/MediaCodecCapabilitiesTest( 1067):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
04-23 13:13:58.878 I/ProfileHelper$deviceAV1CodecProfile( 1067): *** Does NOT support AV1
04-23 13:13:58.941 I/lyfin.androidt( 1067): Background concurrent copying GC freed 80971(5MB) AllocSpace objects, 8(152KB) LOS objects, 28% free, 14MB/20MB, paused 249us total 135.978ms
04-23 13:13:58.960 W/AudioManager( 1067): Use of stream types is deprecated for operations other than volume control
04-23 13:13:58.960 W/AudioManager( 1067): See the documentation of requestAudioFocus() for what to use instead with android.media.AudioAttributes to qualify your playback use case
04-23 13:13:58.981 I/Choreographer( 1067): Skipped 34 frames!  The application may be doing too much work on its main thread.
04-23 13:13:59.194 I/jellyfin-apiclient( 1067): Response received from: http://192.168.0.2:8096/Items/0114d1aa-82c8-9b6b-8e5c-9cc620420168/PlaybackInfo?format=json
04-23 13:13:59.203 I/PlaybackController( 1067): VLC would direct stream
04-23 13:13:59.292 I/jellyfin-apiclient( 1067): Response received from: http://192.168.0.2:8096/Items/0114d1aa-82c8-9b6b-8e5c-9cc620420168/PlaybackInfo?format=json
04-23 13:13:59.294 I/PlaybackController( 1067): Internal player would direct stream
04-23 13:13:59.295 I/PlaybackController( 1067): Explicit deinterlacing will NOT be used
04-23 13:13:59.295 I/PlaybackController( 1067): User preferred player is: EXOPLAYER
04-23 13:13:59.296 I/PlaybackController( 1067): Will use internal player
04-23 13:13:59.515 I/VideoManager( 1067): Network buffer set to 600
04-23 13:13:59.552 W/libOpenSLES( 1067): class OutputMix interface 0 requested but unavailable MPH=43
04-23 13:13:59.565 I/PlaybackController( 1067): Playing back in native mode.
04-23 13:13:59.572 I/VideoManager( 1067): Video path set to: http://192.168.0.2:8096/Videos/0114d1aa-82c8-9b6b-8e5c-9cc620420168/stream.mkv?api_key=724c8ab20b9c4b60a70480166507920a&DeviceId=e4ef07adc784c5b94e97d461f263e4076e8bcb4e&MediaSourceId=0114d1aa82c89b6b8e5c9cc620420168&Tag=66dc155461a16dc998861ca4b9aba270&Static=true
04-23 13:13:59.603 I/ReportingHelper( 1067): Playback of DOA started.
04-23 13:13:59.691 I/jellyfin-apiclient( 1067): Response received from: http://192.168.0.2:8096/Sessions/Playing
04-23 13:13:59.963 I/lyfin.androidt( 1067): Background concurrent copying GC freed 66333(9MB) AllocSpace objects, 4(144KB) LOS objects, 34% free, 11MB/17MB, paused 159us total 157.193ms
--------- beginning of crash
04-23 13:14:00.081 E/AndroidRuntime( 1067): FATAL EXCEPTION: ExoPlayer:Playback
04-23 13:14:00.081 E/AndroidRuntime( 1067): Process: org.jellyfin.androidtv, PID: 1067
04-23 13:14:00.081 E/AndroidRuntime( 1067): java.lang.NoSuchMethodError: No static method create(I)I in class Landroidx/media3/exoplayer/RendererCapabilities; or its super classes (declaration of 'androidx.media3.exoplayer.RendererCapabilities' appears in base.apk!classes4.dex)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer.supportsFormat(ExperimentalFfmpegVideoRenderer.java:78)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:513)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:380)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.MediaPeriodHolder.selectTracks(MediaPeriodHolder.java:256)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.MediaPeriodHolder.handlePrepared(MediaPeriodHolder.java:194)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.ExoPlayerImplInternal.handlePeriodPrepared(ExoPlayerImplInternal.java:2453)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:563)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at android.os.Looper.loop(Looper.java:211)
04-23 13:14:00.081 E/AndroidRuntime( 1067):     at android.os.HandlerThread.run(HandlerThread.java:65)
04-23 13:14:00.082 E/ACRA    ( 1067): ACRA caught a NoSuchMethodError for org.jellyfin.androidtv
04-23 13:14:00.082 E/ACRA    ( 1067): java.lang.NoSuchMethodError: No static method create(I)I in class Landroidx/media3/exoplayer/RendererCapabilities; or its super classes (declaration of 'androidx.media3.exoplayer.RendererCapabilities' appears in base.apk!classes4.dex)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer.supportsFormat(ExperimentalFfmpegVideoRenderer.java:78)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.trackselection.MappingTrackSelector.findRenderer(MappingTrackSelector.java:513)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.trackselection.MappingTrackSelector.selectTracks(MappingTrackSelector.java:380)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.MediaPeriodHolder.selectTracks(MediaPeriodHolder.java:256)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.MediaPeriodHolder.handlePrepared(MediaPeriodHolder.java:194)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.ExoPlayerImplInternal.handlePeriodPrepared(ExoPlayerImplInternal.java:2453)
04-23 13:14:00.082 E/ACRA    ( 1067):   at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:563)
04-23 13:14:00.082 E/ACRA    ( 1067):   at android.os.Handler.dispatchMessage(Handler.java:102)
04-23 13:14:00.082 E/ACRA    ( 1067):   at android.os.Looper.loop(Looper.java:211)
04-23 13:14:00.082 E/ACRA    ( 1067):   at android.os.HandlerThread.run(HandlerThread.java:65)

App information

App version: 0.16.9 (160999)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"sheldon","BOOTLOADER":"unknown","BRAND":"Amazon","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"sheldon","DISPLAY":"PS7669.4007N","FINGERPRINT":"Amazon\/sheldon\/sheldon:9\/PS7669.4007N\/0029696698112:user\/amz-p,release-keys","HARDWARE":"mt8695","HOST":"i3-ri-14-use1a-b-16-04-fos-223","ID":"PS7669.4007N","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"Amazon","MODEL":"AFTSS","PERMISSIONS_REVIEW_REQUIRED":false,"PRODUCT":"sheldon","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"amz-p,release-keys","TIME":1706695346000,"TYPE":"user","UNKNOWN":"unknown","USER":"build","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"PPR1.180610.009","CODENAME":"REL","FIRST_SDK_INT":28,"INCREMENTAL":"0029696698244","PREVIEW_SDK_INT":0,"RELEASE":"9","RESOURCES_SDK_INT":28,"SDK":"28","SDK_INT":28,"SECURITY_PATCH":"2023-12-01"}}

Build config:

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

Device information

Android version: 9
Device brand: Amazon
Device product: sheldon
Device model: AFTSS

Crash information

Start time: 2024-04-23T13:13:38.091-04:00
Crash time: 2024-04-23T13:14:00.210-04:00

FFmpeg logs

not relavent since playing never started.

Media info of the file

Containermkv
Size501 MB
Video
Title1080p HEVC SDR
CodecHEVC
ProfileMain 10
Level120
Resolution1920x1080
Aspect ratio16:9
InterlacedNo
Framerate23.976025
Bitrate1616 kbps
Bit depth10 bit
Video rangeSDR
Video range typeSDR
Color spacebt709
Color transferbt709
Color primariesbt709
Pixel formatyuv420p10le
Ref frames1
Audio
TitleEnglish - Dolby Digital+ - 5.1 - Default
Languageeng
CodecEAC3
Layout5.1
Channels6 ch
Bitrate640 kbps
Sample rate48000 Hz
DefaultYes
ForcedNo
ExternalNo
Subtitle
TitleEnglish (SDH) - ASS
Languageeng
CodecASS
DefaultNo
ForcedNo
ExternalNo

Application version

0.16.9

Device information

Fire TV Stick 4K (1st Gen) and Fire TV Stick Lite

Android version

Fire OS 6 and 7

Jellyfin server version

10.8.13

nielsvanvelzen commented 6 months ago

This is a known issue. As stated in the release notes.

Downgrade to 0.16.8 for now.

nielsvanvelzen commented 6 months ago

Version 0.16.10 is now released and fixes this crash.