Как я поняд суммируя значения полей unpacker_data.data_offset и unpacker_data.data_size можно получить размер файла .raw. Но для некоторых raw поле unpacker_data.data_size равно 0! Например для Panasonic(.rw2) и Fuji(.raf)! А для некоторых, полученный таким образом, размер немножко не совпадает с реальным! Почему? Может это ошибка в библиотеки? И можно как то узнать размер файла по другим данным объекта LibRaw?
Размер файла можно узнать
Размер файла можно узнать вызовом fstat() или stat() или аналогичным.
data_size нужен (внутри программы) не во всех случаях, например размер данных не нужен для некомпрессированных raw, поэтому в таких случаях data_size и не рассчитывается.
data_offset + data_size будут вообще ни на что не похожи в случае многокадровых RAW (Fuji, файлы с кинокамер)
Спасибо за ответ! Но мне не
Спасибо за ответ! Но мне не помогут средства, определяющие размер файла, открывая файл( Мне надо анализировать поток данных. Неужели никто не может поделиться хоть какой-то спецификацией на raw файлы! Так не охота копаться в исходниках! Там где производитель не сильно отходил от стандарта TIFF попроще! Но например файл .rw2 никак не могу понять( Поделитесь если можете,пожалуйста!
Я не понимаю сути вашего
Я не понимаю сути вашего вопроса. Если вы хотите анализировать RAW-данные, ну так берите LibRaw, она вам собственно данные распакует (а EXIF-поля - ExifTool или libexiv).
Ну или читайте исходники LibRaw/dcraw, там все написано. Пересказывать их своими словами - какое-то глупое занятие.