jellyfin / jellyfin-androidtv

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

Jellyfin client 10.7-beta1 on NVIDIA Shield TV crashes when playing "Up next" #3730

Closed ScottESanDiego closed 3 months ago

ScottESanDiego commented 3 months ago

Describe the bug

In my Jellyfin (10.9.7) library, some series show "1 minute" duration when at the series folder level, even though the actual episodes show the correct duration (e.g., "42 min"). When in a particular series that has that behavior, clicking "Play up next" results in a crash of the client. If I instead navigate to the individual episode, it plays fine.

In the Jellyfin WebUI everything looks fine at the series level. In Findroid, the same series shows "0 minutes" duration, so I suspect this is really a Jellyfin server error, however it only manifests with the Android TV client.

Logs


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

Logs

Stack Trace:

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jellyfin.sdk.model.api.MediaSourceInfo.getId()' on a null object reference
    at org.jellyfin.androidtv.ui.playback.PlaybackController.buildExoPlayerOptions(PlaybackController.java:524)
    at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:498)
    at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:403)
    at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onActivityCreated(CustomPlaybackOverlayFragment.java:342)
    at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3157)
    at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:631)
    at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:281)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2163)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2058)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2001)
    at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:702)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7668)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

Logcat:

07-05 22:07:28.653 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:28.671 W/RecyclerView(12910): No adapter attached; skipping layout
07-05 22:07:29.073 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.073 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.075 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.140 D/FullDetailsFragment(12910): Item type: Series
07-05 22:07:29.141 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Shows/NextUp?fields=PrimaryImageAspectRatio&fields=ChildCount&seriesId=c859a235-56ba-5acb-3545-f81c2bea958a&enableTotalRecordCount=true&disableFirstEpisode=false&enableResumable=true&enableRewatching=false
07-05 22:07:29.143 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Shows/NextUp?fields=PrimaryImageAspectRatio&fields=ChildCount&seriesId=c859a235-56ba-5acb-3545-f81c2bea958a&enableTotalRecordCount=true&disableFirstEpisode=false&enableResumable=true&enableRewatching=false
07-05 22:07:29.146 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Shows/c859a235-56ba-5acb-3545-f81c2bea958a/Seasons?fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.148 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Shows/c859a235-56ba-5acb-3545-f81c2bea958a/Seasons?fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.151 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Shows/Upcoming?fields=PrimaryImageAspectRatio&fields=ChildCount&parentId=c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.152 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Shows/Upcoming?fields=PrimaryImageAspectRatio&fields=ChildCount&parentId=c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.156 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a/Similar?limit=20&fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.157 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a/Similar?limit=20&fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.271 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Shows/NextUp?fields=PrimaryImageAspectRatio&fields=ChildCount&seriesId=c859a235-56ba-5acb-3545-f81c2bea958a&enableTotalRecordCount=true&disableFirstEpisode=false&enableResumable=true&enableRewatching=false
07-05 22:07:29.271 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Shows/NextUp?fields=PrimaryImageAspectRatio&fields=ChildCount&seriesId=c859a235-56ba-5acb-3545-f81c2bea958a&enableTotalRecordCount=true&disableFirstEpisode=false&enableResumable=true&enableRewatching=false
07-05 22:07:29.273 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Shows/NextUp?fields=PrimaryImageAspectRatio&fields=ChildCount&seriesId=c859a235-56ba-5acb-3545-f81c2bea958a&enableTotalRecordCount=true&disableFirstEpisode=false&enableResumable=true&enableRewatching=false to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.277 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Items?startIndex=2&parentId=554bf205-8fe3-bc63-6692-36d0c50b005d&enableTotalRecordCount=true&enableImages=true
07-05 22:07:29.278 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Items?startIndex=2&parentId=554bf205-8fe3-bc63-6692-36d0c50b005d&enableTotalRecordCount=true&enableImages=true
07-05 22:07:29.280 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Shows/c859a235-56ba-5acb-3545-f81c2bea958a/Seasons?fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.280 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Shows/c859a235-56ba-5acb-3545-f81c2bea958a/Seasons?fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.283 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Shows/c859a235-56ba-5acb-3545-f81c2bea958a/Seasons?fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.286 D/ItemRowAdapterHelperKt(12910): Creating items from 0 existing and 1 new, adapter size is 0
07-05 22:07:29.288 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Shows/Upcoming?fields=PrimaryImageAspectRatio&fields=ChildCount&parentId=c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.288 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Shows/Upcoming?fields=PrimaryImageAspectRatio&fields=ChildCount&parentId=c859a235-56ba-5acb-3545-f81c2bea958a
07-05 22:07:29.289 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Shows/Upcoming?fields=PrimaryImageAspectRatio&fields=ChildCount&parentId=c859a235-56ba-5acb-3545-f81c2bea958a to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.290 D/ItemRowAdapterHelperKt(12910): Creating items from 0 existing and 0 new, adapter size is 0
07-05 22:07:29.291 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a/Similar?limit=20&fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.291 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a/Similar?limit=20&fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount
07-05 22:07:29.293 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Items/c859a235-56ba-5acb-3545-f81c2bea958a/Similar?limit=20&fields=PrimaryImageAspectRatio&fields=DisplayPreferencesId&fields=ChildCount to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.294 D/ItemRowAdapterHelperKt(12910): Creating items from 0 existing and 0 new, adapter size is 0
07-05 22:07:29.335 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Items?startIndex=2&parentId=554bf205-8fe3-bc63-6692-36d0c50b005d&enableTotalRecordCount=true&enableImages=true
07-05 22:07:29.335 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Items?startIndex=2&parentId=554bf205-8fe3-bc63-6692-36d0c50b005d&enableTotalRecordCount=true&enableImages=true
07-05 22:07:29.337 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Items?startIndex=2&parentId=554bf205-8fe3-bc63-6692-36d0c50b005d&enableTotalRecordCount=true&enableImages=true to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:29.338 D/ItemRowAdapterHelperKt(12910): Creating items from 0 existing and 1 new, adapter size is 0
07-05 22:07:29.433 D/FullDetailsFragment(12910): current time 1720242449433 last playback event time null last refresh time 1720242449134
07-05 22:07:34.659 I/org.jellyfin.sdk.api.ktor.KtorClient(12910): GET http://192.168.10.254:8096/jellyfin/Items?limit=1&recursive=true&parentId=c859a235-56ba-5acb-3545-f81c2bea958a&includeItemTypes=Episode&filters=IsUnplayed&sortBy=ParentIndexNumber&sortBy=IndexNumber&sortBy=SortName&enableTotalRecordCount=true&enableImages=true
07-05 22:07:34.662 V/io.ktor.client.plugins.HttpPlainText(12910): Adding Accept-Charset=UTF-8 to http://192.168.10.254:8096/jellyfin/Items?limit=1&recursive=true&parentId=c859a235-56ba-5acb-3545-f81c2bea958a&includeItemTypes=Episode&filters=IsUnplayed&sortBy=ParentIndexNumber&sortBy=IndexNumber&sortBy=SortName&enableTotalRecordCount=true&enableImages=true
07-05 22:07:34.673 V/io.ktor.client.plugins.HttpCallValidator(12910): Validating response for request http://192.168.10.254:8096/jellyfin/Items?limit=1&recursive=true&parentId=c859a235-56ba-5acb-3545-f81c2bea958a&includeItemTypes=Episode&filters=IsUnplayed&sortBy=ParentIndexNumber&sortBy=IndexNumber&sortBy=SortName&enableTotalRecordCount=true&enableImages=true
07-05 22:07:34.673 V/io.ktor.client.plugins.DefaultResponseValidation(12910): Skipping default response validation for http://192.168.10.254:8096/jellyfin/Items?limit=1&recursive=true&parentId=c859a235-56ba-5acb-3545-f81c2bea958a&includeItemTypes=Episode&filters=IsUnplayed&sortBy=ParentIndexNumber&sortBy=IndexNumber&sortBy=SortName&enableTotalRecordCount=true&enableImages=true
07-05 22:07:34.676 V/io.ktor.client.plugins.defaultTransformers(12910): Transformed with default transformers response body for http://192.168.10.254:8096/jellyfin/Items?limit=1&recursive=true&parentId=c859a235-56ba-5acb-3545-f81c2bea958a&includeItemTypes=Episode&filters=IsUnplayed&sortBy=ParentIndexNumber&sortBy=IndexNumber&sortBy=SortName&enableTotalRecordCount=true&enableImages=true to interface io.ktor.utils.io.ByteReadChannel (Kotlin reflection is not available)
07-05 22:07:34.680 D/NavigationRepositoryImpl(12910): Navigating to Fragment(fragment=class org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment (Kotlin reflection is not available), arguments=Bundle[{Position=0}]) (via navigate function)
07-05 22:07:34.686 D/DefaultPlayerQueueState(12910): Queue changed, setting index to 0
07-05 22:07:34.770 I/ExoPlayerImpl(12910): Init cb15a4f [AndroidXMedia3/1.3.1] [sif, SHIELD Android TV, NVIDIA, 30]
07-05 22:07:34.771 I/DefaultRenderersFactory(12910): Loaded FfmpegVideoRenderer.
07-05 22:07:34.775 I/DefaultRenderersFactory(12910): Loaded FfmpegAudioRenderer.
07-05 22:07:34.793 I/PlaybackController(12910): Play called from state: IDLE with pos: 0 and sub index: null
07-05 22:07:34.795 D/PlaybackController(12910): Max bitrate is: 120000000
07-05 22:07:34.796 D/AndroidRuntime(12910): Shutting down VM
--------- beginning of crash
07-05 22:07:34.796 E/AndroidRuntime(12910): FATAL EXCEPTION: main
07-05 22:07:34.796 E/AndroidRuntime(12910): Process: org.jellyfin.androidtv, PID: 12910
07-05 22:07:34.796 E/AndroidRuntime(12910): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jellyfin.sdk.model.api.MediaSourceInfo.getId()' on a null object reference
07-05 22:07:34.796 E/AndroidRuntime(12910):     at org.jellyfin.androidtv.ui.playback.PlaybackController.buildExoPlayerOptions(PlaybackController.java:524)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:498)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:403)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onActivityCreated(CustomPlaybackOverlayFragment.java:342)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3157)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:631)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:281)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2163)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2058)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2001)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:702)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at android.os.Handler.handleCallback(Handler.java:938)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at android.os.Looper.loop(Looper.java:223)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at android.app.ActivityThread.main(ActivityThread.java:7668)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at java.lang.reflect.Method.invoke(Native Method)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
07-05 22:07:34.796 E/AndroidRuntime(12910):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
07-05 22:07:34.796 E/ACRA    (12910): ACRA caught a NullPointerException for org.jellyfin.androidtv
07-05 22:07:34.796 E/ACRA    (12910): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.jellyfin.sdk.model.api.MediaSourceInfo.getId()' on a null object reference
07-05 22:07:34.796 E/ACRA    (12910):   at org.jellyfin.androidtv.ui.playback.PlaybackController.buildExoPlayerOptions(PlaybackController.java:524)
07-05 22:07:34.796 E/ACRA    (12910):   at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:498)
07-05 22:07:34.796 E/ACRA    (12910):   at org.jellyfin.androidtv.ui.playback.PlaybackController.play(PlaybackController.java:403)
07-05 22:07:34.796 E/ACRA    (12910):   at org.jellyfin.androidtv.ui.playback.CustomPlaybackOverlayFragment.onActivityCreated(CustomPlaybackOverlayFragment.java:342)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3157)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:631)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:281)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2163)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2058)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2001)
07-05 22:07:34.796 E/ACRA    (12910):   at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:702)
07-05 22:07:34.796 E/ACRA    (12910):   at android.os.Handler.handleCallback(Handler.java:938)
07-05 22:07:34.796 E/ACRA    (12910):   at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 22:07:34.796 E/ACRA    (12910):   at android.os.Looper.loop(Looper.java:223)
07-05 22:07:34.796 E/ACRA    (12910):   at android.app.ActivityThread.main(ActivityThread.java:7668)
07-05 22:07:34.796 E/ACRA    (12910):   at java.lang.reflect.Method.invoke(Native Method)
07-05 22:07:34.796 E/ACRA    (12910):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
07-05 22:07:34.796 E/ACRA    (12910):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
07-05 22:07:34.796 D/ACRA    (12910): Building report
07-05 22:07:34.797 D/ACRA    (12910): Starting collectors with priority FIRST
07-05 22:07:34.798 D/ACRA    (12910): Calling collector org.acra.collector.DropBoxCollector
07-05 22:07:34.798 D/ACRA    (12910): Calling collector org.acra.collector.LogCatCollector
07-05 22:07:34.798 D/ACRA    (12910): Collector org.acra.collector.DropBoxCollector completed
07-05 22:07:34.798 D/ACRA    (12910): Calling collector org.acra.collector.StacktraceCollector
07-05 22:07:34.798 D/ACRA    (12910): Collector org.acra.collector.StacktraceCollector completed
07-05 22:07:34.808 D/ACRA    (12910): Retrieving logcat output (buffer:default)...

