I was having this problem as well, it persisted from the 1.2.x and 1.3.x versions to the new 2.1.1. My resolve, after hours of painstaking troubleshooting, including new video cards, cables, reinstalling Windows 10 pro, was to Sync display to content or I think it’s called Allow Display mode switching.
I also found that it may have been partially due to a HDMI cable that wasn’t apparently the 18Gbps spec that the rest of my system was (I pass my audio through to an AVR). I found that by using the ‘i’ key and seeing that while I had synced the display to content, that the GPU and Display both said something like 23…976fps (60),which indicated to me that something was off. I pulled a cable from my 4K panasonic player in place of the one from my HTPC to the AVR and that seemed to display correctly, everything saying 23.976 and no (60). Even PAL content (Planet Earth II) would display correctly at 25fps and no more judder on my 4K tv while it dropped frames or whatever it does to keep the 23.976 fps.
Considering the OP is using S/PDIF I’m not sure how the cable part pertains to him.
When passthrough audio is used the refresh rates matter greatly:
23.976fps content needs to be displayed at 23.976Hz or 59.94Hz and not 24Hz or 60Hz. Otherwise you will see audio lip sync drift, as every 41.7s or 16.7s respectively, frame duplication occurs.
24fps content (very little content exists with this framerate) needs to be displayed at 24Hz or 60Hz and not 23.976Hz or 59.94Hz. Otherwise you will see audio lip sync drift, as every 41.7s or 16.7s respectively, frame drops occurs.
29.97p/59.94i/59.94p content needs to be displayed at 59.94Hz and not 60Hz. Otherwise you will see audio lip sync drift, as every 16.7s, frame duplication occurs
30fps and 60fps content needs to be displayed at 60Hz and not 59.94Hz. Otherwise you will see audio lip sync drift, as every 16.7s, frame drops occurs.
EDIT per @Warmongerx suggestion:
PMP has two mechanisms to counter this issue.
You can enable
Allow Display Mode Switching under
Settings | Video to have it change the refresh rate of the display output to match that of the content. This is the best way. However it is not always possible since either the video card or the display does not have 23.976 or 59.94Hz as an option. This is seen on Macs and other computing oriented displays.
The other method is to use
Sync Mode: Display (resample audio) also under
Settings | Video. This does come with some caveats:
- You can no longer effectively passthrough audio. Audio has to be decoded in order to be resampled to match the display refresh.
- Dolby TrueHD audio tracks decoded by PMP instead of passthrough will retain 100% audio fidelity. With DTS-HD Master Audio, PMP will only decode the DTS lossy core up to 5.1 channels. It will no longer be lossless audio.
- Dolby Atmos and DTS:X sound positional metadata will be lost when PMP decodes the audio.