Building instruction

Issue #4 resolved
Thomas Käfer created an issue

Hi!

can VapourSynth Editor be compiled / used on linux desktops? If yes, are there instructions anywhere? I could not find them.

Thanks, regards, Thomas

Comments (14)

  1. Aleksey Lyashin repo owner

    Yes it can. It is obviously a Qt project. Qt 5 specifically. It is built with

    #!
    
    qmake pro.pro
    make release
    

    in "pro" directory. It will be built in "build" directory with subdirectory corresponding to your compiler.

  2. Thomas Käfer reporter

    hmm. It seems my qmake is not working

    $ qmake pro.pro
    qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
    

    but to be honest I have lost interest in VapourSynth (for now) since I learned that audio support is only very rudimentary at the current state.

  3. Aleksey Lyashin repo owner

    Keep your comments relevant to the issue please. Also, read other comments more carefully. The editor is written with Qt5. It won't build with Qt4.

  4. Thomas Käfer reporter

    Sorry about irrelevant comments. Back on topic. I just ran the first of the commands you told me to, and posted the result. I guess one needs to install some Qt5-dev package before.

  5. Thomas Käfer reporter

    Hey there! I'm back trying to build your VapourSynth-Editor. Running the first step qmake pro.pro works for me now (I guess I have installed Qt sometime in the past or something) but gives this WARNING: /home/kaefert/src/vapoursynth-editor/pro/pro.pro:122: Unescaped backslashes are deprecated.

    Running make release will do nothing and print:

    make: *** No rule to make target `release'.  Stop.
    

    Instead simply running make gives these errors:

    g++ -c -m64 -pipe -O2 -w -D_REENTRANT -DNDEBUG -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I../src/image/zimg -I../generated/moc -I../generated/ui -o helpers.o ../src/common/helpers.cpp
    ../src/common/helpers.cpp: In function ‘QString vsedit::timeToString(double, bool)’:
    ../src/common/helpers.cpp:13:14: error: ‘round’ is not a member of ‘std’
      a_seconds = std::round(a_seconds * 1000.0) / 1000.0;
                  ^
    ../src/common/helpers.cpp:13:14: note: suggested alternative:
    In file included from /usr/include/features.h:374:0,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426,
                     from /usr/include/c++/4.8/cmath:41,
                     from ../src/common/helpers.cpp:1:
    /usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1: note:   ‘round’
     __MATHCALLX (round,, (_Mdouble_ __x), (__const__));
     ^
    ../src/common/helpers.cpp: In function ‘QTime vsedit::secondsToQTime(double)’:
    ../src/common/helpers.cpp:106:14: error: ‘round’ is not a member of ‘std’
      a_seconds = std::round(a_seconds * 1000.0) / 1000.0;
                  ^
    ../src/common/helpers.cpp:106:14: note: suggested alternative:
    In file included from /usr/include/features.h:374:0,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426,
                     from /usr/include/c++/4.8/cmath:41,
                     from ../src/common/helpers.cpp:1:
    /usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1: note:   ‘round’
     __MATHCALLX (round,, (_Mdouble_ __x), (__const__));
     ^
    ../src/common/helpers.cpp:116:41: error: ‘round’ is not a member of ‘std’
      int milliseconds = (int)(((a_seconds - std::round(a_seconds)) * 1000.0));
                                             ^
    ../src/common/helpers.cpp:116:41: note: suggested alternative:
    In file included from /usr/include/features.h:374:0,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39,
                     from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426,
                     from /usr/include/c++/4.8/cmath:41,
                     from ../src/common/helpers.cpp:1:
    /usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1: note:   ‘round’
     __MATHCALLX (round,, (_Mdouble_ __x), (__const__));
     ^
    make: *** [helpers.o] Error 1
    

    does this maybe mean I have a wrong Qt version? UPDATE: ah, okey by reading the content of my own comment I've found that there's some Qt4 path in the gcc command. So I guess I need to get some Qt5-dev package.

  6. Aleksey Lyashin repo owner

    Well, Qt4 interfering might be the issue, but I'm not sure. std::round might not work because standard wasn't switched to C++11. Likely, Qt version as well.

  7. Thomas Käfer reporter

    Installing the package Qt5-default and rerunning qmake pro.pro and make made it work.

    I now have a vsedit binary in ~/src/vapoursynth-editor/build/release-64bit-gcc/ and everything seems to work as intended.

    One question though: Is there some way to get the preview to 'play'? I can select the frame I want to see, but it's always paused...?

  8. Aleksey Lyashin repo owner

    Click on the preview to get it focused and hold keyboard right arrow. How fast it will 'play' depends on script complexity.

  9. Thomas Käfer reporter

    yes, I've found that functionality, but that way it will continue to play long after I release the arrow key :(

  10. Aleksey Lyashin repo owner

    That's because lots of "give me the next frame" messages stack and are executed one by one. If your script is that heavy, you might not want it to play, but navigate frame by frame. Otherwise it is hard to go back.

  11. Thomas Käfer reporter

    well could it maybe be changed to not stack messages but instead listen for key down and key up events?

    (this is not meant as a [do this for me!] but simply asking you for your opinion on your code if this would be feasible)

    also the performance is much slower than with vspipe

  12. Log in to comment