jellyfin-androidtv icon indicating copy to clipboard operation
jellyfin-androidtv copied to clipboard

[v0.19.0 beta 3] Fast forward with intro skipper crash video

Open CLepetitL opened this issue 7 months ago • 18 comments

This issue respects the following points:

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

Describe the bug

Hello,

I'm using intro skipper for fast forward with button the intro and recap on series, it's working well on all devices exept for TV. When i click on the button (the design is not the same as the other device), i can see the run time go on the good timeline, but the video stop on a blackscreen, and i have to force stop the app, and sometime restart the entire TV, like the app is completely bug. I provide the entire log from where the play begin, till i shutdown Jellyfin app on my TV

Logs

[14:07:01] [INF] [32] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for *****. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True [14:07:02] [INF] [41] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 1G -probesize 1G -fflags +genpts -i file:"/data/Series/Daredevil - Born Again/Season 1/Daredevil Born Again - S01E03 - Au creux de Sa main 2160p.DV.HDR.x265-Amen.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 dvh1 -strict -2 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 copy -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/cache/transcodes/c85f6f7326624d07446e84360a8ec11e%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/c85f6f7326624d07446e84360a8ec11e.m3u8" [14:07:20] [INF] [34] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0 [14:07:27] [INF] [34] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/cache/transcodes/c85f6f7326624d07446e84360a8ec11e.m3u8 [14:07:29] [INF] [37] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Android TV 0.19.0-beta.3 playing Au creux de Sa main. Stopped at 57427 ms [14:07:30] [INF] [37] Emby.Server.Implementations.HttpServer.WebSocketManager: WS ********* closed

Application version

0.19.0-beta3

Where did you install the app from?

Google Play Store

Device information

TCL Smart TV PRO

Android version

Android TV 12

Jellyfin server version

10.10.7

Other sources

No response

CLepetitL avatar Sep 23 '25 12:09 CLepetitL

I am experiencing this issue as well. I am so glad to see that I am not alone lol, as I have gotten nowhere troubleshooting the problem myself. I too experience no problems when using other devices.

I did some troubleshooting a while back and attempted to switch to the external player method + VLC player, but I had other problems getting the streams to play on VLC (it would often open VLC player but not start the stream).

I also attempted switching over to Roku, to be honest I can't remember why I gave up on that - I have a feeling it was because the app experience was so much poorer so I would rather stick with the Jellyfin client with no skipping.

I also played around with changing the stream quality, and found that the issue occurred less often on extremely low bit rates, which led me down a rabbit hole on transcoding but never got anywhere with that.

Lastly, I found that the issue also presents when seeking / using the fast forward buttons, so I believe it is NOT related to the intro skipper plug in, but rather with how the app is handling seeking.

If someone was able to provide ideas for specific troubleshooting to do which can help find the cause of the problem, I am more than happy to do it. I feel a bit out of my depth when it comes to video stream troubleshooting as this is all very new to me, but I am eager to learn and to contribute towards resolving this problem.

I am using:

Application version

0.18.11

Where did you install the app from?

Google Play Store

Device information

TCL Smart TV PRO

Android version

Android TV 12

Jellyfin server version

10.10.7

OrganicPepper avatar Sep 26 '25 23:09 OrganicPepper

FIY : doesnt change anything with jellyfin 10.11 upgrade

CLepetitL avatar Oct 21 '25 09:10 CLepetitL

Makes sense, since the issue is on the client rather than the server. Although, I think the ffmpeg library was updated alongside 10.11, so maybe once the client version catches up it might have an impact

OrganicPepper avatar Oct 21 '25 09:10 OrganicPepper

I finally get my TV log with adb

From what i can see, there is like 2 subjects here :

C2MtkVdec / MI3 :

not supported media type: video/dolby-vision
SetV4L2DmxFramerate fails
Aspect ratio value not support : 0
thalTvInput / thal_display :

SignalStable convert string fail
HDMIType convert string fail
...
thal_display_get_window_id fail! window_id[0xffffffff] device_id[0]

See complete logs :

