Никогда не слышал о OSS, но попробую посоветовать.
S>Прблема в том, что когда я пытаюсь использоват 16-битный формат (AFMT_S16_LE/AFMT_S16_NE/AFMT_S16_BE), звук записывается некорректно — фрагменты аудио пропадают/пропускаются. Но если поставить 8-битный формат (AFMT_U8), то всё работает без проблем — записывается отлично.
Попробую предположить что данные не пропадают а скорее всего вы перезаписываете новые поверх старых т.е. что то не так с вычислением значением offset.
Как вариант, посмотрите библиотеку
portaudio думаю там есть и это.