Вы уверены, что получаете действительные данные PCM? Какой тип ПКМ вы получаете?
Основной PCM используется на аудио CD и в файлах WAV, скопированных с CD; это должно быть играбельно для всего. В частности, это 16-битный (на выборку), 44,1 кГц (частота дискретизации), стерео (2 канала). Воспроизвести этот тип PCM так же просто, как cat file.pcm > /dev/audio
( /dev/dsp
или другое подходящее аудиоустройство).
Libmad домашнюю страницу указывает на то, что libmad по умолчанию может выводить 24-битный PCM, и ваше программное обеспечение плеера может смущать его, если ожидает стандартный 16-битный PCM. Если вы еще этого не сделали, проверьте использование libmad вашей программы по сравнению с madlld
(низкоуровневое руководство по API libmad), чтобы убедиться, что вы получаете правильный вывод из библиотеки.
Так как данные PCM не включают заголовки, как WAV-файл, вам может потребоваться указать формат PCM для программы, чтобы загрузить файл правильно. Audacity должен уметь обрабатывать любой стандартный формат PCM.
Также возможно, что вы получаете неверный вывод PCM из- libmad
за ошибки в библиотеке или из-за неправильного использования библиотеки вашим кодом.