10-21 13:23:57.175   549  2598 E APM::TclAudioPolicyEngine: getDeivceForRole is -2
10-21 13:23:57.175   549  2598 E APM::TclAudioPolicyEngine: getDevicesssssRoleS
10-21 13:23:57.579  3675  3711 P Quality: info 1761045698171 procName:org.jellyfin.androidtv 1 callback:android.view.ViewRootImpl$4,target:android.view.ViewRootImpl$ViewRootHandler
10-21 13:23:58.094   460   661 E C2MtkVdec: not supported media type: video/dolby-vision
10-21 13:23:58.124   489   578 E <MI3>: <ERR>_MI_CAPTURE_GetCaptureConfig: dip_bwlimit_enable=0, dip_bw_max=0x163f5000
10-21 13:23:58.127   489   578 E CAPTURE_HIDL: dst_width(3840) exceed dst_max_width(1920)
10-21 13:23:58.127   460   661 E CaptureLink: captureHal->getCaptureCapabilityInfo fail
10-21 13:23:58.128   460   661 E C2MtkVdecTv: capture doesn't support compression format
10-21 13:23:58.195   667  2016 E PqRepositoryService: MapKey constructor with NULL
10-21 13:23:58.221   460  5040 E C2MtkVdecTv: onInit 4536: mInputSource:MM
10-21 13:23:58.225   460  5050 E <MI3>: Failed to get vendor.mtk.subhalvdec.log / dump / vts / noGuessFps
10-21 13:23:58.226   460  5050 E <MI3>: MI_VDEC_SetControl default case: 0
10-21 13:23:58.226   460  5050 E <MI3>: MI_VDEC_SetAttr default case: 512
10-21 13:23:58.234   460  5050 E <MI3>: Set V4L2 Dmx framerate fails
10-21 13:23:58.234   460  5050 E <MI3>: MI_VDEC_Start: SetV4L2DmxFramerate fails
10-21 13:23:58.236   460  5050 E <MI3>: MI_VDEC_SetControl default case: 4
10-21 13:23:58.237   460  5050 E <MI3>: MI_VDEC_SetControl default case: 3
10-21 13:23:58.253  1307  1818 E thalTvInput: FirstFrameCaptured convert string fail
10-21 13:23:58.253   705   773 E thalTvInput: FirstFrameCaptured convert string fail
10-21 13:23:58.254   214   243 E thalTvInput: FirstFrameCaptured convert string fail
10-21 13:23:58.359  3675  5035 E ion: ioctl c0044901 failed with code -1: Inappropriate ioctl for device
10-21 13:23:58.371   460   662 E ion: ioctl c0044901 failed with code -1: Inappropriate ioctl for device
10-21 13:23:58.395   460  5051 E <MI3>: MI_VDEC_Poll POLLERR
10-21 13:23:58.411   549  2598 E APM::TclAudioPolicyEngine: getDeivceForRole is -2
10-21 13:23:58.412   549  2598 E APM::TclAudioPolicyEngine: getDevicesssssRoleS
10-21 13:23:58.445   460  5054 E <MI3>: Aspect ratio value not support: 0
10-21 13:23:58.481   499   499 E PQ_HIDL: getFrameDomainParam: EN_TSRM_OK
10-21 13:23:58.504   499   499 E <MI3>: Not support panel width: 0 now
10-21 13:23:58.515   499   885 E PQ_HIDL: error, str_params is empty
10-21 13:23:58.516   499   885 E PQ_HIDL: getFrameDomainParam: EN_TSRM_OK
10-21 13:23:58.596  3675  5047 E MediaCodec: the parse framecount lower 30, so give 30
10-21 13:23:58.617   549  2949 E ServiceUtilities: Request requires android.permission.MODIFY_AUDIO_SETTINGS
10-21 13:23:58.619   549  2949 E APM_AudioPolicyManager: setOutputDevices changing device to {type:0x40000,@:}
10-21 13:23:58.647   214   243 E thal_display: Invalid deviceName[0]
10-21 13:23:58.648   705   773 E thal_display: Invalid deviceName[0]
10-21 13:23:58.675   499   719 E DispService: no DispServiceLogoListener
10-21 13:23:58.687   483   910 E <MI3>: MI_SUBHAL_OS_ReleaseMutex: MutexId = 0x0 fail
10-21 13:23:58.692   705   773 E thalTvInput: SignalStable convert string fail
10-21 13:23:58.694   705   773 E thalTvInput: HDMIType convert string fail
10-21 13:23:58.791   549  2949 E AudioFlinger: onAddNewTrack is 5028
10-21 13:23:58.791   549  2949 E AudioFlinger: audio add ipelEngine ux
10-21 13:23:58.814   705   871 E thal_display: Display_Get_WinId_By_devName_SrcType fail
10-21 13:23:58.816  1193  1373 E TvInputImpl: getCurrentInputID ret=21
10-21 13:23:58.819  1307  1600 E TServiceManager: check get service not permission client pid=1193
10-21 13:23:58.819   499   499 E <MI3>: MI_PQ_Ioctl ioctl failed, fd=36, ret=-1, errno=2
10-21 13:23:58.820   214   893 E THAL_Video: getHistogram LUMA Failed
10-21 13:23:58.822   214   893 E tclpqalg: alg_video_get_average_luma error, ret=1
10-21 13:23:58.824   499  5068 E PQ_HIDL: PQ::setInputConfigure, PQId:0, ePQLevel:0, bAISREn:1, Panel_W:3840, Panel_H:2160, Panel_FPS:120000
10-21 13:23:58.830   499  5068 E <MI3>: ForceP is not supported, window id = 0
10-21 13:23:58.831   499  5068 E <MI3>: MI_PQ_SetExtCtrl VIDIOC_S_EXT_CTRLS failed
10-21 13:23:58.854   499   499 E <MI3>: _MI_PQ_ApplyParams_CheckRange FAIL, RET: 3
10-21 13:23:58.855   499   712 E PQ_HIDL: error, str_params is empty
10-21 13:23:59.272   499  5088 E PQ_HIDL: getFrameDomainParam: EN_TSRM_OK
10-21 13:23:59.296   483  5026 E TpcAudioLink: updateAudioTime: audio hal handle is NULL
10-21 13:23:59.324   499   708 E DispLink: C2 set delay timeout(500 ms)
10-21 13:23:59.328   483  516 E TpcAudioLink: updateAudioTime: audio hal handle is NULL

