jellyfin / Swiftfin

Native Jellyfin Client for iOS and tvOS
Mozilla Public License 2.0
2.55k stars 279 forks source link

Can't select subtitles, it jumps back to none #1256

Open ikheetjeff opened 2 weeks ago

ikheetjeff commented 2 weeks ago

Describe the bug

Thank you all for this fantastic app.

When I click on a subtitle, I expect it to load. However, that doesn’t happen: it switches back to "none" and doesn’t display any subtitles. This occurs with all SUBRIP languages in this video. However, it doesn’t happen with all series/movies. I haven’t been able to find a reason why it doesn’t work with this file but does with other films/series.

I’ve tried the following:

When I installed an earlier TestFlight build (1.2 (3)), the problem was resolved. The issue is also not present in the App Store version.

I suspect it is related to this PR: https://github.com/jellyfin/Swiftfin/pull/1219 Hopefully, @cebrusfs, you can take a look at this due to your previous commit. My apologies if this tag is not appreciated.

This video shows the bug: (TestFlight 1.2 (4))

https://github.com/user-attachments/assets/d776c40a-5a65-460b-bf07-8975981ee151

This is how it should work: (TestFlight 1.2 (3) / App Store version)

https://github.com/user-attachments/assets/150b29ab-406b-4382-ad2a-ed7784527d7b

Original media file (added the SUBRIP manualy in jellyfin)

General
Complete name                            : The.Walking.Dead.Daryl.Dixon.S01E02.Alouette.EAC3.5.1.1080p.Bluray.x265-NLSubs-SJK.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 1.08 GiB
Duration                                 : 1 h 0 min
Overall bit rate                         : 2 559 kb/s
Frame rate                               : 23.976 FPS
Encoded date                             : 2024-02-24 19:18:12 UTC
Writing application                      : HandBrake 1.6.1 2023012300
Writing library                          : Lavf59.27.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L4@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 0 min
Bit rate                                 : 1 868 kb/s
Width                                    : 1 920 pixels
Height                                   : 960 pixels
Display aspect ratio                     : 2.000
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 0)
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.042
Stream size                              : 804 MiB (73%)
Writing library                          : x265 3.5+1-f0c1022b6:[Windows][GCC 10.2.0][64 bit] 8bit+10bit+12bit
Encoding settings                        : cpuid=1111039 / frame-threads=5 / numa-pools=32 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x960 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-eob / no-eos / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=24 / keyint=240 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=4 / selective-sao=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=23.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=1 / chromaloc-top=0 / chromaloc-bottom=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=255 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-sbrc / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass / no-mcstf
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : E-AC-3
Format/Info                              : Enhanced AC-3
Commercial name                          : Dolby Digital Plus
Codec ID                                 : A_EAC3
Duration                                 : 1 h 0 min
Bit rate mode                            : Constant
Bit rate                                 : 640 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Delay relative to video                  : -5 ms
Stream size                              : 275 MiB (25%)
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No
Dialog Normalization                     : -31 dB
dialnorm_Average                         : -31 dB
dialnorm_Minimum                         : -31 dB
dialnorm_Maximum                         : -31 dB

Text #1
ID                                       : 3
Format                                   : PGS
Codec ID                                 : S_HDMV/PGS
Codec ID/Info                            : Picture based subtitle format used on BDs/HD-DVDs
Duration                                 : 57 min 16 s
Title                                    : English (Forced)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #2
ID                                       : 4
Format                                   : PGS
Codec ID                                 : S_HDMV/PGS
Codec ID/Info                            : Picture based subtitle format used on BDs/HD-DVDs
Duration                                 : 59 min 10 s
Title                                    : English (SDH)
Language                                 : English
Default                                  : No
Forced                                   : No

Text #3
ID                                       : 5
Format                                   : PGS
Codec ID                                 : S_HDMV/PGS
Codec ID/Info                            : Picture based subtitle format used on BDs/HD-DVDs
Duration                                 : 59 min 56 s
Title                                    : French
Language                                 : French
Default                                  : No
Forced                                   : No

Text #4
ID                                       : 6
Format                                   : PGS
Codec ID                                 : S_HDMV/PGS
Codec ID/Info                            : Picture based subtitle format used on BDs/HD-DVDs
Duration                                 : 59 min 10 s
Title                                    : Spanish
Language                                 : Spanish
Default                                  : No
Forced                                   : No

Menu
00:00:00.000                             : Chapter 1
00:07:10.180                             : Chapter 2
00:12:51.729                             : Chapter 3
00:21:10.603                             : Chapter 4
00:29:53.959                             : Chapter 5
00:35:55.028                             : Chapter 6
00:46:23.739                             : Chapter 7
00:53:40.968                             : Chapter 8
00:59:35.238                             : Chapter 9

Application version

1.2 (4)

Where did you install the app from?

TestFlight

Device information

iPhone 14 Pro Max

OS version

iOS 18.0.1

Jellyfin server version

10.9.11

cebrusfs commented 2 weeks ago

It might be some trick cases that my workaround doesn't handle well.

I think @LePips is working on refactoring related code in #1203. I hope it fix this if the whole logic is re-written.

BTW, it is good cases that we might want some unit-test to ensure this handled correctly.

tobylibo commented 2 weeks ago

I have the same issue.

Firestorm7893 commented 2 weeks ago

Unfortunately I'm having the same issue as well.

95mjeed commented 2 weeks ago

This is the same issue I have

95mjeed commented 1 week ago

Last update in AppStore indicates that the issue solved , did you guys still have it. Since I still facing the issue and tried everything to workaround it but no luck.

HanHwanHo commented 1 week ago

Last update & test flight

still facing the issue no luck

internal subtitles works but external subtitles switches back to "none"

cebrusfs commented 1 week ago

@LePips do you have any refactor progress could share? I am thinking if we should take immediate action to revert #1219 since the patch get more complain on this thread than #1207

JPKribs commented 1 week ago

I believe the goal is for this refactor to be shipped in the 1.3 final version:

https://github.com/jellyfin/Swiftfin/issues/1265#issuecomment-2415679656