Capture One

Q: low level zip access

Преамбула:

Capture One умеет (не знаю когда, имел дело только с результатом) писать такие вот .eip-файлы.

Каждый такой .eip - это нежатый ZIP-файл (от ZIP - только контейнер) в котором лежит файлик 0.RAW (вместо RAW - реальное расширение, .IIQ или .NEF или еще чего) и немножко служебных файлов самой C1.

FastRawViewer и RawDigger ходят в эти файлы с помощью libarchive: archive_read_open_fd()/archive_read_next_header(), находят 0.EXT, аллоцируют буфер и читают туда через archive_read_data().

Когда мы затем читаем эти RAW-файлы целиком - ну тратится лишней памяти (на размер RAW), но пережить можно. Однако если из файла читается только превьюшка - аллоцировать буфер на целый файл и читать этот целый файл - ужасно обидно.

Соответственно, вопрос:

А не встречал ли кто 'low level' библиотеки для доступа к ZIP-файлам? Ну то есть мне надо считать оглавление и смещения/размеры данных в файле (и, для гарантии, вид сжатия), а дальше - для нежатых ZIP-ов я бы сделал себе mmap() нужного куска и не читал бы с диска лишнего.

Про C1

Я обещал про C1 отдельно.

Так вот, получив пачку странных DNG, я захотел их скормить какой-то не Адобовской программе. RPP все съел на ура, но под рукой была еще Capture One. Вот такая:

Берем пачку файлов, Fuji S3Pro, F550EXR, F800EXR. Попарно, RAF и DNG. Для понимания: первую камеру C1 поддерживает, а две вторые - нет. Вот они в каталоге (кликабельно):

...
Subscribe to Capture One