On my Pi with a Digi+ I/O hat, I've written a program which simply loops capture to playback at 48k. (The intention is to do more than that of course, but for troubleshooting I've turned off everything else.)
When I feed the I/O's rx with a signal from a desktop PC, it works perfectly.
When I feed it with a signal from an HDMI->toslink audio extraction box (connected to a Playstation 4 Slim), the captured audio frequently stutters and crackles.
(I'm reasonably certain the issue is on the capture side, because my program can also attempt to decode DTS- and again, this works with the PC, but frequently shows a corrupted bitstream with the PS4+extractor. I only mention this to justify why it seems to be a capture issue- the issue occurs just the same with PCM.)
When I feed the PS4+extractor's signal directly to a DAC, it works with no issues at all.
I conclude that either...
1) The signal from the extractor is out-of-spec in some subtle way, which my DAC tolerates but the Digi i/o does not
2) The signal is in-spec but the i/o still doesn't like it for some reason
3) I'm using incorrect capture settings, which happen to work with the PC's signal but not the extractor's.
Unfortunately I have no other means to analyse the signal. The audio sounds correct when it works for long enough to listen to it (correct speed etc). I've tried different buffer lengths, artificial CPU loads, different cables, etc- sometimes I seem to notice a difference, but I'm fairly sure it's just luck/placebo.
I realise no-one is going to be able to answer this off the top of their head, and there's a good chance the I/O is doing nothing wrong- but any thoughts or suggestions would be greatly appreciated!