The bug that hid it for months, if you write audio code for Android
Android's AudioTrack.Builder.build() quietly adds FLAG_DEEP_BUFFER when the requested buffer is around 100 ms or larger, and Qualcomm's policy manager only routes to the direct_pcm profile when the flags are NONE. So asking for a comfortable buffer silently opts you out of direct output. The custom sink asks for a buffer under that threshold on purpose.
It then clamped that small buffer with max(getAudioTrackMinBufferSize(), threshold). On this device the platform minimum is about double the threshold, so the max always won, every track was deep-buffered onto a 192 kHz mixer, and the app reported bit-perfect the whole time. Fixed 2026-09-17. If you are writing a direct output sink for any Android device, that is the trap.







