PGS subtitles causing playback hiccup?

I’ve occasionally noticed brief playback hiccups in Infuse where the video freezes for a few seconds before continuing or skipping back to the point where it froze.

This seems to happen with 4K HEVC Dolby Vision files that contain PGS subtitles. When I turned subtitles off during playback after about 15 minutes, the movie played smoothly for the rest of the runtime.

So it looks like the issue might be related to PGS subtitle rendering, but I’m not sure.

Has anyone else seen this?

Device: Apple TV 4K (2022)
Infuse: latest version

General
Unique ID : 7261149770984915238783262384344239739 (0x5767252E68A942C8BE7B6CB559B8E7B)
Complete name : Y:\Movies\Movie name
Format : Matroska
Format version : Version 4
File size : 43.6 GiB
Duration : 2 h 43 min
Overall bit rate mode : Variable
Overall bit rate : 38.2 Mb/s
Movie name : Movie name
Encoded date : UTC 2024-08-04 12:41:42
Writing application : mkvmerge v86.0 (‘Winter’) 64-bit
Writing library : libebml v1.4.5 + libmatroska v1.7.1

Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@High
HDR format : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2086, HDR10 compatible
Codec ID : V_MPEGH/ISO/HEVC
Duration : 2 h 43 min
Bit rate : 34.6 Mb/s
Width : 3 840 pixels
Height : 1 608 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.233
Stream size : 39.5 GiB (90%)
Title : Title
Writing library : x265 3.6+34-0dfbe6dee:[Windows][GCC 14.1.0][64 bit] 10bit
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=3840x1608 / interlace=0 / total-frames=235296 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / repeat-headers / annexb / aud / no-eob / no-eos / hrd / info / hash=0 / temporal-layers=0 / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=80 / lookahead-slices=4 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=3 / tu-intra-depth=3 / 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=0 / limit-modes / me=3 / subme=5 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / rskip-edge-threshold=0.020000 / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.40 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=13.4 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.0 / ipratio=1.30 / pbratio=1.20 / aq-mode=2 / aq-strength=0.80 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=0 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,1) / cll=1000,901 / min-luma=0 / max-luma=1023 / 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 / hdr10 / 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 / no-sbrc
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0001 cd/m2, max: 1000 cd/m2
Maximum Content Light Level : 1000 cd/m2
Maximum Frame-Average Light Level : 901 cd/m2

Audio #1
ID : 2
Format : MLP FBA 16-ch
Format/Info : Meridian Lossless Packing FBA with 16-channel presentation
Commercial name : Dolby TrueHD with Dolby Atmos
Codec ID : A_TRUEHD
Duration : 2 h 43 min
Bit rate mode : Variable
Bit rate : 3 057 kb/s
Maximum bit rate : 5 397 kb/s
Channel(s) : 8 channels
Channel layout : L R C LFE Ls Rs Lb Rb
Sampling rate : 48.0 kHz
Frame rate : 1 200.000 FPS (40 SPF)
Compression mode : Lossless
Stream size : 3.49 GiB (8%)
Language : English
Default : Yes
Forced : No
Number of dynamic objects : 11
Bed channel count : 1 channel
Bed channel configuration : LFE

Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : A_AC3
Duration : 2 h 43 min
Bit rate mode : Constant
Bit rate : 448 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
Stream size : 524 MiB (1%)
Language : English
Service kind : Complete Main
Default : No
Forced : No

Text #1
ID : 4
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 2 h 39 min
Bit rate : 35.4 kb/s
Count of elements : 4296
Stream size : 40.4 MiB (0%)
Language : English
Default : No
Forced : No

Text #2
ID : 5
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 2 h 42 min
Bit rate : 26.8 kb/s
Count of elements : 3298
Stream size : 31.1 MiB (0%)
Language : Hungarian
Default : No
Forced : No

Text #3
ID : 6
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 2 h 42 min
Bit rate : 24.9 kb/s
Count of elements : 3318
Stream size : 28.9 MiB (0%)
Language : Polish
Default : No
Forced : No

Text #4
ID : 7
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 2 h 42 min
Bit rate : 25.1 kb/s
Count of elements : 3294
Stream size : 29.1 MiB (0%)
Language : Romanian
Default : No
Forced : No

Text #5
ID : 8
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 2 h 15 min
Bit rate : 449 b/s
Count of elements : 95
Stream size : 444 KiB (0%)
Language : English
Default : Yes
Forced : Yes

Menu
00:00:00.000 : :Chapter 01
00:07:00.837 : :Chapter 02
00:12:06.142 : :Chapter 03
00:18:16.095 : :Chapter 04
00:27:19.179 : :Chapter 05
00:32:48.592 : :Chapter 06
00:43:55.174 : :Chapter 07
00:57:52.844 : :Chapter 08
01:04:15.602 : :Chapter 09
01:13:15.767 : :Chapter 10
01:22:37.828 : :Chapter 11
01:33:58.383 : :Chapter 12
01:41:17.363 : :Chapter 13
01:52:46.593 : :Chapter 14
01:58:39.779 : :Chapter 15
02:05:43.995 : :Chapter 16
02:14:04.203 : :Chapter 17
02:24:08.641 : :Chapter 18
02:29:19.659 : :Chapter 19
02:37:01.162 : :Chapter 20

So, is there any dev who can provide some insight on this? Any chance the next version of Infuse will address it?