-
-
Notifications
You must be signed in to change notification settings - Fork 643
Description
Describe the bug
This issue is specific to a specific movie title (Inside Out 2). Any video file identified as that movie causes the issue. The actual Inside Out 2 video file identified as another title plays just fine.
The issue could not be reproduced with the desktop version or the "regular" android version of Jellyfin.
When attempting to play the movie, a black screen is shown until the user interacts with the app. From that point, the app will crash if the user tries to skip forward. Clicking on the subtitles button shows "Unable to obtain subtitle info".
The only way to start the movie is to click on the quality settings button and then click on any bitrate (clicking on the already selected bitrate works). This might allow the movie to play, at least for a while, but may result in "Player error" messages and another black screen being shown.
Steps to reproduce:
- Have a movie library with a video file identified as Inside Out 2 by the server
- Launch the movie from Jellyfin on the Android TV
- Notice the screen stays black and that the movie doesn't play (no progress, no sound)
- The app will crash by trying to skip forward using the playback timeline
Logs
client: Jellyfin for Android TV
client_version: 0.18.2
client_repository: https://github.com/jellyfin/jellyfin-androidtv
type: crash_report
format: markdown
Logs
Stack Trace:
java.lang.NullPointerException: Parameter specified as non-null is null: method org.jellyfin.androidtv.util.apiclient.ReportingHelper.reportProgress, parameter streamInfo
at org.jellyfin.androidtv.util.apiclient.ReportingHelper.reportProgress(Unknown Source:18)
at org.jellyfin.androidtv.ui.playback.PlaybackController.startPauseReportLoop(PlaybackController.java:1026)
at org.jellyfin.androidtv.ui.playback.PlaybackController.pause(PlaybackController.java:759)
at org.jellyfin.androidtv.ui.playback.overlay.VideoPlayerAdapter.pause(VideoPlayerAdapter.java:35)
at androidx.leanback.media.PlaybackBaseControlGlue.pause(PlaybackBaseControlGlue.java:394)
at androidx.leanback.media.PlaybackTransportControlGlue$SeekUiClient.onSeekStarted(PlaybackTransportControlGlue.java:353)
at androidx.leanback.app.PlaybackSupportFragment$11.onSeekStarted(PlaybackSupportFragment.java:1136)
at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder.startSeek(PlaybackTransportRowPresenter.java:371)
at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder.onForward(PlaybackTransportRowPresenter.java:245)
at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder$4.onKey(PlaybackTransportRowPresenter.java:299)
at android.view.View.dispatchKeyEvent(View.java:14474)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at androidx.leanback.widget.PlaybackTransportRowView.dispatchKeyEvent(PlaybackTransportRowView.java:71)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at androidx.leanback.widget.BaseGridView.dispatchKeyEvent(BaseGridView.java:1081)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:490)
at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1880)
at android.app.Activity.dispatchKeyEvent(Activity.java:4156)
at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.kt:103)
at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.kt:117)
at org.jellyfin.androidtv.ui.browsing.MainActivity.dispatchKeyEvent(MainActivity.kt:176)
at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:404)
at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6278)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6144)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5626)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5814)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5871)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5847)
at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:6005)
at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3263)
at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2827)
at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2818)
at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3240)
at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:335)
at android.os.Looper.loopOnce(Looper.java:161)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:605)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Logcat:
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5871)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5847)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:6005)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3263)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2827)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2818)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3240)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.os.MessageQueue.nativePollOnce(Native Method)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.os.MessageQueue.next(MessageQueue.java:335)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.os.Looper.loopOnce(Looper.java:161)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.os.Looper.loop(Looper.java:288)
12-26 17:25:23.588 E/AndroidRuntime(15634): at android.app.ActivityThread.main(ActivityThread.java:7839)
12-26 17:25:23.588 E/AndroidRuntime(15634): at java.lang.reflect.Method.invoke(Native Method)
12-26 17:25:23.588 E/AndroidRuntime(15634): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:605)
12-26 17:25:23.588 E/AndroidRuntime(15634): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
12-26 17:25:23.588 E/ACRA (15634): ACRA caught a NullPointerException for org.jellyfin.androidtv
12-26 17:25:23.588 E/ACRA (15634): java.lang.NullPointerException: Parameter specified as non-null is null: method org.jellyfin.androidtv.util.apiclient.ReportingHelper.reportProgress, parameter streamInfo
12-26 17:25:23.588 E/ACRA (15634): at org.jellyfin.androidtv.util.apiclient.ReportingHelper.reportProgress(Unknown Source:18)
12-26 17:25:23.588 E/ACRA (15634): at org.jellyfin.androidtv.ui.playback.PlaybackController.startPauseReportLoop(PlaybackController.java:1026)
12-26 17:25:23.588 E/ACRA (15634): at org.jellyfin.androidtv.ui.playback.PlaybackController.pause(PlaybackController.java:759)
12-26 17:25:23.588 E/ACRA (15634): at org.jellyfin.androidtv.ui.playback.overlay.VideoPlayerAdapter.pause(VideoPlayerAdapter.java:35)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.media.PlaybackBaseControlGlue.pause(PlaybackBaseControlGlue.java:394)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.media.PlaybackTransportControlGlue$SeekUiClient.onSeekStarted(PlaybackTransportControlGlue.java:353)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.app.PlaybackSupportFragment$11.onSeekStarted(PlaybackSupportFragment.java:1136)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder.startSeek(PlaybackTransportRowPresenter.java:371)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder.onForward(PlaybackTransportRowPresenter.java:245)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.widget.PlaybackTransportRowPresenter$ViewHolder$4.onKey(PlaybackTransportRowPresenter.java:299)
12-26 17:25:23.588 E/ACRA (15634): at android.view.View.dispatchKeyEvent(View.java:14474)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.widget.PlaybackTransportRowView.dispatchKeyEvent(PlaybackTransportRowView.java:71)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at androidx.leanback.widget.BaseGridView.dispatchKeyEvent(BaseGridView.java:1081)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:1964)
12-26 17:25:23.588 E/ACRA (15634): at com.android.internal.policy.DecorView.superDispatchKeyEvent(DecorView.java:490)
12-26 17:25:23.588 E/ACRA (15634): at com.android.internal.policy.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1880)
12-26 17:25:23.588 E/ACRA (15634): at android.app.Activity.dispatchKeyEvent(Activity.java:4156)
12-26 17:25:23.588 E/ACRA (15634): at androidx.core.app.ComponentActivity.superDispatchKeyEvent(ComponentActivity.kt:103)
12-26 17:25:23.588 E/ACRA (15634): at androidx.core.view.KeyEventDispatcher.dispatchKeyEvent(KeyEventDispatcher.java:85)
12-26 17:25:23.588 E/ACRA (15634): at androidx.core.app.ComponentActivity.dispatchKeyEvent(ComponentActivity.kt:117)
12-26 17:25:23.588 E/ACRA (15634): at org.jellyfin.androidtv.ui.browsing.MainActivity.dispatchKeyEvent(MainActivity.kt:176)
12-26 17:25:23.588 E/ACRA (15634): at com.android.internal.policy.DecorView.dispatchKeyEvent(DecorView.java:404)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:6278)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6144)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5626)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5814)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5871)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5657)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5630)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5683)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5649)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5847)
12-26 17:25:23.588 E/ACRA (15634): at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:6005)
12-26 17:25:23.588 E/ACRA (15634): at android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:3263)
12-26 17:25:23.588 E/ACRA (15634): at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:2827)
12-26 17:25:23.588 E/ACRA (15634): at android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:2818)
12-26 17:25:23.588 E/ACRA (15634): at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:3240)
12-26 17:25:23.588 E/ACRA (15634): at android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:154)
12-26 17:25:23.588 E/ACRA (15634): at android.os.MessageQueue.nativePollOnce(Native Method)
12-26 17:25:23.588 E/ACRA (15634): at android.os.MessageQueue.next(MessageQueue.java:335)
12-26 17:25:23.588 E/ACRA (15634): at android.os.Looper.loopOnce(Looper.java:161)
12-26 17:25:23.588 E/ACRA (15634): at android.os.Looper.loop(Looper.java:288)
12-26 17:25:23.588 E/ACRA (15634): at android.app.ActivityThread.main(ActivityThread.java:7839)
12-26 17:25:23.588 E/ACRA (15634): at java.lang.reflect.Method.invoke(Native Method)
12-26 17:25:23.588 E/ACRA (15634): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:605)
12-26 17:25:23.588 E/ACRA (15634): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
12-26 17:25:23.589 D/ACRA (15634): Building report
12-26 17:25:23.589 D/ACRA (15634): Starting collectors with priority FIRST
12-26 17:25:23.590 D/ACRA (15634): Calling collector org.acra.collector.LogCatCollector
12-26 17:25:23.590 D/ACRA (15634): Calling collector org.acra.collector.DropBoxCollector
12-26 17:25:23.590 D/ACRA (15634): Calling collector org.acra.collector.StacktraceCollector
12-26 17:25:23.590 D/ACRA (15634): Collector org.acra.collector.DropBoxCollector completed
12-26 17:25:23.591 D/ACRA (15634): Collector org.acra.collector.StacktraceCollector completed
12-26 17:25:23.595 D/ACRA (15634): Retrieving logcat output (buffer:default)...
App information
App version: 0.18.2
(180299
)
Package name: org.jellyfin.androidtv
Build:
{"BOARD":"PH1M_WW_9972","BOOTLOADER":"01.01.241206","BRAND":"Philips","CPU_ABI":"armeabi-v7a","CPU_ABI2":"armeabi","DEVICE":"PH1M_WW_9972","DISPLAY":"STT2.230831.001","FINGERPRINT":"Philips\/PH1M_WW_9972_21\/PH1M_WW_9972:12\/STT2.230831.001\/20775:user\/release-keys","HARDWARE":"mt5896","HOST":"TWTPSA398-ub1804-aow","ID":"STT2.230831.001","IS_DEBUGGABLE":false,"IS_EMULATOR":false,"MANUFACTURER":"TPV","MODEL":"Philips Google TV TA2","ODM_SKU":"unknown","PERMISSIONS_REVIEW_REQUIRED":true,"PRODUCT":"PH1M_WW_9972_21","RADIO":"unknown","SKU":"unknown","SOC_MANUFACTURER":"Mediatek","SOC_MODEL":"t50","SUPPORTED_32_BIT_ABIS":["armeabi-v7a","armeabi"],"SUPPORTED_64_BIT_ABIS":[],"SUPPORTED_ABIS":["armeabi-v7a","armeabi"],"TAGS":"release-keys","TIME":1733458668000,"TYPE":"user","UNKNOWN":"unknown","USER":"jenkins","VERSION":{"ACTIVE_CODENAMES":[],"BASE_OS":"","CODENAME":"REL","INCREMENTAL":"20775","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-10-05"}}
Build config:
{"APPLICATION_ID":"org.jellyfin.androidtv","BUILD_TYPE":"release","DEBUG":false,"DEVELOPMENT":false,"VERSION_CODE":180299,"VERSION_NAME":"0.18.2"}
Device information
Android version: 12
Device brand: Philips
Device product: PH1M_WW_9972_21
Device model: Philips Google TV TA2
Crash information
Start time: 2024-12-26T17:12:45.231+01:00
Crash time: 2024-12-26T17:25:23.912+01:00
Application version
0.18.2
Where did you install the app from?
Google Play
Device information
Phillips Oled 908+
Android version
12
Jellyfin server version
10.10.3