Hi,
Thanks very much for libraw and for the latest update!
I'm trying to build libRaw with Gopro raw support against the current Adobe DNG sdk, as explained in README.GoPro.txt, but I can't get it to build. I'm using https://download.adobe.com/pub/adobe/dng/dng_sdk_1_5.zip
I've applied the patches you mentioned. Compilation of gpr_sdk fails with:
gpr/src/source/lib/gpr_sdk/private/gpr.cpp:583:47: error: no member named
'GetGPMFPayload' in 'dng_host'
dng_memory_block* gpmf_payload = host.GetGPMFPayload().Get();
Indeed, GetGPMFPayload() is added in GoPro's version of dng_host. And a couple of more errors, IsVc5Image() and ReadVc5Image() in dng_host. So there must be more patched needed. Do you happen to have them?
Thanks
Joost
Sorry, we still use Adobe DNG
Sorry, we still use Adobe DNG SDK v1.4
-- Alex Tutubalin @LibRaw LLC
BTW, you may not include gpr
BTW, you may not include gpr_sdk/private/gpr.cpp in your gpr_sdk build, LibRaw do not use this high level interface.
(looks like we need to update GPR readme)
-- Alex Tutubalin @LibRaw LLC
here it is: https://github
here it is: https://github.com/LibRaw/LibRaw/commit/54b8d6c0f4fbea3aab7a706d35370156...
-- Alex Tutubalin @LibRaw LLC
Thanks!
Thanks, that clarifies things. I'll give it a try.
It works!
I managed to build gpr and libraw against Adobe's stock dng sdk v1.5. It seems to work. In case someone else needs this:
I: Build gopro/gpr:
1. replace gopro's toplevel CMakeLists.txt with this one (this builds only a subset of the libraries):
------------------------------------
# minimum required cmake version
cmake_minimum_required( VERSION 3.5 FATAL_ERROR )
set(CMAKE_SUPPRESS_REGENERATION true)
set(CMAKE_C_FLAGS "-std=c99")
# project name
project( gpr )
option(DNGINCLUDEDIR "Adobe DNG toolkit include directory")
INCLUDE_DIRECTORIES( ${DNGINCLUDEDIR} )
# DNG toolkit requires C++11 minimum:
set_property(GLOBAL PROPERTY CXX_STANDARD 17)
# add needed subdirectories
add_subdirectory( "source/lib/common" )
add_subdirectory( "source/lib/vc5_common" )
add_subdirectory( "source/lib/vc5_decoder" )
add_subdirectory( "source/lib/gpr_sdk" )
set_property(TARGET gpr_sdk PROPERTY CXX_STANDARD 17)
IF (WIN32)
TARGET_COMPILE_DEFINITIONS( gpr_sdk PUBLIC -DqWinOS=1 -DqMacOS=0 -DqLinux=0)
ELSEIF (APPLE)
TARGET_COMPILE_DEFINITIONS( gpr_sdk PUBLIC -DqWinOS=0 -DqMacOS=1 -DqLinux=0)
ELSE()
TARGET_COMPILE_DEFINITIONS( gpr_sdk PUBLIC -DqWinOS=0 -DqMacOS=0 -DqLinux=1)
ENDIF()
----------------------------------------
2. apply the two patches of README.GoPro.txt section II b.
the patch of section IIa is not needed with libdng1.5.
3. delete these two files:
/source/lib/gpr_sdk/private/gpr.cpp
/source/lib/gpr_sdk/private/gpr_image_writer.cpp
4. run CMAKE with -DDNGINCLUDEDIR, pointing to the headers from Adobe dng 1.5.
5. build. You get 4 libraries "gpr_sdk", "vc5_common", "vc5_decoder", "common", the rest is ignored.
II build libraw:
1. pass the following to ./configure:
CXXFLAGS="-stdlib=libc++ -std=c++17" CPPFLAGS="-DUSE_DNGSDK -DUSE_GPRSDK"
(and also add -I... for the header paths of the dng library and gopro's headers)
2. remove the 'register' keyword from these files:
src/utils/phaseone_processing.cpp
src/x3f/x3f_parse_process.cpp
Or probably -std=c++11 should work as well. dng1.5 seems to require c++11 at least.
Thank you for detailed
Thank you for detailed explanation, we'll add cmake/gpr related section to readme.gopro.
Note: register keyword results into warning, not error on c++11
-- Alex Tutubalin @LibRaw LLC
readme replenished, register
readme replenished, register keyword removed: https://github.com/LibRaw/LibRaw/commit/e53e15c72e630d6478f30e8c2c90ace9...
-- Alex Tutubalin @LibRaw LLC