how is this supposed to work? GetDelay accumulates buffers in stream, engine, and audio device. Flush is called on the stream and does not flush the hw device which may not be possible.
With this line m_pts would increase with each call to CDVDAudio::Flush()