mpg321

mpg321 - програвач MP3 файлів для операційних систем Linux, BSD та інших Unix-like операційних систем - вільний клон програми mpg123. Інтерфейс був скопійований з mpg123, а вихідний код mpg123 не використовувався. mpg321 розроблявся для використання в першу чергу з графічними фронтенді, такими як gqmpeg, проте їм можна користуватися і з командного рядка. На відміну від mpg123, він без перекомпіляції підтримує висновок звуку через ESD і ALSA, а для декодування MP3 використовує тільки цілочисельну арифметику.


1. Історія

1.1. Плагін для FreeAmp

В 1999 році Джо Дрю створив програму mpg321. Це був скрипт-обгортка для фронтенда до mpg123 програвача FreeAmp. Скрипт поширювався в складі Дебіановского пакета FreeAmp, і протягом декількох версій називався mpg123.freeamp. (Зараз цей скрипт не входить в пакет.)

mpg123.freeamp працював не дуже добре, і був обмежений реалізацією фронтенда до mpg123 під FreeAmp, але він виконував свою задачу: грав музику з командного рядка без необхідності інсталювати mpg123.


1.2. Самостійний додаток

На початку 2001, творець проекту вирішив, що потрібно повноцінна відкрита альтернатива закритому програвачу mpg123. Після невеликого дослідження, для декодування mp3 в додатку було вирішено використовувати бібліотеку SMPEG, написану Loki Software. Так з'явилася перша версія.

Однак SMPEG для виведення звуку потрібно бібліотека SDL яка в свою чергу, тягне за собою безліч бібліотек. Дрю розумів, що така кількість залежностей є зайвим і вирішив, що вимагаються зміни. Пізніше в 2001 він почав повністю переписувати додаток. Замість бібліотеки SMPEG нова програма використовувала для декодування MP3 бібліотеку Роба Леслі MPEG Audio Decoder (MAD). MAD була обрана за високу якість декодування, а також тому що при декодуванні вона використовує виключно цілочисельні арифметичні інструкції оперуючи з фіксованою комою. Для виведення звуку, Дрю переключився на бібліотеку libao проекту Ogg Vorbis (Xiphophorous).