Compiling openfx-io throws errors?

Hello,

I’m on Ubuntu 18.04, and so far all the dependencies are installed, but when I start a “make” it throws this:

make BITS=64 CONFIG=release

(cd IO && make )
make[1]: Entering directory '/home/box/Downloads/Tools/NatronSource/openfx-io/openfx-io/IO'
../Makefile.master:7: ../openfx/Support/Plugins/Makefile.master: No such file or directory
make[1]: *** No rule to make target '../openfx/Support/Plugins/Makefile.master'.  Stop.
make[1]: Leaving directory '/home/box/Downloads/Tools/NatronSource/openfx-io/openfx-io/IO'
Makefile:22: recipe for target 'IO' failed
make: *** [IO] Error 2

I’m aiming at compiling only one openfx-io module, that is OIIO, but since I started having the same error I tried a global “make”

From the OIIO, I only need OIIOText, which I want to use in my OFX plugin.

Any help is appreciated.

One more note, are “openfx” and “supportExt” folders supposed to be empty folders?

Looking for your response guys.

You probably missed the instructions from the README.md:

git clone https://github.com/NatronGitHub/openfx-io.git
cd openfx-io
git submodule update -i --recursive

Thanks, I missed that thinking it was optional, but this brings us to another thing.

I need the OIIO, so I believe I will need to install the “ocio” as well, but following the guide, I get these errors right before the last step to make and install:

make && sudo make install
[  1%] Building CXX object src/core/CMakeFiles/OpenColorIO.dir/Config.cpp.o
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp: In function ‘void OpenColorIO::v1::{anonymous}::operator>>(const YAML::Node&, OpenColorIO::v1::{anonymous}::View&)’:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:245:20: error: ‘Iterator’ is not a member of ‘YAML’
         for (YAML::Iterator iter = node.begin();
                    ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:245:20: note: suggested alternative: ‘iterator’
         for (YAML::Iterator iter = node.begin();
                    ^~~~~~~~
                    iterator
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:246:14: error: ‘iter’ was not declared in this scope
              iter != node.end();
              ^~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:254:51: error: expected primary-expression before ‘>’ token
                     iter.second().Read<std::string>(stringval))
                                                   ^
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:260:51: error: expected primary-expression before ‘>’ token
                     iter.second().Read<std::string>(stringval))
                                                   ^
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:266:51: error: expected primary-expression before ‘>’ token
                     iter.second().Read<std::string>(stringval))
                                                   ^
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp: In member function ‘void OpenColorIO::v1::Config::Impl::load(std::istream&, const char*)’:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1663:20: error: ‘class YAML::Parser’ has no member named ‘GetNextDocument’; did you mean ‘HandleNextDocument’?
             parser.GetNextDocument(node);
                    ^~~~~~~~~~~~~~~
                    HandleNextDocument
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1667:21: error: ‘class YAML::Node’ has no member named ‘FindValue’
             if(node.FindValue("ocio_profile_version") == NULL)
                     ^~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:42: error: ambiguous overload for ‘operator>>’ (operand types are ‘YAML::Node’ and ‘int’)
             node["ocio_profile_version"] >> profile_version;
In file included from /home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:51:0:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:111:21: note: candidate: void OpenColorIO::v1::operator>>(const YAML::Node&, OpenColorIO::v1::BitDepth&) <near match>
     OCIOHIDDEN void operator >> (const YAML::Node& node, BitDepth& depth);
                     ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:111:21: note:   conversion of argument 2 would be ill-formed:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: invalid conversion from ‘int’ to ‘OpenColorIO::v1::BitDepth’ [-fpermissive]
             node["ocio_profile_version"] >> profile_version;
                                             ^~~~~~~~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: cannot bind rvalue ‘(OpenColorIO::v1::BitDepth)profile_version’ to ‘OpenColorIO::v1::BitDepth&’