CLepetitL avatar Oct 21 '25 11:10 CLepetitL

@OrganicPepper I found some tricks you can test it It doesnt work like 100% time, but it's something to dig into

I tried to modify in the advanced settings of my TCL sound, to modify the numeric audio output from auto to Pass Through (i tried PCM also)

From what i can analyse in the log, it's maybe a sound transcoding problem but not from Jellyfin.

I'm using ARC for the audio output on a soundbar.

The issue is not caused by Jellyfin or the server, but by TCL TV’s audio handling via HDMI ARC. It’s a known bug on the TCL C745 / C845 / C755 series:

When resuming playback after seeking (fast-forward or rewind), the TV resets the EAC3 / Dolby Digital+ audio stream but fails to re-send it properly over HDMI ARC — this causes the playback to freeze.

In Pass Through Mode, The TV sends the raw audio bitstream directly to the soundbar without decoding it. Auto Mode, the TV automatically detects the audio format from the source (Dolby Digital, Dolby Digital+, DTS, etc.) Problem: On some TCL TVs, when you resume playback after seeking (fast forward or rewind), the Dolby Digital+ stream crashes.

So with the pass through mode, i succeed the intro skip like several time, but sometime the bug still there.

So i'm stil thinking that it comes from jellyfin (because the file can me launch with another media player), but maybe we can modify the settings a bit more to make this work

CLepetitL avatar Oct 21 '25 14:10 CLepetitL

I'm also having issues with this on a Hisense TV. Its quite annoying. Usually have to back out of the app entirely and reload it for the audio/video playback to resume smoothly.

alongwhile avatar Oct 26 '25 16:10 alongwhile

Jellyfin Server Version 10.11.2
Android TV Client Version 0.19.3 Intro Skipper Plugin Version 1.10.11.7 issue still exists.

S2ciOnur avatar Nov 15 '25 13:11 S2ciOnur

@nielsvanvelzen Hello mate, possible to take a look ? At least to prioritize this ticket as high ? maybe link to #4770

CLepetitL avatar Nov 18 '25 13:11 CLepetitL

Hey @CLepetitL, sorry for my slow reply, I've been struggling to find time to sit down for proper testing. I finally found a moment today, but strangely had great difficulty replicating the bug. I skipped around aggressively on various video formats, and 90% of the time Jellyfin coped well. When it froze, restarting the stream was sufficient to fix the bug other than once where a full restart was required.

It first locked up on a DTS stream, and thinking back to your message I went to change my TV to not use DTS playback, and I found that the whole TCL application running to manage the settings UI locked up when I tried to change it. Based on how the TV behaved, it seemed like the app eventually restarted itself. I also saw a toast from Jellyfin saying there was an error during playback. I replicated this twice, and found that you could change these settings fine with the stream running as long as it wasn't frozen. Could this put further weight behind the audio decoding being the cause? Unfortunately, I wasn't able to replicate the freeze again, so I couldn't test changing non-audio related settings to see if the crash still occurred.