App information

App version: 0.17.0-beta.1 (170001)
Package name: org.jellyfin.androidtv
Build:

{"BOARD":"sif","BOOTLOADER":"32.00.2019.50-t210-da5c2b1b","BRAND":"NVIDIA","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"sif","DISPLAY":"RQ1A.210105.003.7825199_3538.5124","FINGERPRINT":"NVIDIA\/sif\/sif:11\/RQ1A.210105.003\/7825199_3538.5124:user\/release-keys","HARDWARE":"sif","HOST":"mobile-u64-6177-d7000","ID":"RQ1A.210105.003","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"NVIDIA","MODEL":"SHIELD Android TV","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"sif","RADIO":"unknown","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1706667097000,"TYPE":"user","UNKNOWN":"unknown","USER":"NVIDIA","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"7825199_3538.5124","PREVIEW_SDK_FINGERPRINT":"REL","PREVIEW_SDK_INT":0,"RELEASE":"11","RELEASE_OR_CODENAME":"11","SDK":"30","SDK_INT":30,"SECURITY_PATCH":"2023-08-05"}}

Build config:

{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":170001,"VERSION_NAME":"0.17.0-beta.1"}

Device information

Android version: 11
Device brand: NVIDIA
Device product: sif
Device model: SHIELD Android TV

Crash information

Start time: 2024-07-05T22:07:19.164-07:00
Crash time: 2024-07-05T22:07:34.846-07:00

FFmpeg logs

I'm not sure if this is the related log or not, but it's adjacent to the "upload_org.jellyfin.androidtv_.." file.

{"Protocol":0,"Id":"e2d6e40b0680fa59b6446aaece017966","Path":"/media/TV_Ephemeral/Apples Never Fall/Season 01/Apples Never Fall - S01E01 - The Delaneys WEBDL-2160p.mkv","EncoderPath":null,"EncoderProtocol":null,"Type":0,"Container":"mkv,webm","Size":5238132224,"Name":"Apples Never Fall - S01E01 - The Delaneys WEBDL-2160p","IsRemote":false,"ETag":"dfa2df84f69e43803c3e9352c3374df1","RunTimeTicks":27510720512,"ReadAtNativeFramerate":false,"IgnoreDts":false,"IgnoreIndex":false,"GenPtsInput":false,"SupportsTranscoding":true,"SupportsDirectStream":true,"SupportsDirectPlay":true,"IsInfiniteStream":false,"RequiresOpening":false,"OpenToken":null,"RequiresClosing":false,"LiveStreamId":null,"BufferMs":null,"RequiresLooping":false,"SupportsProbing":true,"VideoType":0,"IsoType":null,"Video3DFormat":null,"MediaStreams":[{"Codec":"hevc","CodecTag":null,"Language":null,"ColorRange":null,"ColorSpace":"bt2020nc","ColorTransfer":"smpte2084","ColorPrimaries":"bt2020","DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":2,"VideoRangeType":2,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"4K HEVC HDR","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":15232265,"BitDepth":10,"RefFrames":1,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":2160,"Width":3840,"AverageFrameRate":23.976025,"RealFrameRate":23.976025,"Profile":"Main 10","Type":1,"AspectRatio":"16:9","Index":0,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":"yuv420p10le","Level":150,"IsAnamorphic":null},{"Codec":"eac3","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":null,"VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":null,"LocalizedDefault":null,"LocalizedForced":null,"LocalizedExternal":null,"LocalizedHearingImpaired":null,"DisplayTitle":"English - Dolby Digital\u002B - 5.1 - Default","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":"5.1","BitRate":192000,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":6,"SampleRate":48000,"IsDefault":true,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":0,"AspectRatio":null,"Index":1,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":false,"SupportsExternalStream":false,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"eng","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"English","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","LocalizedHearingImpaired":"Hearing Impaired","DisplayTitle":"English - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":2,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null},{"Codec":"subrip","CodecTag":null,"Language":"spa","ColorRange":null,"ColorSpace":null,"ColorTransfer":null,"ColorPrimaries":null,"DvVersionMajor":null,"DvVersionMinor":null,"DvProfile":null,"DvLevel":null,"RpuPresentFlag":null,"ElPresentFlag":null,"BlPresentFlag":null,"DvBlSignalCompatibilityId":null,"Comment":null,"TimeBase":"1/1000","CodecTimeBase":null,"Title":"Spanish","VideoRange":0,"VideoRangeType":0,"VideoDoViTitle":null,"AudioSpatialFormat":0,"LocalizedUndefined":"Undefined","LocalizedDefault":"Default","LocalizedForced":"Forced","LocalizedExternal":"External","LocalizedHearingImpaired":"Hearing Impaired","DisplayTitle":"Spanish - SUBRIP","NalLengthSize":null,"IsInterlaced":false,"IsAVC":null,"ChannelLayout":null,"BitRate":null,"BitDepth":null,"RefFrames":null,"PacketLength":null,"Channels":null,"SampleRate":null,"IsDefault":false,"IsForced":false,"IsHearingImpaired":false,"Height":null,"Width":null,"AverageFrameRate":null,"RealFrameRate":null,"Profile":null,"Type":2,"AspectRatio":null,"Index":3,"Score":null,"IsExternal":false,"DeliveryMethod":null,"DeliveryUrl":null,"IsExternalUrl":null,"IsTextSubtitleStream":true,"SupportsExternalStream":true,"Path":null,"PixelFormat":null,"Level":0,"IsAnamorphic":null}],"MediaAttachments":[],"Formats":[],"Bitrate":15424265,"Timestamp":null,"RequiredHttpHeaders":{},"TranscodingUrl":null,"TranscodingSubProtocol":0,"TranscodingContainer":null,"AnalyzeDurationMs":null,"DefaultAudioStreamIndex":null,"DefaultSubtitleStreamIndex":null}

/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts -f matroska,webm  -i file:"/media/TV_Ephemeral/Apples Never Fall/Season 01/Apples Never Fall - S01E01 - The Delaneys WEBDL-2160p.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -tag:v:0 hvc1 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 2 -ab 256000 -af "volume=2" -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/transcodes/90d65d5509969f1f70832ae1c6d5f443%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/90d65d5509969f1f70832ae1c6d5f443.m3u8"

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-static --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-shared --enable-gmp --enable-gnutls --enable-chromaprint --enable-opencl --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libopenmpt --enable-libdav1d --enable-libsvtav1 --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-vaapi --enable-amf --enable-libvpl --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      58.  2.100 / 58.  2.100
  libavcodec     60.  3.100 / 60.  3.100
  libavformat    60.  3.100 / 60.  3.100
  libavdevice    60.  1.100 / 60.  1.100
  libavfilter     9.  3.100 /  9.  3.100
  libswscale      7.  1.100 /  7.  1.100
  libswresample   4. 10.100 /  4. 10.100
  libpostproc    57.  1.100 / 57.  1.100
Input #0, matroska,webm, from 'file:/media/TV_Ephemeral/Apples Never Fall/Season 01/Apples Never Fall - S01E01 - The Delaneys WEBDL-2160p.mkv':
  Metadata:
    encoder         : libebml v1.4.5 + libmatroska v1.7.1
  Duration: 00:45:51.07, start: 0.000000, bitrate: 15232 kb/s
  Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn (default)
  Stream #0:1(eng): Audio: eac3, 48000 Hz, 5.1(side), fltp, 192 kb/s (default)
  Stream #0:2(eng): Subtitle: subrip
    Metadata:
      title           : English
  Stream #0:3(spa): Subtitle: subrip
    Metadata:
      title           : Spanish
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (eac3 (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
Output #0, hls, to '/config/transcodes/90d65d5509969f1f70832ae1c6d5f443.m3u8':
  Metadata:
    encoder         : Lavf60.3.100
  Stream #0:0: Video: hevc (Main 10) (hvc1 / 0x31637668), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 23.98 fps, 23.98 tbr, 90k tbn (default)
  Stream #0:1: Audio: aac, 48000 Hz, stereo, s16, 256 kb/s (default)
    Metadata:
      encoder         : Lavc60.3.100 libfdk_aac
frame=    1 fps=0.0 q=-1.0 size=N/A time=-00:00:00.04 bitrate=N/A speed=N/A    
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4430.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4431.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4432.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4433.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4434.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4435.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4436.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f4437.ts' for writing
frame= 1233 fps=0.0 q=-1.0 size=N/A time=00:00:00.21 bitrate=N/A speed=0.438x    
[snip]
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f443455.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f443456.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f443457.ts' for writing
[hls @ 0x563831445280] Opening '/config/transcodes/90d65d5509969f1f70832ae1c6d5f443458.ts' for writing
frame=65959 fps=2386 q=-1.0 Lsize=N/A time=00:44:59.76 bitrate=N/A speed=97.6x    
video:5050063kB audio:85973kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Media info of the file

No response

Application version

10.7-beta1

Device information

NVIDIA Shield TV 2017

Android version

NVIDIA Shield TV current OS

Jellyfin server version

10.9.7

nielsvanvelzen commented 3 months ago

I'm unable to reproduce any of the mentioned issues. however, the crash should be fixed with #3731. I do have issues with seasons myself but those are all caused by the server.

ScottESanDiego commented 3 months ago

Cool. Looking forward to beta3 then! ;-)