In file included from /home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:51:0:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:113:21: note: candidate: void OpenColorIO::v1::operator>>(const YAML::Node&, OpenColorIO::v1::Allocation&) <near match>
     OCIOHIDDEN void operator >> (const YAML::Node& node, Allocation& alloc);
                     ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:113:21: note:   conversion of argument 2 would be ill-formed:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: invalid conversion from ‘int’ to ‘OpenColorIO::v1::Allocation’ [-fpermissive]
             node["ocio_profile_version"] >> profile_version;
                                             ^~~~~~~~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: cannot bind rvalue ‘(OpenColorIO::v1::Allocation)profile_version’ to ‘OpenColorIO::v1::Allocation&’
In file included from /home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:51:0:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:115:21: note: candidate: void OpenColorIO::v1::operator>>(const YAML::Node&, OpenColorIO::v1::ColorSpaceDirection&) <near match>
     OCIOHIDDEN void operator >> (const YAML::Node& node, ColorSpaceDirection& dir);
                     ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:115:21: note:   conversion of argument 2 would be ill-formed:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: invalid conversion from ‘int’ to ‘OpenColorIO::v1::ColorSpaceDirection’ [-fpermissive]
             node["ocio_profile_version"] >> profile_version;
                                             ^~~~~~~~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: cannot bind rvalue ‘(OpenColorIO::v1::ColorSpaceDirection)profile_version’ to ‘OpenColorIO::v1::ColorSpaceDirection&’
In file included from /home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:51:0:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:117:21: note: candidate: void OpenColorIO::v1::operator>>(const YAML::Node&, OpenColorIO::v1::TransformDirection&) <near match>
     OCIOHIDDEN void operator >> (const YAML::Node& node, TransformDirection& dir);
                     ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:117:21: note:   conversion of argument 2 would be ill-formed:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: invalid conversion from ‘int’ to ‘OpenColorIO::v1::TransformDirection’ [-fpermissive]
             node["ocio_profile_version"] >> profile_version;
                                             ^~~~~~~~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: cannot bind rvalue ‘(OpenColorIO::v1::TransformDirection)profile_version’ to ‘OpenColorIO::v1::TransformDirection&’
In file included from /home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:51:0:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:119:21: note: candidate: void OpenColorIO::v1::operator>>(const YAML::Node&, OpenColorIO::v1::Interpolation&) <near match>
     OCIOHIDDEN void operator >> (const YAML::Node& node, Interpolation& iterp);
                     ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/OCIOYaml.h:119:21: note:   conversion of argument 2 would be ill-formed:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: invalid conversion from ‘int’ to ‘OpenColorIO::v1::Interpolation’ [-fpermissive]
             node["ocio_profile_version"] >> profile_version;
                                             ^~~~~~~~~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1675:45: error: cannot bind rvalue ‘(OpenColorIO::v1::Interpolation)profile_version’ to ‘OpenColorIO::v1::Interpolation&’
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1696:24: error: ‘Iterator’ is not a member of ‘YAML’
             for (YAML::Iterator iter = node.begin();
                        ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1696:24: note: suggested alternative: ‘iterator’
             for (YAML::Iterator iter = node.begin();
                        ^~~~~~~~
                        iterator
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1697:18: error: ‘iter’ was not declared in this scope
                  iter != node.end();
                  ^~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1706:55: error: expected primary-expression before ‘>’ token
                         iter.second().Read<std::string>(stringval))
                                                       ^
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1712:44: error: expected primary-expression before ‘bool’
                         iter.second().Read<bool>(boolval))
                                            ^~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1712:44: error: expected ‘)’ before ‘bool’
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1718:55: error: expected primary-expression before ‘>’ token
                         iter.second().Read<std::string>(stringval))
                                                       ^
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1746:32: error: ‘Iterator’ is not a member of ‘YAML’
                     for (YAML::Iterator it  = roles.begin();
                                ^~~~~~~~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1746:32: note: suggested alternative: ‘iterator’
                     for (YAML::Iterator it  = roles.begin();
                                ^~~~~~~~
                                iterator
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1747:41: error: ‘it’ was not declared in this scope
                                         it != roles.end(); ++it)
                                         ^~
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:1747:41: note: suggested alternative: ‘int’
                                         it != roles.end(); ++it)
                                         ^~
                                         int
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp: At global scope:
/home/box/Downloads/Tools/NatronSource/openfx-io/ocio/src/core/Config.cpp:238:10: warning: ‘void OpenColorIO::v1::{anonymous}::operator>>(const YAML::Node&, OpenColorIO::v1::{anonymous}::View&)’ defined but not used [-Wunused-function]
     void operator >> (const YAML::Node& node, View& v)
          ^~~~~~~~
