pngfy. Похоже, это что-то для превращения текст в PNG. Нет
комментариев и не написано, что код делает. Чем это лучше
натравливания простого base64 на мой tits.png?
Есть ещё формат под названием SNG — сериализованный PNG как бы.
При попытке использования программа появилась ошибка glibc (double
free or corruption) и программа вылетела. По-моему, это что-то в
pngrw.c:92 — там все ресурсы правильно освобождаются?
Я открыл Makefile.
> C = cc
А почему не $(CC)? А зачем вообще это определение?
> LDFLAGS := -lcrypto -lpng
LDFLAGS не для этого.
Представь себе: юзер указывает свои LDFLAGS и твоя программа просто не
соберётся. Говорю это потому, что для включения в Portage, например,
твой Makefile пришлось бы патчить.
> $(C) $(OBJECTS) -o $@ $(CFLAGS) $(LDFLAGS)
vthumbs. Прикольно, быстро. Обязательно ли это было писать на C?
Основную работу в итоге делает запускаемый в подпроцессе mplayer.
> #define OUTPUT_DIR "/tmp/videopreview_temp"
Сложно изменить шаблон выводимой информации. Я бы написал такую
программу на Python + PIL.
Для видео, хранимого в матрёшке и Ogg, vthumbs пишет 0.00 kb/sec —
если эта информация недоступна, то лучше вообще печатать не нули, а
что-то менее запутывающее. Для матрёшки размер тоже пишет 0b. Иногда
вообще пипец какой-то пишет во всех полях
(http://omploader.org/vMjR2aA).
Программа что-то выводит даже без -v.
vthumb.c:258-346 — ШТОЭТААА.
vthumb.c:383, :413 — длинно.
А так вообще пишут?
> char *fname_font="/usr/share/fonts/corefonts/trebuc.ttf";
Прямо у всех установлен мелкомягкий Требуше. Мог бы выбрать какой-то
более распространённый шрифт, как-то находить пригодный шрифт
автоматически (потому что если этого шрифта нет и в опциях ничего не
указано, картинка пустая остаётся — надо как-то сигнализировать об
этом).
>pngfy. Похоже, это что-то для превращения текст в PNG
нет. для перевода в пнг любых файлов. и вообще-то там это написано.
с мейкфайлами у меня пока туго, исправлю.
>При попытке использования программа появилась ошибка glibc (double
free or corruption) и программа вылетела. По-моему, это что-то в
pngrw.c:92 — там все ресурсы правильно освобождаются?
да. такое возникает с некоторыми версиями libpng
>vthumbs. Прикольно, быстро. Обязательно ли это было писать на C?
на остальном медленнее
>А так вообще пишут?
почему нет?
> anime-union
таки что вы имеете против?
У тебя rgbdata размера len+hlen+padding, а итерируешь на 295 строке ты его до len+hlen+1+padding -> выход за предел массива. Дальше читать не стал - явно у тебя косяк, а не в libpng.
Код твой читать не возможно. Выделяй операторы пробелами, выделяй логические блоки и циклы пустыми строками.
> с мейкфайлами у меня пока туго, исправлю.
Makefile'ы ручками пишут очень редко, только если проект очень специфичный. В 90% случаев следует пользовать autotools (autoconf, automake)
>>а итерируешь на 295 строке ты его до len+hlen+1+padding
> вообще-то нет
> i<len+hlen+1+padding
Здесь, я полагаю, следует напомнить о специфике массивов в C, о начале индексации элементов с нуля, ну и о том, что char s[5]; - это массив из 5ти элементов s[0], s[1], s[2], s[3], s[4]. s[5] уже не входит в определенную выше область памяти.
> А что оно уже на венде работает без cygwin или mingw?
Вот потому и парадокс. В их мануале же про переносимость в каждой строке написано. Правда, там больше речь про переносимость между музейными версиями sh и багами компиляторов :)
С другой стороны, конкретно винду вроде бы никто и не обещал, оно для UNIX-like...
Спасибо, будем изучать. А то что-то после знакомства с документацией autotools у меня напрочь отпало желание связываться с системами сборки. А надо бы хоть что-то уметь.