Comments (25)
from ctl.
from ctl.
from ctl.
from ctl.
I remember looking into the openexr viewer stuff not terribly long ago... it seems like the codebase diverged at some point, and whatever CTL module the test is looking for has long since been moved. I think I even tracked it down at some point, but in the end, it didn't help with building the openexr viewer utility. I didn't really pursue the problem much further... I think the openexr viewer stuff was built in 2004 (? could be totally wrong), and CTL development seemed to wane... Over the past four or five years, though, AMPAS and friends' contributions and restructuring (and ultimate forking off from OpenEXR itself, if I'm not mistaken) has left the original openexr viewer stuff in the dust.
If you're aiming to leverage CTL as part of a viewer buffer process, you might be happier trying the Tuttle / Natron OpenFX CTL node (can't remember what the status of that is), or having a look at @JGoldstone's nukeNode branch of his CTL fork -- the functionality is limited (for now, only the main function, if present, is evaluated, per specified NukeCtl node), but it provides a fairly direct and stable means to work / batch process with CTL...
from ctl.
from ctl.
Ah, thaaaat's right... good call, Alex. I think that's exactly where the "missing" CTL modules live... .../CTL/OpenEXR_CTL/CtlModules. I'm talking with our pipeline superstar right now who's been doing a lot of cross-platform builds of... everything... recently, to see if we can remember why we gave up on openexr_viewers itself.
Apparently, we were able to build, but not able to execute; and this may be a function of trying to append additional paths the $CTL_MODULE_PATH (which I think is verboten), this could very well just be a matter of keeping the missing CTLs within the singular module path... but I vaguely recall a naming conflict with the "utilities.ctl" somewhere along the line.
(In any case, I trust that openexr_viewers really should be built against openexr_ctl-1.0.1, presumably when the CTL codebase split from OpenEXR). If I have time this week, I'll see if I can further investigate / verify.
(This issue seems to duplicate issue #37 )
from ctl.
from ctl.
CTL v1.5.2 builds openexr_ctl, so you don't need the external package. Just make sure it's enabled at configure time. I had to patch both OpenEXR and CTL to get it to build right. The CMake version of OpenEXR does not install the needed Pkg-Config files, but there is a Pull Request for that.
The patches that are being used by Gentoo Linux are suitable for all distros and OSes (and submitted in PRs). You can find how we build and patch CTL here by reading the 1.5.2 ebuild file:
https://github.com/dracwyrm/gentoo-ebuilds/tree/master/media-libs/ctl
And OpenEXR viewers here by reading the 2.2.0-r1 ebuild:
https://github.com/dracwyrm/gentoo-ebuilds/tree/master/media-gfx/openexr_viewers
The IlmBase and OpenEXR are here:
https://github.com/dracwyrm/gentoo-ebuilds/tree/master/media-libs/ilmbase
https://github.com/dracwyrm/gentoo-ebuilds/tree/master/media-libs/openexr
In case you want those patches.
We are using Autotools for the OpenEXR family because that's how the ebuilds were originally done. We will switch to CMake when the mass amount of CMake issues have been fixed as our patchset would be huge to fix them all.
However, CTL and OpenEXR_Viewers fully compile and install, but you do need the .pc files installed to use Pkg-Config -- it's the best way to find all versions of OpenEXR.
The .pc files for CTL are seriously broken, so they are fixed by the patch as well.
Hope this helps.
from ctl.
from ctl.
from ctl.
@themaddoctor I managed to fix the issue. You need to recompile CTL with the latest update of the patch from this PR: #67
Then compile OpenEXR_Viewers against it. :)
checking for OpenEXR... yes
Compiled and ran OpenEXR test program.
checking for OpenEXR_CTL... yes
Compiled and ran OpenEXR_CTL test program.
from ctl.
If you are referring to this patch:
https://github.com/dracwyrm/gentoo-ebuilds/blob/master/media-libs/ctl/files/ctl-1.5.2-Use-GNUInstallDirs-and-fix-PkgConfig-files.patch
Then I did use it, and still it did not find CTL.
tar -xf CTL-ctl-1.5.2.tar.gz
cd CTL-ctl-1.5.2
patch -N -p1 -i ../ctl-1.5.2-Use-GNUInstallDirs-and-fix-PkgConfig-files.patch
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_DOCDIR=share/doc/ctl -DCMAKE_INSTALL_LIBDIR=lib64
make
sed -i '/assert.h/a#include <string.h>' unittest/IlmCtl/testExamples.cpp
sed -i '/assert.h/a#include <string.h>' unittest/IlmCtl/testVarying.cpp
sed -i '/assert.h/a#include <string.h>' unittest/IlmCtl/testVaryingReturn.cpp
make check
make install
cd ..
rm -rf CTL-ctl-1.5.2
mv /usr/lib64/{CM,cm}ake
tar -xf openexr_viewers-2.2.0.tar.gz
cd openexr_viewers-2.2.0
patch -N -p1 -i ../openexr_viewers-2.2.0-Remove-nVidia-automagic.patch
sed -i 's@AM_CONFIG_HEADER@AC_CONFIG_HEADERS@' configure.ac
aclocal
automake --add-missing
autoreconf
autoconf
PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig ./configure
--prefix=/usr --libdir=/usr/lib64
Compiled and ran OpenEXR test program.
checking for OpenEXR_CTL... no
*** Could not run the OpenEXR_CTL test program, checking why...
*** The test program could not be compiled. Is OpenEXR_CTL installed?
*** Check that the cflags (below) includes the OpenEXR_CTL include directory
*** Flags used by the test:
*** cflags: -g -O2 -pthread;-I/usr/include/OpenEXR -pthread
-I/usr/include/OpenEXR -I/usr/include/CTL -I/usr/include/OpenEXR
*** ldflags: -L/usr/lib64
-L/usr/lib64;-lImath;-lHalf;-lIex;-lIexMath;-lIlmThread;-pthread
-L/usr/lib64
*** You can also run configure with --disable-openexrctltest to skip this test.
The OpenEXR_CTL package could not be found. Will build and install
playexr and exrdisplay without ctl support
from ctl.
/usr/lib64/pkgconfig/CTL.pc
libdir=/usr/lib64
includedir=/usr/include
CTL_includedir=/usr/include/CTL:
Name: CTL
Description: CTL interpreter library
Version: 1.5.2
Libs: -L${libdir} -lIlmCtlSimd -lIlmCtlMath -lIlmCtl -L/usr/lib64;-lImath;-lHalf;-lIex;-lIexMath;-lIlmThread;-
pthread
Cflags: -pthread;-I/usr/include/OpenEXR -I${CTL_includedir}
/usr/lib64/pkgconfig/OpenEXR_CTL.pc:
libdir=/usr/lib64
includedir=/usr/include
OpenEXR_includedir=/usr/include/OpenEXR
Name: OpenEXR_CTL
Description: Simplified OpenEXR interface to CTL
Version: 1.5.2
Libs: -L${libdir} -lIlmImfCtl
Cflags: -I${OpenEXR_includedir}
Requires: CTL,OpenEXR
from ctl.
Oh, Jeez. This is just so stupid. Adding "--with-pkg-config" did it. Configured with CTL, and compiled (after replacing libtool with a newer one).
from ctl.
Now:
Cannot find CTL module "transform RRT"
from ctl.
from ctl.
Name: CTL
Description: CTL interpreter library
Version: 1.5.2
Libs: -L${libdir} -lIlmCtlSimd -lIlmCtlMath -lIlmCtl -L/usr/lib64;-lImath;-lHalf;-lIex;-lIexMath;-lIlmThread;-
pthread
Cflags: -pthread;-I/usr/include/OpenEXR -I${CTL_includedir}
That is the old one. I updated the patch right before my last comment. Your CTL.pc file should look like:
libdir=/usr/lib64
includedir=/usr/include
CTL_includedir=/usr/include/CTL
Name: CTL
Description: CTL interpreter library
Version: 1.5.2
Libs: -L${libdir} -lIlmCtlSimd -lIlmCtlMath -lIlmCtl
Cflags: -I${CTL_includedir}
Requires: IlmBase
What's actually is stupid is that the semicolons in the .pc file were causing the fail, so the updated patch to remove the @ilmbase...@ code and just made IlmBase required which combines the flags of the two files correctly. Such a simple fix for that headache.
I don't know what to do about the modules being found though. :(
from ctl.
from ctl.
@themaddoctor What code are you using that generates it? If it's private code, would you be able to share a sample code that reproduces this?
from ctl.
from ctl.
@themaddoctor Why? openexr_ctl is compiled and installed with CTL 1.54 now, so you don't need the external package.
from ctl.
from ctl.
In order to recognize the CTL modules, you need to set the CTL_MODULE_PATH environment variable. See section 5.3.3 of https://github.com/ampas/CTL/blob/master/doc/CtlManual.pdf
from ctl.
@themaddoctor I can confirm what @aforsythe said. I set export CTL_MODULE_PATH="/usr/lib64/CTL"
. Then I had to copy over both transform ctl files from the CTL-openexr_ctl-1.0.1.tar.gz to that directory, and it worked. I can open the test image AllHalfValues.exr using exrdisplay.
I think I will update the patch to add in the environment variable and missing files so I can update my ebuild with it. Maybe even find all missing ctl modules.
from ctl.
Related Issues (20)
- windows compile errors HOT 3
- ctlrender is missing exr file format support because HAVE_OPENEXR is not defined HOT 9
- valgrind detects errors with ctlrender when outputting 16-bit EXR files but not with 32-bit EXR files HOT 4
- Not having a main() function causes a crash on Windows HOT 1
- ctlrender tests not working on Windows HOT 3
- CTL cmake does not find required dependencies when using apt-get install libilmbase-dev libopenexr-dev HOT 1
- EXR output resolutions are incorrect
- ctl_render dpx_read() should give error message when trying to open invalid filename
- install locations of a few files could be improved HOT 2
- Refactor exr_write() into a single function
- typo in include guard in dpx_raw.hh
- missing unit tests for code in directory /CTL/OpenEXR_CTL/exr_ctl_exr/ HOT 2
- missing unit tests for code in directory /CTL/OpenEXR_CTL/exrdpx/
- typo in \CTL\doc\CtlManual.pdf section 2.4 Arrays, Static Data and Lookup Tables
- typo in dpxToExr.cpp and exrToDpx.cpp
- Tiff read error when reading EXR file HOT 28
- LeakSanitizer: detected memory leaks when using -float argument with exr_ctl_exr HOT 2
- deprecation warning: 'uint32' is deprecated HOT 1
- 5 compile warnings on MacOs
- "Bad magic number" error on known valid OpenEXR files HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ctl.