src/core/CMakeFiles/OpenColorIO.dir/build.make:230: recipe for target 'src/core/CMakeFiles/OpenColorIO.dir/Config.cpp.o' failed
make[2]: *** [src/core/CMakeFiles/OpenColorIO.dir/Config.cpp.o] Error 1
CMakeFiles/Makefile2:117: recipe for target 'src/core/CMakeFiles/OpenColorIO.dir/all' failed
make[1]: *** [src/core/CMakeFiles/OpenColorIO.dir/all] Error 2

Could it be a problem of cmake/make/gcc/g++/qt version or something?

No worries now, I gave up compiling from the source, and just instaled OCIO and every other lib from Ubuntu’s repos, and I can compile everything just fine.

The problem now is that the OIIOText OFX doesn’t show anything inside the Previewer inside BM Fusion, I tried to attach it to Natron’s Merge node inside Fusion but to no avail either.

What am I missing here?

OIIOText is depreciated. You will need to modify the source I guess, any reason you want to use that compared to the regular ‘Text’ node?

Man, I needed your intervention here! I didn’t know, I’m trying to extract Natron’s Text OFX Node, and thought it was the OIIO one.

I got it to compile, and even load inside Fusion, but it didn’t render anything, so would you guide me which part of code is used for the Text Node inside Natron plz?

As for the reason why, then here it is:

Hi Codernix !
I have the same problem as you.
Please show me in detail how you solved it ?
Thank you very much !

Hi Brian and welcome.
The solution is to follow the instructions from the README, and/or take a look at how we compile it on tracvis CI, which is a vanilla Ubuntu system: https://github.com/NatronGitHub/openfx-io/blob/master/.travis.yml#L66

Thanks for the reply devernay!
I’m just an artist and have no knowledge of this, so it’s too hard for me.
Is there a simpler way to make this easier to understand?
Thanks so much.

The README file is quite detailed, but if you’ve never compiled software before it would be a good idea if you learnt that first.

Here’s a guide on how to use git https://opensource.com/article/18/1/step-step-guide-git

There’s many tutorials on how to compile software but here’s one https://www.wired.com/2010/02/Compile_Software_From_Source_Code/ (instructions will vary depending on your operating system).

1 Like

@BrianB: What kind of plugins do you need to build?

Thanks @rodlie !
I need WriteFFmpge Node from OpenFX-IO (https://github.com/NatronGitHub/openfx-io/)
I heard that node makes rendering faster (https://github.com/MrKepzie/Natron/issues/1092#issuecomment-165746226)

[Question]:
Is openfx-io already available in Natron but I can’t find it?

image

1 Like

Thanks @hellocatfood !
It seems very basic to get started.
I will try to learn it.

2 Likes

You already have openfx-io. The reader/writer plugins are not view-able, you only have meta nodes Read and Write. Natron will use the appropriate plugin for the format requested. So, all you need to do is specify a video file as output and WriteFFmpeg will be used.

What a good news !!!
But what is “specify video”?

This is my Natron Image nodes:
image
Even from search:
image

This is from Youtube (https://youtu.be/aPpBfAKCANU?t=34)
image

Just select Write and in the file dialog you type in the video file you want to render.

Yes, I have just used Natron and this is how I render:
1.add and connect Write node
2.Name with extention or choose from dropdown below (video.mp4)
3.Hit render in Properties

But is it the normal Write feature, not the FFmpeg?
Where is the WriteFFmpeg option?

Sorry, maybe I misunderstood the video codecs because I only knew the basics.
If so, please correct me.
Thank you !

You have the encoder options in the write node:

1 Like