Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Де-факто стандарт декодирования mp3 (2 стр)

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

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

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

_NetSurfer_Постоялецwww29 авг. 20181:15#16
0iStalker
Лучше https://github.com/lieff/minimp3
Здесь больше багов пофиксено и лицензий нормальная.
DelfigamerПостоялецwww29 авг. 20182:42#17
9К720
> Неужели дельфи такое говно, что не умеет в сишные вызовы? Да ни в жисть не
> поверю
Всё он умеет, разве только .h файлы сам не парсит.

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

ZabПостоялецwww29 авг. 20183:41#18
Delfigamer
> А он разве отдельной dll-кой не подключается? Тогда, действительно, была бы та ещё коза.
Какая еще dll? Он юниксовый. На си без плюсов написанный. Причем, писал его явно не сишный программист, а какой-то фортрановский. Код нечитаемый.
Несколько сотен глобальных переменных без всяких префиксов подерутся с любыми вашими данными. Если же надо несколько потоков чтобы декодировали - вообще облом, он на это не рассчитан.
В общем, оно каким-то чудом работает, изолировать его в отдельном процессе (не потоке) просто необходимо. Но под виндой это затратно.
DelfigamerПостоялецwww29 авг. 20185:02#19
Zab
> Какая еще dll? Он юниксовый.
Ну shared object, какая разница, ты как будто не понял, о чём речь.
DelfigamerПостоялецwww29 авг. 20185:04#20
Zab
Изображение

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

Правка: 29 авг. 2018 5:04

DelfigamerПостоялецwww29 авг. 20185:08#21
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 *, который передаётся в каждую функцию первым параметром?
ZabПостоялецwww29 авг. 20185:30#22
Delfigamer
Думаешь, я вставлял lame в свои исходники? Посмотрел на него и не стал такую бомбу закладывать. Через командную строку использовал, когда нужен был. Так что, не знаю что что это за параметры. Могу гадать начать, но гадать ты и без меня можешь.

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

ZabПостоялецwww29 авг. 20185:33#23
Поправка... Я пробовал вставить lame в свой проект, но сразу же понял, что придется переделывать все остальное, чтобы оно с лэймом совместилось (адаптировать лэйм - вообще без вариантов). Как-то не захотелось все ради этого уродовать. Да и не вышло бы, у меня ж сервер был, там параллельность сплошная, а лэйм не параллелен ни разу.
DelfigamerПостоялецwww29 авг. 20186:42#24
Zab
Можно конкретный пример хотя бы одной глобальной переменной? Чтобы уж точно знать, что бомба и правда есть, а не приснилась Забу в ночном кошмаре.
И было бы неплохо приложить версию - может, ты просто рассказываешь нам про что-то историческое.
ZabПостоялецwww29 авг. 20188:41#25
Delfigamer
Думаешь, я архивы столько храню? А это я вообще с работы не уносил.
Дело происходило примерно в 2007м. Может lame с тех пор и изменился, но не верю. Мог бы измениться - он бы уже тогда другим был.
А переменные глобальные там были все. Похоже, программисты другого способа хранить данные не знали, что нормально для математиков, выросших на фортране.

Правка: 29 авг. 2018 8:42

DelfigamerПостоялецwww29 авг. 201817:21#26
Zab
> Дело происходило примерно в 2007м. Может lame с тех пор и изменился, но не
> верю. Мог бы измениться - он бы уже тогда другим был.

Правка: 29 авг. 2018 17:21

Страницы: 1 2

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

2001—2018 © GameDev.ru — Разработка игр