Finally got around to making a couple of videos on using rawproc:
1. rawproc Tour
2. rawproc Basic Raw Processing
I have learned from this that I much prefer writing…
Finally got around to making a couple of videos on using rawproc:
1. rawproc Tour
2. rawproc Basic Raw Processing
I have learned from this that I much prefer writing…
Bravo…I will watch them tonight with a coffee…na I think beer to celebrate your achievement…
'ere y’go…
Saw the first one, very good.
Editing in rawproc unveils what raw processing means, more than other software. ( Photoflow does it also)
Very educational.
And the video is excelent.
Thanks for putting this together.
thanks, exactly what I had in mind when I started coding it…
Just had a look at the first video; As somewhat expected it is just as conscientious as rawproc itself. Great job!
@7osema, the rawproc video links are at the top of this thread…
Thank you for your effort. I will clone the repository to see if I can build rawproc and make it work on my Devuan box.
Building rawproc isn’t the easiest boat to sail, apologies. I’ve been through a couple of iterations of the build instructions based on my own expectations, so I’ll be interested to hear about how it works (or doesn’t) from you.
Thanks in advance…
My plan is to just follow github instructions. First obstacle is no target for make doc (wxwidgets). I completed the procedure and rawproc errs while loading shared libraries: librtproces.so.0 (not found). Most likely stupid/simple mistakes on my part, I will try again later.
Devuan is Debian with old school init (not Debian’s systemd)
Build instructions work on Devuan, sort of. The executable produces assertion dialogs related to wxWidgets and it requires continued clicking the Continue button in streams of Stop/Continue dialogs. I can provide details if you want them, but I guess gitub would be the more appropriate place?
Ack, I’ll bet you used wxWidgets 3.1.5. I got the same behavior when I tried that version, so I reverted to 3.1.4 and all went back to the occasional command-line GTK assert.
I need to figure out if wxWidgets got more pedantic about some stricture that I can influence in my code…
Ha, appears there’s a wxWidgets 3.1.6 now, so i downloaded and compiled it, then linked a test of rawproc. No asserts, at least through a full procesing of a NEF to export…
I found some discussion of a change they’d made in 3.1.5 regarding empty wxStrings, apparently deprecating the use of wxEmptyString with no notice. Not sure if that’s the totality of it, but it appears 3.1.6 has either reverted those changes or incorporated better logic to handle them…
I used wxWidgets v3.1.2 as instructed in your github README.md file. I will try v3.1.6.
For the lensfun instructions:
sudo apt-get install lensfun-dev libcurl-dev libarchive-dev
fails on:
Hmm, that’s interesting. Aargh, it’s liblensfun-dev…
Ah, I recall that now. That’s the same libcurl I picked; I need to update the doc accordingly.
Thanks, I’ve only gotten compile feedback sporadically, and it usually takes quite a few eyes to catch all the foo…
Still no cigar. I have tried wxWidgets 3.1.2, 3.1.4 and 3.1.6. The “make doc” fails with all three, the Makefile has no rule for “doc”.
Something changed somewhere, in the rawproc repository or in my build tools as
g++ now fails on rawproc/src/fileutil.cpp, it claims std::filesystem is not declared:
…/…/src/fileutil.cpp: In function ‘std::vector<std::__cxx11::basic_string > dir_list(std::string)’:
…/…/src/fileutil.cpp:208:33: error: ‘std::filesystem’ has not been declared
208 | for (const auto & entry : std::filesystem::directory_iterator(path))
You’re the first person trying to compile in a while, thanks for your patience.
Regarding make doc
, I just looked at the README instructions for wxWidgets and I don’t know how that got in there. There’s a make doc
for rawproc, but not for wxWidgets. I’ll change that…
Regarding std::filesystem, I just incorporated that a few weeks ago and it figures that the first person to compile since isn’t using C++17 . It’s in gcc since version 8 but doesn’t default until version 11, so adding
--std=c++17
to CXXFLAGS should do it. I need to put that in the README
–std=c++17
Yes, I figured that out. It compiles on my Devuan box, but not the Ubuntu 20.04 (in a VM), it looks like configure fails on some file(s?) not found. I will deal with Ubuntu later if I can get rawproc working on Devuan.
Long story short, it looks like something is amiss in relation to wxWidgets (3.12, 3.1.4, 3.1.5, 3.1.6). I understood that you downgraded to 3.1.4 and I will stick to that one even if README.md says 3.1.2. A short runtime report:
Start rawproc and click Help->View Help… console output:
*(rawproc:9305): Gtk-CRITICAL *: 12:09:31.290: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar
*(rawproc:9305): Gtk-CRITICAL *: 12:09:31.291: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar
Setup (Menu Help->View Help… How to use rawproc)
Load a .NEF (Nikon D850)
Click “No” in the “Apply…” dialog
Menu Add->Colorspace
Click "OK in dialog "Note: Image does not have a source profile, only ‘assign’ is valid:
/home/odd/prj/wxWidgets-3.1.4/include/wx/arrstr.h(214): assert “nIndex < m_nCount” failed in Item(): wxArrayString: index out of bounds
Click “Continue” in the An assertion failed! dialog repeats the console message:
Click “Continue” in the next An assertion failed! dialog:
…/src/common/list.cpp(308): assert ““Assert failure”” failed in Item(): invalid index in wxListBase::Item
Click “Continue” in the An assertion failed! dialog:
…/src/gtk/radiobox.cpp(422): assert ““node”” failed in SetSelection(): radiobox wrong index
Click “Continue” in the An assertion failed! dialog:
…/src/common/sizer.cpp(2133): assert “!(flags & wxALIGN_RIGHT)” failed in DoInsert(): Horizontal alignment flags are ignored in horizontal sizers
Interesting. I just ran a similar test with my wxWidgets 3.1.4 build, removed all chances for it to find a rawproc.conf, opened a D850 NEF I had lying around, and, nothing, works normally. The Gtk-CRITICAL assertions I’ve seen for years aren’t even there. BTW, I’ve tried to chase those down, no joy, and they don’t seem to affect anything directly. Did discover that the no-properties-file-available default background color of black doesn’t play well with the various parameter panes, so I’ll be changing that…
How’d you …/configure wxWidgets?
version = 3.1.2|3.1.4|3.1.5|3.1.6
wxWidgets-/build-linux
…/configure --disabled-shared --enable-unicode
Result:
checking build system type… x86_64-pc-linux-gnu
checking host system type… x86_64-pc-linux-gnu
checking for toolkit… gtk
checking for gcc… gcc
checking whether the C compiler works… yes
checking for C compiler default output file name… a.out
checking for suffix of executables…
checking whether we are cross compiling… no
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ISO C89… none needed
checking whether we are using the Intel C compiler… no
checking how to run the C preprocessor… gcc -E
checking for grep that handles long lines and -e… /bin/grep
checking for egrep… /bin/grep -E
checking whether gcc needs -traditional… no
checking for g++… g++
checking whether we are using the GNU C++ compiler… yes
checking whether g++ accepts -g… yes
checking whether we are using the Intel C++ compiler… no
checking whether we are using the Sun C++ compiler… no
checking for ar… ar
checking for ANSI C header files… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking for langinfo.h… yes
checking for wchar.h… yes
checking for sys/select.h… yes
checking for cxxabi.h… yes
checking for an ANSI C-conforming const… yes
checking for inline… inline
checking size of short… 2
checking size of void *… 8
checking size of int… 4
checking size of long… 8
checking size of size_t… 8
checking size of long long… 8
checking size of wchar_t… 4
checking for va_copy… yes
checking whether the compiler supports variadic macros… yes
checking for _FILE_OFFSET_BITS value needed for large files… 64
checking if large file support is available… yes
checking for _LARGEFILE_SOURCE value needed for large files… no
checking whether byte ordering is bigendian… no
checking for std::wstring in … yes
checking for std::istream… yes
checking for std::ostream… yes
checking for type_traits… yes
checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins… yes
checking for libraries directories… /usr/lib/x86_64-linux-gnu /usr/lib
checking for cos… no
checking for floor… no
checking if floating point functions link without -lm… no
checking for sin… yes
checking for ceil… yes
checking if floating point functions link with -lm… yes
checking for strtoull… yes
checking for pkg-config… /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0… yes
configure: WARNING: Defaulting to the builtin regex library for Unicode build.
checking for zlib.h >= 1.1.4… yes
checking for zlib.h… (cached) yes
checking for deflate in -lz… yes
checking for png.h > 0.90… yes
checking for png.h… (cached) yes
checking for png_sig_cmp in -lpng… yes
checking for jpeglib.h… yes
checking for jpeg_read_header in -ljpeg… yes
checking lzma.h usability… yes
checking lzma.h presence… yes
checking for lzma.h… yes
checking for lzma_code in -llzma… yes
checking for jbg_dec_init in -ljbig… yes
checking for LIBTIFF… yes
checking for expat.h… yes
checking if expat.h is valid C++ header… yes
checking for XML_ParserCreate in -lexpat… yes
checking for GTK+ version…
checking for pkg-config… (cached) /usr/bin/pkg-config
checking pkg-config is at least version 0.16… yes
checking for GTK+ - version >= 3.0.0… yes (version 3.24.24)
checking for X11/Xlib.h… yes
checking for X11/XKBlib.h… yes
checking for pkg-config… (cached) /usr/bin/pkg-config
checking for Xxf86vm… checking for XF86VidModeQueryExtension in -lXxf86vm… no
checking elsewhere… no
checking for pkg-config… (cached) /usr/bin/pkg-config
checking for SM… yes
checking for OpenGL headers… found in /usr/include
checking for GL/gl.h… yes
checking for GL/glu.h… no
configure: WARNING: OpenGL libraries not available, disabling support for OpenGL
checking for mode_t… yes
checking for off_t… yes
checking for pid_t… yes
checking for size_t… yes
checking for ssize_t… yes
checking if size_t is unsigned int… no
checking if size_t is unsigned long… yes
checking if wchar_t is separate type… yes
checking for pw_gecos in struct passwd… yes
checking for wcslen… yes
checking for wcsftime… yes
checking for strnlen… yes
checking for wcsdup… yes
checking for wcsnlen… yes
checking for wcscasecmp… yes
checking for wcsncasecmp… yes
checking for mbstate_t… yes
checking for wcsrtombs… yes
checking for snprintf… yes
checking for vsnprintf… yes
checking for vsscanf… yes
checking for vsnprintf declaration… yes
checking if vsnprintf declaration is broken… no
checking for snprintf declaration… yes
checking if snprintf supports positional arguments… yes
checking for vsscanf declaration… yes
checking if vsscanf() declaration is broken… no
checking for putws… no
checking for fputws… yes
checking for wprintf… yes
checking for vswprintf… yes
checking for vswscanf… yes
checking for _vsnwprintf… no
checking for fsync… yes
checking for round… yes
checking for iconv… yes
checking if iconv needs const… no
checking for sigaction… yes
checking for sa_handler type… int
checking for backtrace()… yes
checking for library containing backtrace… none required
checking for __cxa_demangle() in <cxxabi.h>… yes
checking for mkstemp… yes
checking for statfs… yes
checking for statfs declaration… yes
checking for fcntl… yes
checking for setenv… yes
checking for unsetenv… yes
checking for nanosleep… yes
checking for uname… yes
checking for strtok_r… yes
checking for inet_addr… yes
checking for inet_aton… yes
checking for fdopen… yes
checking for sysconf… yes
checking for getpwuid_r… yes
checking for getgrgid_r… yes
checking whether pthreads work with -pthread… yes
checking if more special flags are required for pthreads… no
checking for pthread_setconcurrency… yes
checking for pthread_cleanup_push/pop… yes
checking for sched.h… yes
checking for sched_yield… yes
checking for pthread_attr_getschedpolicy… yes
checking for pthread_attr_setschedparam… yes
checking for sched_get_priority_max… yes
checking for pthread_cancel… yes
checking for pthread_mutex_timedlock… yes
checking for pthread_attr_setstacksize… yes
checking for pthread_mutexattr_t… yes
checking for pthread_mutexattr_settype declaration… yes
checking for abi::__forced_unwind() in <cxxabi.h>… yes
checking for localtime_r… yes
checking for gmtime_r… yes
checking how many arguments gethostbyname_r() takes… six
checking how many arguments getservbyname_r() takes… six
checking for dlopen… no
checking for dlopen in -ldl… yes
checking for dladdr… no
checking for dladdr in -ldl… yes
checking whether inotify is usable… yes
checking for LIBSECRET… configure: WARNING: libsecret not found, wxSecretStore won’t be available
checking for SNDCTL_DSP_SPEED in sys/soundcard.h… yes
checking for GTKPRINT… yes
checking for LIBNOTIFY… checking for LIBNOTIFY… configure: WARNING: libnotify not found, wxNotificationMessage will use generic implementation.
checking xlocale.h usability… no
checking xlocale.h presence… no
checking for xlocale.h… no
checking for locale_t… yes
checking for sys/epoll.h… yes
checking for gettimeofday… yes
checking whether gettimeofday takes two arguments… yes
checking for timezone variable in <time.h>… timezone
checking for localtime… yes
checking for tm_gmtoff in struct tm… yes
checking for _NL_TIME_FIRST_WEEKDAY in langinfo.h… yes
checking for setpriority… yes
checking for socket… yes
checking what is the type of the third argument of getsockname… socklen_t
checking what is the type of the fifth argument of getsockopt… socklen_t
checking for linux/joystick.h… yes
checking for XTST… yes
checking for PRIVATE_FONTS… yes
checking for python… no
checking for WEBKIT… configure: WARNING: webkit2gtk not found, falling back to webkitgtk
checking for WEBKIT… configure: WARNING: webkitgtk not found.
configure: WARNING: WebKit not available, disabling wxWebView
checking for CAIRO… yes
checking for cairo_push_group… yes
checking for GST… configure: GStreamer 1.7.2+ not available. Not using GstPlayer and falling back to 1.0
checking for GST… configure: WARNING: GStreamer 1.0 not available, falling back to 0.10
checking for GST… configure: WARNING: GStreamer 0.10 not available
configure: WARNING: GStreamer not available… disabling wxMediaCtrl
checking CXXWARNINGS for gcc -Woverloaded-virtual… -Woverloaded-virtual
checking for a BSD-compatible install… /usr/bin/install -c
checking for ranlib… ranlib
checking whether ln -s works… yes
checking whether make sets (MAKE)... yes
checking for ar... (cached) ar
checking for strip... strip
checking for nm... nm
checking if make is GNU make... yes
checking for dependency tracking method... gcc
checking whether make sets (MAKE)… (cached) yes
checking whether catch.hpp file exists… yes
configure: creating ./config.status