ПрограммированиеФорумЗвук

Де-факто стандарт декодирования mp3 (2 стр)

Страницы: 1 2
#15
16:15, 17 ноя 2017

monobogdan
> Оно умеет декодированные данные прямо в stdout отдавать?
Вроде умеет. Пользовался этим лет 10 назад, уже не помню точно как.
А под виндой лучше через WinAPI декодировать, сделать отдельную реализацию.

Попытка подключить исходники lame к своему проекту заставила волосы шевелиться. Там такой код, что непонятно как он вообще работает. Тронешь - взорвется. Да еще и глобальное все, подраться может с любым твоим кодом. Ощущение что писал сие какой-то гениальный кодер 60х годов. Писал чисто на гениальности, о технологиях представления не имел.

Прошло более 9 месяцев
#16
1:15, 29 авг 2018

0iStalker
Лучше https://github.com/lieff/minimp3
Здесь больше багов пофиксено и лицензий нормальная.

#17
2:42, 29 авг 2018

9К720
> Неужели дельфи такое говно, что не умеет в сишные вызовы? Да ни в жисть не
> поверю
Всё он умеет, разве только .h файлы сам не парсит.

Zab
> Попытка подключить исходники lame к своему проекту заставила волосы шевелиться.
А он разве отдельной dll-кой не подключается? Тогда, действительно, была бы та ещё коза.

#18
3:41, 29 авг 2018

Delfigamer
> А он разве отдельной dll-кой не подключается? Тогда, действительно, была бы та ещё коза.
Какая еще dll? Он юниксовый. На си без плюсов написанный. Причем, писал его явно не сишный программист, а какой-то фортрановский. Код нечитаемый.
Несколько сотен глобальных переменных без всяких префиксов подерутся с любыми вашими данными. Если же надо несколько потоков чтобы декодировали - вообще облом, он на это не рассчитан.
В общем, оно каким-то чудом работает, изолировать его в отдельном процессе (не потоке) просто необходимо. Но под виндой это затратно.

#19
5:02, 29 авг 2018

Zab
> Какая еще dll? Он юниксовый.
Ну shared object, какая разница, ты как будто не понял, о чём речь.

#20
5:04, 29 авг 2018

Zab

Изображение

Не потрудишься рассказать, что это такое у меня выделено?

#21
5:08, 29 авг 2018

Zab

/*
 * OPTIONAL:
 * Set printf like error/debug/message reporting functions.
 * The second argument has to be a pointer to a function which looks like
 *   void my_debugf(const char *format, va_list ap)
 *   {
 *       (void) vfprintf(stdout, format, ap);
 *   }
 * If you use NULL as the value of the pointer in the set function, the
 * lame buildin function will be used (prints to stderr).
 * To quiet any output you have to replace the body of the example function
 * with just "return;" and use it in the set function.
 */
int CDECL lame_set_errorf(lame_global_flags *, lame_report_function);
int CDECL lame_set_debugf(lame_global_flags *, lame_report_function);
int CDECL lame_set_msgf  (lame_global_flags *, lame_report_function);

Не потрудишься рассказать, что это за lame_global_flags *, который передаётся в каждую функцию первым параметром?

#22
5:30, 29 авг 2018

Delfigamer
Думаешь, я вставлял lame в свои исходники? Посмотрел на него и не стал такую бомбу закладывать. Через командную строку использовал, когда нужен был. Так что, не знаю что что это за параметры. Могу гадать начать, но гадать ты и без меня можешь.

Поищи лучше что-то более профессионально написанное. Я тогда давно не нашел, но может плохо искал, а может оно сейчас появилось, тогда не было.

#23
5:33, 29 авг 2018

Поправка... Я пробовал вставить lame в свой проект, но сразу же понял, что придется переделывать все остальное, чтобы оно с лэймом совместилось (адаптировать лэйм - вообще без вариантов). Как-то не захотелось все ради этого уродовать. Да и не вышло бы, у меня ж сервер был, там параллельность сплошная, а лэйм не параллелен ни разу.

#24
6:42, 29 авг 2018

Zab
Можно конкретный пример хотя бы одной глобальной переменной? Чтобы уж точно знать, что бомба и правда есть, а не приснилась Забу в ночном кошмаре.
И было бы неплохо приложить версию - может, ты просто рассказываешь нам про что-то историческое.

#25
8:41, 29 авг 2018

Delfigamer
Думаешь, я архивы столько храню? А это я вообще с работы не уносил.
Дело происходило примерно в 2007м. Может lame с тех пор и изменился, но не верю. Мог бы измениться - он бы уже тогда другим был.
А переменные глобальные там были все. Похоже, программисты другого способа хранить данные не знали, что нормально для математиков, выросших на фортране.

#26
17:21, 29 авг 2018

Zab
> Дело происходило примерно в 2007м. Может lame с тех пор и изменился, но не
> верю. Мог бы измениться - он бы уже тогда другим был.

NameModified
📂3.1002017-10-13
📂3.992012-02-28
📂3.98.42010-04-14
📂3.98.22008-09-22
📂3.982008-07-03

Страницы: 1 2
ПрограммированиеФорумЗвук

Тема в архиве.