Unlike your set up, I am using the built in speakers of the TV, so I only have PCM mode offered to me, so I suspect the problem is not solely in the ARC protocol, but maybe a different interaction between Jellyfin & the TV's audio handling (given that other streaming apps have no issues).

To note, since I tested last a number of things have changed with my setup, so there are too many variables to know exactly what improved the bug. But perhaps your set up will have a number of these features, to potentially rule them out:

  • My TCL TV Firmware updated, now V8-0012T01-LF1V509
  • Jellyfin is now running 10.11.2
  • I moved my Jellyfin server onto a Linux VM, was previously Windows
  • I haven't reinstalled Intro skipper yet since moving it across
  • I now access the server through a local reverse proxy, rather than direct IP.

OrganicPepper avatar Nov 19 '25 09:11 OrganicPepper

After digging a little bit i can say in my case it is probably a webhook connection issue because i'm using Amazon FireTV.

S2ciOnur avatar Nov 19 '25 18:11 S2ciOnur

Hello @OrganicPepper , Thank you for all the details you gave. Do you think that it's possible to make a discord (or other) session together to try to find some more precise informations to give the jellyfin android tv team ?

CLepetitL avatar Nov 20 '25 08:11 CLepetitL

Hey @CLepetitL, Yup, happy to. My username is the same on discord, please send me a message.

On Thu, 20 Nov 2025 at 19:28, CLepetitL @.***> wrote:

