LINUX.ORG.RU

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)


Зачем эта строка?

Sphinx ★★☆☆
()

сайт очень странно отображается

stave ★★★★★
()

vthumbs. Прикольно, быстро. Обязательно ли это было писать на C?
Основную работу в итоге делает запускаемый в подпроцессе mplayer.

> #define OUTPUT_DIR "/tmp/videopreview_temp"


mkdtemp(3) ?

> sprintf(cmd,"mplayer \"%s\" -nosound -vo jpeg:outdir=%s -ss %s -frames 1 2>/dev/null >/dev/null",fname,OUTPUT_DIR,stime);

> system(cmd);


Сложно изменить шаблон выводимой информации. Я бы написал такую
программу на 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";


Прямо у всех установлен мелкомягкий Требуше. Мог бы выбрать какой-то
более распространённый шрифт, как-то находить пригодный шрифт
автоматически (потому что если этого шрифта нет и в опциях ничего не
указано, картинка пустая остаётся — надо как-то сигнализировать об
этом).

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

>pngfy. Похоже, это что-то для превращения текст в PNG
нет. для перевода в пнг любых файлов. и вообще-то там это написано.

с мейкфайлами у меня пока туго, исправлю.

>При попытке использования программа появилась ошибка glibc (double

free or corruption) и программа вылетела. По-моему, это что-то в
pngrw.c:92 — там все ресурсы правильно освобождаются?

да. такое возникает с некоторыми версиями libpng

>vthumbs. Прикольно, быстро. Обязательно ли это было писать на C?

на остальном медленнее

>А так вообще пишут?

почему нет?

> anime-union

таки что вы имеете против?

iSage ★★★★
() автор топика
Ответ на: комментарий от iSage

> да. такое возникает с некоторыми версиями libpng

Ага, конечно, все пидарасы один я дартаньян. Я уверен, что проблема таки у тебя, а не в libpng. Смотри valgrind'ом.

> на остальном медленнее

если у тебя всю работу выполняет mplayer, то на питоне будет также как на и си по скорости

Reset ★★★★★
()
Ответ на: комментарий от Reset

>Смотри valgrind'ом.
вы не поверите...

>если у тебя всю работу выполняет mplayer

не читал, но осуждаю, да?

iSage ★★★★
() автор топика
Ответ на: комментарий от iSage

> такое возникает с некоторыми версиями libpng

ПИШИ ПАТЧ

@

ШЛИ АПСТРИМ

Sphinx ★★☆☆
()
Ответ на: комментарий от iSage

У тебя rgbdata размера len+hlen+padding, а итерируешь на 295 строке ты его до len+hlen+1+padding -> выход за предел массива. Дальше читать не стал - явно у тебя косяк, а не в libpng.

Код твой читать не возможно. Выделяй операторы пробелами, выделяй логические блоки и циклы пустыми строками.

Reset ★★★★★
()
Ответ на: комментарий от iSage

> с мейкфайлами у меня пока туго, исправлю.
Makefile'ы ручками пишут очень редко, только если проект очень специфичный. В 90% случаев следует пользовать autotools (autoconf, automake)

UVV ★★★★★
()
Ответ на: комментарий от iSage

>>а итерируешь на 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] уже не входит в определенную выше область памяти.

Ну и присоединюсь к комментарию про ужасный код.

ksv
()
Ответ на: комментарий от iSage

ты лучше не спорь, а приложи голову и valgrind к своей поделке. проблема у тебя

Reset ★★★★★
()
Ответ на: комментарий от ksv

да да, плохо отвечать поутру =_=
fixed

iSage ★★★★
() автор топика
Ответ на: комментарий от Reset

> autotools лучше не использовать. слишком монструозная вещь да еще и _не кроссплатформенная_

Парадокс, однако :/

const86 ★★★★★
()
Ответ на: комментарий от Reset

> autotools лучше не использовать.
Зависит от проекта.

UVV ★★★★★
()
Ответ на: комментарий от Reset

> А что оно уже на венде работает без cygwin или mingw?

Вот потому и парадокс. В их мануале же про переносимость в каждой строке написано. Правда, там больше речь про переносимость между музейными версиями sh и багами компиляторов :)

С другой стороны, конкретно винду вроде бы никто и не обещал, оно для UNIX-like...

const86 ★★★★★
()
Ответ на: комментарий от const86

Ну и нах оно такое нужно? Мало того что монстр так еще и нигде кроме unix-like не работает.

Reset ★★★★★
()
Ответ на: комментарий от UVV

В данном случае мейкфайлы вообще почти не нужны, потому что его
программы собираются стандартными правилами, которые описывать не нужно.

Sphinx ★★☆☆
()
Ответ на: комментарий от Reset

>autotools лучше не использовать. слишком монструозная вещь да еще и не кроссплатформенная

А какие есть альтернативы? cmake? scons? Ещё что-то? Не трололо ради спрашиваю, просто интересно, чем люди пользуются.

Laz ★★★★★
()
Ответ на: комментарий от Sphinx

ну вообще да, но в идеале неплохо бы хотя б ./configure с проверкой на доступность необходимых либ.

iSage ★★★★
() автор топика
Ответ на: комментарий от Laz

cmake

Понятный и простой синтаксис, кроссплатформенность, возможность осуществлять все те же проверки что и делает autotools, генерация файлов под студию.

Reset ★★★★★
()
Ответ на: комментарий от Reset

А ещё он умеет делать рпм, деб, тгз и прочую ересь. (:

l5k
()
Ответ на: комментарий от Reset

>cmake

Спасибо, будем изучать. А то что-то после знакомства с документацией autotools у меня напрочь отпало желание связываться с системами сборки. А надо бы хоть что-то уметь.

Laz ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.