Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср ноя 22, 2017 9:27 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 27 сообщений ]  На страницу Пред. 1 2
Автор Сообщение
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Чт окт 27, 2016 3:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
rev 6617
Сделал в папке с fkfar папку для zlib с примером. Думаю что в дальнейшем нужно будет объединить библиотеки archiver и zlib, но пока что сделано отдельной библиотекой.
Распаковка происходит правильно, но есть 2 проблемы, из-за которых я не спешу объединять библиотеки:
1) В crc почему-то пишутся 0, посмотрел в исходном коде там в большинстве случаев при вызове функции crc вместо буфера передается Z_NULL. Не пойму почему не передается нормальный указатель на буфер, может я что-то не так использую.
2) Размер распакованных данных я беру из переменной.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Чт окт 27, 2016 4:43 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4226
Как насчет сделать программу-распаковщик zip архивов? Вроде
kunzip "/sys/arc.zip" "/tmp0/1/"
Рисует только окно с процессом распаковки: имя распаковуемого файла, полоса прогресса.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Вт ноя 01, 2016 4:17 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
For network applications, it would be useful to have deflate function which works on streams.
I have tried hacking the archiver library to do this in the past but could not master.
(Applications/protocols which come to mind: HTTP, VNC, SSH,...)

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Вт ноя 01, 2016 6:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Leency писал(а):
Как насчет сделать программу-распаковщик zip архивов? Вроде
kunzip "/sys/arc.zip" "/tmp0/1/"
Рисует только окно с процессом распаковки: имя распаковуемого файла, полоса прогресса.

Идея хорошая но думаю что с полосой прогресса могут быть проблемы. Дело в том что распаковка архива идет за один вызов функции deflate_unpack потому полоса прогресса будет или пустой или сразу полной.

hidnplayr писал(а):
For network applications, it would be useful to have deflate function which works on streams. I have tried hacking the archiver library to do this in the past but could not master.

Apparently the compression is working properly. But I would like to further develop neotroye function of the library. For example, in the source code 'longest_match' function was 2 version. If you set the FASTEST == 0 and make the code of the function for this parameter, it will be possible to establish different degrees of compression. I think that even though it is already possible to use the library.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Вт ноя 01, 2016 8:09 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4226
Полоса может отображать количество распакованных файлов относительно всех файлов в архиве, ех. 10/134.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Ср ноя 02, 2016 4:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Обнаружил что функция deflate (из zlib.obj) почему-то не работает с параметром Z_NO_FLUSH. Потому если кто захочет использовать ее, то пусть всегда ставит Z_FINISH, до выяснения причины почему не работает. Это может немного ухудшить качество сжатия, но сжимать всеравно должно.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Пт ноя 11, 2016 8:42 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1080
IgorA, а ты zlib "с нуля" что ли переписываешь на ассемблере?
Есть ведь zlib уже http://websvn.kolibrios.org/listing.php ... 86eb580ba9


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Ср дек 07, 2016 3:37 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
0CodErr писал(а):
IgorA, а ты zlib "с нуля" что ли переписываешь на ассемблере?
Есть ведь zlib уже http://websvn.kolibrios.org/listing.php ... 86eb580ba9

Оно же там на C++, а мне очень нужно было на asm, потому как libimg экспортировала функции из archiver-а который также был на asm.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Пт дек 16, 2016 12:52 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
rev 6799
Удалось сделать более сложный вариант функции longest_match, который дает большее сжатие. Теперь png файл с пустым рабочим столом занимает не 269 кб а 80 кб.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Пт дек 16, 2016 5:35 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4226
IgorA
Круто! Paint открывает норм.
Но ни XnView, ни Chome не хочет открывать созданный файл http://prntscr.com/dk6t08

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Пт дек 16, 2016 6:19 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Leency писал(а):
Но ни XnView, ни Chome не хочет открывать созданный файл http://prntscr.com/dk6t08

Думаю что может быть одно из 2-х:
1) Либо не правильно считаются контрольные суммы crc, adler. Потому как Колибриевская функция deflate_unpack по моим опытам вообще на crc не реагирует и распаковывает всегда. Возможно что Виндосовские программы увидев не правильную контрольную сумму даже не берутся за распаковку данных и выкидывают ошибку.
2) Возможно что данные в IDAT нужно паковать по строкам изображения а не кусками по 16 кб как у меня в libimg.
Leency писал(а):
Paint открывает норм.

Это уже хорошо, значит можно в случае чего смотреть и пересохранять через Paint и потери данных не будет.
А пока будет над чем еще дальше подумать.


Вернуться к началу
 Заголовок сообщения: Re: Использование archiver.obj
СообщениеДобавлено: Сб мар 04, 2017 10:59 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн окт 27, 2008 10:10 pm
Сообщения: 750
Leency писал(а):
Но ни XnView, ни Chome не хочет открывать созданный файл http://prntscr.com/dk6t08

Пока все никак не могу найти причину такого поведения. Уже так много ошибок исправил но все мимо.
Вероятнее всего что где-то не правильно работает на стороне libimg, потому как в archiver (оно же zlib) в последнее время много чего было исправлено.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 27 сообщений ]  На страницу Пред. 1 2

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB