Apple Player Update Beta Testing - Archive

Thanks for this update! It’s been a much, much better experience and all of the stuttering and weird micro stutters I experienced before are gone. Great work! I noticed two things to report:

1 — VC-1 files seem to glitch, tear, and show pixelation. Probably not a huge deal, since there aren’t that many VC-1 Blu-ray releases;
2 — HDR10 videos look like the black point or gamma is off. It doesn’t look as bad for me as it does on the Samsung mentioned above, but it does look more washed out than the Plex app on my Shield, or Infuse on the same Apple TV. There’s not as much contrast, the blacks seem too high, and I get some banding near black (tested on 2 x LG C3 OLEDs with AppleTV 4K 2022). For what it is worth, I don’t know if this is a new issue as I haven’t really used the AppleTV Plex app for HDR movies in a while.

Great release so far, and thanks for addressing this issue!

This has made a huge difference! This was my experience a couple of days ago when the flag was disabled:

Now when I’m playing the same files the thermal state stays ‘nominal’ after 30 minutes of playback, the box is quite a bit cooler, and no frames are being dropped!
Even more importantly, the dynamic RPUs are seemingly being applied now when playing back these Profile 8 files. That’s great progress! Edit: The tone mapping is absolutely wrong though, very dim highlights and actually looks worse than before, but I think any change here is still a step in the right direction. Edit 2: It’s still fake DV, after all.

Here are two test files. These among others are often my first checks, 1 for picture quality, and 2 can super easily see sound sync. Used mkvtoolnix to mux snippets. Checked them for the same behavior.

I do have to use the offset to sync the audio in place -250ms by my eyes.

Never used this file service, hope this works: Proton Drive

logging(2).zip (1.2 MB)

I can see in logs initializing moltenvk, so I know ive got the right player

2024/03/19 17:47:42.568 (4055663) 🔧 PMKMPVClient.m:537 | [vo/gpu-next/vulkan] v: Initializing GPU context 'moltenvk'

Old Player: Off (moltenVK)
Terrible color banding on both, unwatchable. Choppy transitions with distrotions. Samsung TV still reports HDR.

Old Player: On
Startup is slow. But normal color gradients. Smooth colors. Smooth transitions. Smooth playback. Samsung TV reports HDR.

Infuse:
Fast and normal. Smooth colors. Smooth Transitions. Samsung TV reports HDR10+.

I see something interesting, @Menel. Old Player: Off for this comparison.

With the Apple TV 4K (gen1) set to SDR and Color Range matching enabled, Plex switches the TV into HDR mode and there is bad color banding on the title cards, matching what you show in your screenshots.

With the the Apple TV 4K (gen1) set to Dolby Vision and with Color Range matching disabled, the TV stays in DV mode, and the banding is significantly reduced/eliminated.

(It’s very interesting that Infuse puts the TV into HDR10+. Do you understand why it’s doing that? I would be curious what the Infuse forums say.)

Any chance you can confirm how you are able to tell the Dynamic RPU is been applied?

4K50 HEVC live tv stream unfortunately still starts to stutter after a little while of playback - can bring on the stutter earlier if you sick forward and back a few times.

Most of my other media seems to playback a lot smoother otherwise :+1:t3:

1 Like

It’s because the appletv is applying “fake dv” to the tv which fixes the issue, but the colours are not accurate

It does this becuase infuse is unable to read the DV track properly, but can read the HDR10 track, and puts the tv in that mode if range matching is enabled.

Infuse puts TV into HDR10+ because that’s what the movie/video file is encoded in. There is not DV.

Complete name                            : /home/plex/Videos/fade in color banding-003.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 230 MiB
Duration                                 : 28 s 570 ms
Overall bit rate mode                    : Variable
Overall bit rate                         : 67.5 Mb/s
Movie name                               : 1917
Encoded date                             : UTC 2024-03-19 21:33:10
Writing application                      : mkvmerge v83.0 ('Circle Of Friends') 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                               : SMPTE ST 2094 App 4, Version 1, **HDR10+** Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 28 s 487 ms
Bit rate                                 : 64.7 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
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.325
Stream size                              : 220 MiB (96%)
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        : 168 cd/m2

Tested the same files again with the Metal rendering actually enabled, and this time the situation with the A/V delay is much better. The problem is not completely gone, but now the variance between different files is much smaller. So far the difference between the highest and the lowest delay I’ve seen was about 75ms, so setting the offset somewhere in the middle hopefully will result in an acceptable sync for everything.

That’s exactly what plex is doing. Like when plex reads a profile 7 DV (which literally is not supported by anything apple) and kicks your TV into DV mode. This would mean the colours are not accurate, hence the fake DV term being applied here. You need that setting enabled for accurate colour representation.

If you do not have match dynamic range on, you are using apples DV filter, not the metadata presented by the media file, so it’s “fake dv” and plex is wrongly using the metadata or ignoring it all together and getting the appleTV to do the work.

The only app that’s doing DV properly that isn’t profile 5 is Infuse. Plex can’t even do profile 5 properly, when detected it kicks you into the old player.

If you want to learn about everything DV and apple, infuse forums will teach more then you ever wanted to know.

2 Likes

I wonder how many HDR10 files have non-default static metadata - I know it’s supposed to be derived per-title, but I wonder what’s done in practice.

You can do it yourself like the pros do with programs like DaVinci resolve (Dolby vision metadata too). If you want to dive into things like that, I recommend heading over to the infuse forums.

77" LG OLED CX, Denon AVR-X3700H, 2022 Apple TV 4K, tvOS 17.4, Plex 8.34 (8096). ATV is located in an enclosed cabinet but I have a fan to try to ventilate it; it’s still warm in there. Initial impressions is that the video is slightly “jerky” than before. It’s more smooth if match frame rate is turned on. However, I still have the audio sync issue. The audio sync issue seems to be the same (i.e. no change with the production non-beta app): using 300ms. I briefly tested with a 4K DV/HDR content (100mbit and 25 mbit).

I have submitted the form as well, really hoping that I can be added to beta test the new player. Thank you in advance for your consideration adding me in to the beta.

I noticed that first file site I used… apparently it was one time transfer… so whoever downloaded was the only person. HAHA. Trying something new for hosting those 2 color banding clips, one of which is also good with sound sync watching the foot stomps. I like them so much going to stay in my av test toolkit along with dolby channel read outs and other sound/video tests.
> Proton Drive

I looked at it again now, and it seems like it’s still fake DV, after all. At first it looked like Dolby Vision IQ was working (it uses dynamic metadata and it never worked with fake DV, obviously), and it does look very different now, but it was just a mistaken impression I got as a result of the new renderer messing up the tone mapping in regular DV picture mode.

Pretty sure all DV is Dynamic metadata, DV IQ is just using the ambient light sensor to adjust picture / brightness in addition to the dynamic metadata.

Not quite, it does actually use that DV metadata for Light Sense, that’s why it was always immediately obvious it wasn’t working with fake DV.

Sorry. Nice test file tho.

I’ve created a new sample file that exhibits stuttering for me:

Sample File (Removed since it’s racking up bandwidth costs and has been downloaded)

  • Plex Media Server 1.40.1.8227
  • Plex tvOS Beta
  • I run Plex Media Server through Docker on Unraid: Docker
  • A2843 AppleTV 4k (third generation)
  • AppleTV is hard wired with ethernet to the network (gigabit)
  • The file was played over the local network
  • No soundbar
  • Yamaha TSR 7810 Receiver

Debug stats:

  • Thermal state: nominal