add S32 audio format support; refactor