Пару слов про ALAC или прошлогодний подарок от Apple
В конце октября прошлого года Apple открыла исходники ALAC кодера и декодера, чем однозначно порадовала общественность.
Впервые этот кодек появился в 2004 году в пакете iTunes 4.5. И вот, спустя 7 лет, Apple пошла на такой шаг: опубликовала иходные коды проекта под Apache License 2.0. По сути ALAC мало чем отличается от FLAC и прочих кодеков без потерь. Имеет сравнимую эффективность и скорость.
Я решил попробовать собрать этот кодек у себя на Windows 7. Все оказалось очень просто (спасибо на этом Apple):
- Делаем чекаут из репозитория svn checkout http://svn.macosforge.org/repository/alac/trunk ALAC
- Открываем из папки convert-utility солюшен ALACconvert.sln (я открывал в VS2010).
- Билдим.
И вот, мы имеем на руках уже готовый исполняемый файл. К сожалению, сборка конфигурации Release не оказалась столь радужной и компилятор выдавал ошибку:
error D8045: cannot compile C file '..\codec\ag_dec.c' with the /clr option
На самом деле, тут можно кинуть камень в огород Apple. Они совершенно никак не озаботились настройкой конфигурации Release. Я "тряхнул стариной" (будучи в далеком прошлом C++ девелопером на VS): скопировал конфигурацию из Debug и руками выставил все необходимые оптимизации. Таким образом, для желающих я выкладываю свою сборку кодека ALAC от Apple. Ссылку вы можете найти в конце статьи.
Официальный фронт-енд работает элементарно и никаких ключей не принимает (судя по документации):
F:\vanac>alacConvert.exe a.wav a.caf
Input file: a.wav
Output file: a.caf
F:\vanac>alacConvert.exe a.caf b.wav
Input file: a.caf
Output file: b.wav
Итоговый файл воспроизвелся нормально, что показывает работоспособность фронт-енда.
Что ж, почаще бы нас радовали подобные гиганты открытием исходных кодов своих закрытых проектов.