Hi,
I just pushed a libraw branch which uses – well… – libraw for the raw decoding. The support is alpha quality, and I expect bugs and glitches, so I’d appreciate some testing from people who can build from source. (You need to set ENABLE_LIBRAW=1 in CMakeCache.txt to enable it)
Hi @guzzisti , thanks for the feedback! Indeed, I used the latest libraw snapshot from github, and I relized just now that they added a backwards-incompatible change… Can you try this patch (against the current head of the libraw branch) and see if it fixes it?
I don’t know if it’s faster actually. The reason for switching is not having to update the internal dcraw code to support new formats and cameras, which is getting increasingly difficult… For example, libraw already supports Sony lossless compressed raws (e.g. produced by the A1 and probably A7 IV) which are not supported by art master.
Yay libraw! I’ve used it from the start in rawproc, and I’ve been able to concentrate on the image operations, color, and optimizing my workflow. And not on .CR3…
Hello, I guess I’m doing something wrong. I switched to the libraw branch with the command git checkout libraw. In CMakeCache.txt I see the following lines:
//Use libraw for decoding
ENABLE_LIBRAW:BOOL=1
Then I compile, make and install, works as usual. But when I start Art, I see in the splash/welcome screen: LibRaw: N/A
Synaptic tells me that libraw-bin, libraw-dev and libraw19 (all versions 0.19.5) are installed on my system (Xubuntu 20.04.3).
problem with CR3 files
I use those files that come from playraw. Sorry to not give credit. A64I5539.CR3 (17.2 MB) IMG_1562.CR3 (13.3 MB) IMG_3022.CR3 (9.4 MB)
ART-libraw generates a black thumbnail. When opening, it crashes
Preprocessing: 493926 usec
s<=0!
Assertion failed: s > 0, file D:/ART/ARTSOURCE/ART/rtengine/LUT.h, line 152
…
…
[Thread 9168.0x293c exited with code 3]
[Thread 9168.0x3ec exited with code 3]
[Thread 9168.0x1f38 exited with code 3]
[Thread 9168.0x3c84 exited with code 3]
–Type for more, q to quit, c to continue without paging–
[Inferior 1 (process 9168) exited with code 03]
(gdb) bt
No stack.
(gdb)
@paulmatth I just realized I put a constraint that libraw has to be version 0.20 or higher, so your problem is that your version is too old. There’s a chance that it might work also with 0.19, but I don’t know (see also below). If you want to test, you can try changing
pkg_check_modules(LIBRAW libraw_r>=0.20)
to
pkg_check_modules(LIBRAW libraw_r>=0.19)
on line 547 of CMakeLists.txt in the root dir of ART.
These all work fine for me using LibRaw 0.21.0-Snapshot202101 (the latest available from github). So I guess your libraw version is simply too old…
Hello Alberto, this doesn’t work, compiling stops after 25%, see terminal output below. Seems my libraw version is too old. I’ll try to get an newer version (but not today).
@gaaned92, tried your suggestion as well (-DENABLE_LIBRAW=ON). Compiling went fine but the splash screen of Art still says LibRaw: N/A…
[ 25%] Building CXX object rtengine/CMakeFiles/rtengine.dir/rawimage.cc.o
[ 25%] Building CXX object rtengine/CMakeFiles/rtengine.dir/rawimagesource.cc.o
/home/paul/art/rtengine/rawimage.cc: In member function ‘int rtengine::RawImage::loadRaw(bool, unsigned int, bool, rtengine::ProgressListener*, double, bool)’:
/home/paul/art/rtengine/rawimage.cc:531:47: error: ‘struct libraw_iparams_t’ has no member named ‘normalized_make’
531 | if (strcmp(libraw_->imgdata.idata.normalized_make, "Fujifilm") == 0 && strncmp(libraw_->imgdata.idata.normalized_model, "GFX", 3) == 0) {
| ^~~~~~~~~~~~~~~
/home/paul/art/rtengine/rawimage.cc:531:115: error: ‘struct libraw_iparams_t’ has no member named ‘normalized_model’
531 | if (strcmp(libraw_->imgdata.idata.normalized_make, "Fujifilm") == 0 && strncmp(libraw_->imgdata.idata.normalized_model, "GFX", 3) == 0) {
| ^~~~~~~~~~~~~~~~
/home/paul/art/rtengine/rawimage.cc:542:29: error: ‘struct libraw_iparams_t’ has no member named ‘normalized_make’
542 | strncpy(make, d.normalized_make, sizeof(make)-1);
| ^~~~~~~~~~~~~~~
/home/paul/art/rtengine/rawimage.cc:544:30: error: ‘struct libraw_iparams_t’ has no member named ‘normalized_model’
544 | strncpy(model, d.normalized_model, sizeof(model)-1);
| ^~~~~~~~~~~~~~~~
/home/paul/art/rtengine/rawimage.cc:588:27: error: ‘struct libraw_colordata_t’ has no member named ‘raw_bps’
588 | tiff_bps = cd.raw_bps;
| ^~~~~~~
make[2]: *** [rtengine/CMakeFiles/rtengine.dir/build.make:1025: rtengine/CMakeFiles/rtengine.dir/rawimage.cc.o] Fout 1
make[2]: *** Wachten op onvoltooide taken...
make[1]: *** [CMakeFiles/Makefile2:167: rtengine/CMakeFiles/rtengine.dir/all] Fout 2
make: *** [Makefile:130: all] Fout 2
paul@graveyron:~/art$
Hi Alberto,
I compiled and installed libraw 0.20.2 on my system (mint 20.2) in usr/local/lib.
I compiled ART successful, but when I start it, I got the message:
./programs2/art-test/ART: error while loading shared libraries: libraw_r.so.20: cannot open shared object file: No such file or directory
What can I do ? Where I have to put libraw_r.so.20?
This is AboutThisBuild.txt:
Version: 1.8.2-215-g2b761b8ea
Branch: libraw
Commit: 2b761b8ea
Commit date: 2021-11-03
Compiler: cc 9.3.0
Processor: x86_64
System: Linux
Bit depth: 64 bits
Gtkmm: V3.24.2
Lensfun: V0.3.2.0
Exiv2: V0.27.2
LCMS2: V2.9
LibRaw: V0.20.2
Build type: release
Build flags: -std=c++11 -march=native -Werror=unused-label -fno-math-errno -Wall -Wuninitialized -Wno-deprecated-declarations -Wno-unused-result -fopenmp -Werror=unknown-pragmas -O3 -DNDEBUG -ftree-vectorize
Link flags: -march=native
OpenMP support: ON
Build OS: Linux
Build date: 2021-11-03T19:32:30Z