CLepetitL left a comment (jellyfin/jellyfin-androidtv#4958) https://github.com/jellyfin/jellyfin-androidtv/issues/4958#issuecomment-3556537043

Hello @OrganicPepper https://github.com/OrganicPepper , Thank you for all the details you gave. Do you think that it's possible to make a discord (or other) session together to try to find some more precise informations to give the jellyfin android tv team ?

— Reply to this email directly, view it on GitHub https://github.com/jellyfin/jellyfin-androidtv/issues/4958#issuecomment-3556537043, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVEPV4KVLTDNICBHLJEVIL35V3RFAVCNFSM6AAAAACHIN3QSSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKNJWGUZTOMBUGM . You are receiving this because you were mentioned.Message ID: @.***>

OrganicPepper avatar Nov 22 '25 01:11 OrganicPepper

Hey @CLepetitL, Yup, happy to. My username is the same on discord, please send me a message.

Hey, I sent you a friend request as carbon.

CLepetitL avatar Nov 22 '25 08:11 CLepetitL

if i try to fast forward, video starts from the beginning again. Pretty weired bugs

S2ciOnur avatar Nov 23 '25 16:11 S2ciOnur

Hi all, is there any update on this issue?

I'm unfortunately experiencing this same issue too. My setup is:

  • TV: TCL Q7C, with firmware V8-0012T01-LF1V543.002503
  • Server version: 10.10.7
  • App version: 0.19.2
  • Audio is coming directly from TV speakers (so no ARC should be included in my flow)

I can confirm the same behavior as it was mentioned above: If I seek on the progress bar or use fast forward button, it shows me just the picture of the new frame, but from that moment playing is stuck there. Sometimes force stop of app helps, but in most cases I have to restart the whole TV. It is not happening all the time, but in like 80% of cases when I try to seek/fast forward anything. With other devices I do not experience any similiar issue like that.

I happy to provide any additional logs or whatever info is needed to help to solve it. Thanks a lot.

blazerob avatar Nov 29 '25 13:11 blazerob

Hi all,

After digging through adb logs, I found definitive evidence that the hardware accelerated audio thread is locking up, so it's a bug on TCL's firmware. There must be something about the jellyfin player which handles seeking differently to other players like netflix that makes it more susceptible to the bug.

I recently found a workaround which has been going strong. Enable "Prefer ffmpeg for audio playback". This forces software decoding for audio, preventing the hardware acceleration related bug. See how this goes for you.

On Sun, Nov 30, 2025, at 12:05 AM, blazerob wrote:

blazerob left a comment (jellyfin/jellyfin-androidtv#4958) https://github.com/jellyfin/jellyfin-androidtv/issues/4958#issuecomment-3591661339 Hi all, is there any update on this issue?

I'm unfortunately experiencing this same issue too. My setup is:

• TV: TCL Q7C, with firmware V8-0012T01-LF1V543.002503 • Server version: 10.10.7 • App version: 0.19.2 • Audio is coming directly from TV speakers (so no ARC should be included in my flow) I can confirm the same behavior as it was mentioned above: If I seek on the progress bar or use fast forward button, it shows me just the picture of the new frame, but from that moment playing is stuck there. Sometimes force stop of app helps, but in most cases I have to restart the whole TV. It is not happening all the time, but in like 80% of cases when I try to seek/fast forward anything. With other devices I do not experience any similiar issue like that.

I happy to provide any additional logs or whatever info is needed to help to solve it. Thanks a lot.

— Reply to this email directly, view it on GitHub https://github.com/jellyfin/jellyfin-androidtv/issues/4958#issuecomment-3591661339, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVEPV5QHEC2UDOOOPF6MOT37GKZHAVCNFSM6AAAAACHIN3QSSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKOJRGY3DCMZTHE. You are receiving this because you were mentioned.Message ID: @.***>

Thanks, Daniel

OrganicPepper avatar Nov 29 '25 14:11 OrganicPepper

Hi all,

After digging through adb logs, I found definitive evidence that the hardware accelerated audio thread is locking up, so it's a bug on TCL's firmware. There must be something about the jellyfin player which handles seeking differently to other players like netflix that makes it more susceptible to the bug.

I recently found a workaround which has been going strong. Enable "Prefer ffmpeg for audio playback". This forces software decoding for audio, preventing the hardware acceleration related bug. See how this goes for you. On Sun, Nov 30, 2025, at 12:05 AM, blazerob wrote: blazerob left a comment (jellyfin/jellyfin-androidtv#4958) <#4958 (comment)> Hi all, is there any update on this issue?

I'm unfortunately experiencing this same issue too. My setup is:

• TV: TCL Q7C, with firmware V8-0012T01-LF1V543.002503 • Server version: 10.10.7 • App version: 0.19.2 • Audio is coming directly from TV speakers (so no ARC should be included in my flow) I can confirm the same behavior as it was mentioned above: If I seek on the progress bar or use fast forward button, it shows me just the picture of the new frame, but from that moment playing is stuck there. Sometimes force stop of app helps, but in most cases I have to restart the whole TV. It is not happening all the time, but in like 80% of cases when I try to seek/fast forward anything. With other devices I do not experience any similiar issue like that.

I happy to provide any additional logs or whatever info is needed to help to solve it. Thanks a lot.

— Reply to this email directly, view it on GitHub <#4958 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVEPV5QHEC2UDOOOPF6MOT37GKZHAVCNFSM6AAAAACHIN3QSSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKOJRGY3DCMZTHE. You are receiving this because you were mentioned.Message ID: @.***> Thanks, Daniel

Thank you very much for your advice, I really appreciate it! I'll try it out over the weekend and let you know how it goes.

blazerob avatar Nov 29 '25 14:11 blazerob

Hi all,

After digging through adb logs, I found definitive evidence that the hardware accelerated audio thread is locking up, so it's a bug on TCL's firmware. There must be something about the jellyfin player which handles seeking differently to other players like netflix that makes it more susceptible to the bug.

I recently found a workaround which has been going strong. Enable "Prefer ffmpeg for audio playback". This forces software decoding for audio, preventing the hardware acceleration related bug. See how this goes for you. On Sun, Nov 30, 2025, at 12:05 AM, blazerob wrote: blazerob left a comment (jellyfin/jellyfin-androidtv#4958) <#4958 (comment)> Hi all, is there any update on this issue?

I'm unfortunately experiencing this same issue too. My setup is:

• TV: TCL Q7C, with firmware V8-0012T01-LF1V543.002503 • Server version: 10.10.7 • App version: 0.19.2 • Audio is coming directly from TV speakers (so no ARC should be included in my flow) I can confirm the same behavior as it was mentioned above: If I seek on the progress bar or use fast forward button, it shows me just the picture of the new frame, but from that moment playing is stuck there. Sometimes force stop of app helps, but in most cases I have to restart the whole TV. It is not happening all the time, but in like 80% of cases when I try to seek/fast forward anything. With other devices I do not experience any similiar issue like that.

I happy to provide any additional logs or whatever info is needed to help to solve it. Thanks a lot.

— Reply to this email directly, view it on GitHub <#4958 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQVEPV5QHEC2UDOOOPF6MOT37GKZHAVCNFSM6AAAAACHIN3QSSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTKOJRGY3DCMZTHE. You are receiving this because you were mentioned.Message ID: @.***> Thanks, Daniel

I've tested it on multiple files over the weekend and it worked without any issues so far. Thanks a lot for this nice simple workaround!

blazerob avatar Dec 01 '25 19:12 blazerob