HDAUniversal v0.1.353 — PCM Test Results
I individually tested all 12 PCM formats currently available on the analog output.
Formats tested
Sample rate
Bit depths
44.1 kHz
16, 20 and 24-bit
48 kHz
16, 20 and 24-bit
96 kHz
16, 20 and 24-bit
192 kHz
16, 20 and 24-bit
32 kHz is not available as an output format on this device, so I did not test it.
32-bit is also not exposed as a native physical bit depth on this output.
Results
All 12 selected formats were accepted by IOAudioFamily and HDAUniversal:
performFormatChange: 12 occurrences
setFormat returned 0x0: 12 occurrences
setFormat failures: 0
The 20-bit formats were correctly transported inside a 32-bit container:
fBitDepth = 20
fBitWidth = 32
The 24-bit formats also correctly used a 32-bit container:
fBitDepth = 24
fBitWidth = 32
Physical readback proof
The final selected format was 192 kHz, 24-bit, stereo.
The physical stream readback confirmed:
rate=192000
depth=24
width=32
fmt=0x1831
fmtok=1
swrun=1
hwrun=1
pos=!0
cblok=1
bdlok=1
The codec converter confirmed the same format:
stream=0x10
fmt=0x1831
path=0x14>0x0c>0x02
pinctl=0x40
eapd=0x02
complete=1
Real non-zero PCM data was also captured during playback:
nz=7288
peak=35750656
rate=192000
depth=24
fmt=0x1831
Stability results
The Playback Blackbox reported:
playback anomaly: 0
repeated-window: 0
stagnant-position: 0
timeout: 0
underrun: 0
overrun: 0
xrun: 0
clip-guard: 0
clip-normalize: 0
select failed: 0
Conclusion
The complete native output matrix of 44.1, 48, 96 and 192 kHz at 16, 20 and 24-bit passed the format programming, physical readback, DMA and playback stability tests.
No driver, IOAudioFamily, DMA, timeout, underrun, overrun or xrun failures were recorded.