Техническая поддержка LibRaw

Все вопросы по публичным версиям LibRaw: не собирается, не работает, не нравится API

Принципы ведения версий

Разработка всегда или почти всегда будет вестись параллельно в двух ветках

  • Стабильная версия
    • Тестируется перед выходом на большом объеме данных (в случаях, когда это возможно и разумно - на совпадение с референсной имплементацией в лице dcraw)
    • После выпуска версии - API этой ветки фиксируется, насколько это возможно
    • Новая функциональность не добавляется (исключение: функциональность была объявлена при стабилизации ветки, но не работала)
  • Девелоперская версия или даже версии

LIBRAW_IO_ERROR в скомпилированной версии

Добрый день

Скачал скомпилированную версию 0.13.6. Подключаю к Qt-based проекту в VS2008. lib подключил, хедеры и dllку переписал.

Простейший проверочный код:

#include "include/libraw.h"
...
LibRaw iProcessor;
char * path = "raw.NEF";
int code = iProcessor.open_file(path);

Компилируется нормально, запускается, выполняется, но в code возвращает LIBRAW_IO_ERROR.

Путь пробовал и абсолютный, и относительный, равку подсовывать другую пробовал - и не одну, и не от одной камеры. Результат прежний.

ошибка на этапе сборки

Добрый день

Собираю LuminanceHDR из git - make ругается, судя по всему, на lcms

/usr/local/lib/libraw_r.a(lib_libraw_r_a-dcraw_fileio.o): In function `LibRaw::apply_profile(char const*, char const*)':
/home/sasha/Install/LibRaw/LibRaw-0.12.3/internal/dcraw_fileio.cpp:167: undefined reference to `cmsOpenProfileFromFile'
/home/sasha/Install/LibRaw/LibRaw-0.12.3/internal/dcraw_fileio.cpp:204: undefined reference to `cmsOpenProfileFromMem'
/home/sasha/Install/LibRaw/LibRaw-0.12.3/internal/dcraw_fileio.cpp:229: undefined reference to `cmsCreateTransform'

raw->sizes.flip=5

Обнаружил, что Canon 550D иногда сохраняет cr2 файлы с raw->sizes.flip=5
При этом LibRaw декодирует с неправильной ориентацией. Причем переключение с raw->sizes.flip=0 на raw->sizes.flip=5 происходит без видимых причин. Просто в процессе съемки серии темновых кадров.
Вылечил поставив в программе после status=libraw_open_file(raw, fname);
raw->sizes.flip=raw->sizes.flip%4;

API, struct libraw_imgother_t, гарантии и обработка ошибок

Есть ряд вопросов по полям struct libraw_imgother_t iso_speed, shutter и aperture:
1) какие есть гарантии относительно величин, записанных в этих полях? Например, всегда ли там число или может быть NaN?
2) каков формат хранения ISO Speed? Что делается в случае, когда ISO неизвестно?
3) каков формат хранения Shutter? Хранится точное значение? Или округлённое фотографическое ? (гипотеза, основанная на наблюдениях точное время выдержки в секундах) Что делается в случае, когда выдержка неизвестна?

ошибки при компиляции

windows
visual studio 2008
visual c++

ошибка на этапе линковки

доброго!

пытаюсь прицепить libraw к с++ программе.
----------------
#include "libraw/libraw.h"
int main(int argc, char** argv) {
LibRaw iProcessor;
return (EXIT_SUCCESS);
}
-----------------

компиляция проходит на ура. при линковке - ошибка:
--------------------------------------------------
g++.exe -lraw -lws2_32 -lm -DLIBRAW_NOTHREADS -O4 -I. -Ilibraw -w -DLIBRAW_NODLL -o dist/Debug/MinGW-Windows/trylibraw build/Debug/MinGW-Windows/main.o -Llibraw -Llib -lraw -static

Документация по libraw_iparams_t::filters

Небольшое дополнение:

filters=0 не только для Foveon, но и для весьма актуальных сейчас последних Canon в режиме sRAW.

Вопрос по API, использование libraw_colordata_t

Приветствую!

В libraw_colordata_t декларирован ряд полей для преобразования RAW RGB величин в цветовые координаты, как то:
* float cam_xyz[4][3] матрица преобразования из камерного RGB в XYZ;
* float cmatrix[3][4] матрица баланса белого;
* float rgb_cam[3][4] еще одна матрица баланса белого;
* float cam_mul[4] коэффициенты баланса белого (as shot);
* float pre_mul[4] коэффициенты баланса белого для дневного света (Daylight balance).

Насколько я понимаю, обычный сценарий при RAW конвертации:

LibRaw-0,8.2 MSVC 2008 warning C4244

Файл libraw_datastream.h, строка 106:
return substream?substream->seek(o,whence):fseek(f,o,whence);

В этой строке компилятор MSVC 2008 выдаёт warning C4244: 'argument' : conversion from 'INT64' to 'long', possible loss of data

Компиляция с ключами: /O2 /Ob2 /D "WIN32" /D "_WINDOWS" /D "__TBB_BUILD" /D "NDEBUG" /D "_CRT_SECURE_NO_WARNINGS" /D "_CRT_SECURE_NO_DEPRECATE" /D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_WARNINGS" /D "_SCL_SECURE_NO_DEPRECATE" /D "HAVE_INTEL" /D "CMAKE_INTDIR=\"Release\"" /D "_MBCS" /FD /EHsc /MD /GS- /W3 /nologo /c /TP /errorReport:prompt

Syndicate content (C01 _th3me_)