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
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)
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:
Logcat:
App information
App version:
0.16.9
(160999
)Package name:
org.jellyfin.androidtv
Build:
Build config:
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
Media info of the file
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