News:

--

Main Menu

build error

Started by plux7887, February 11, 2015, 10:32:04 AM

Previous topic - Next topic

plux7887

Ubuntu 14.10


**************************
***  Optional Library  ***
***      Summary       ***
**************************
*** Video Encoder      ***
    x264           Yes
    x265           Yes
*** Miscellaneous      ***
    OpenGL         Yes
    FreeType2      Yes
    FontConfig     Yes
    FRIBIDI        Yes
    FontConfig     Yes
*** User Interface     ***
    Common         No
    GTK+           No
    Qt 4           Yes
    CLI            No
**************************
***   Release Build    ***
**************************

-- Packager=deb, valid choices= {deb,rpm,tgz,none}

-- Configuring done
-- Generating done
-- Build files have been written to: /media/tux/Development/avidemux2/buildPluginsQt4
** Failed at make, result in /tmp/logbuildPluginsQt4**
tux@tux:/media/tux/Development/avidemux2$



/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x264/ADM_x264Setup.cpp:146:2: warning: #warning FIXME [-Wcpp]
#warning FIXME
  ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp: In member function ââ,¬Ëœvirtual bool x265Encoder::setup()ââ,¬â,,¢:
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:218:15: error: ââ,¬Ëœstruct x265_param::<anonymous>ââ,¬â,,¢ has no member named ââ,¬ËœrateToleranceââ,¬â,,¢
       MKPARAM(rateTolerance,rate_tolerance);
               ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:213:35: note: in definition of macro ââ,¬ËœMKPARAMââ,¬â,,¢
   #define MKPARAM(x,y)  {param.rc.x = x265Settings.ratecontrol.y;aprintf("[x265] rc."#x" = %d\n",param.rc.x);}
                                   ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp: In function ââ,¬Ëœvoid dumpx265Setup(x265_param*)ââ,¬â,,¢:
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:270:50: warning: format ââ,¬Ëœ%dââ,¬â,,¢ expects argument of type ââ,¬Ëœintââ,¬â,,¢, but argument 2 has type ââ,¬Ëœdoubleââ,¬â,,¢ [-Wformat=]
#define PD(x) printf(#x"\t:%d\n",(double)param->x)
                                                  ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:352:5: note: in expansion of macro ââ,¬ËœPDââ,¬â,,¢
     PD(psyRd);
     ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:397:8: error: ââ,¬Ëœstruct x265_param::<anonymous>ââ,¬â,,¢ has no member named ââ,¬ËœrateToleranceââ,¬â,,¢
     RD(rateTolerance);
        ^
/media/tux/Development/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:389:52: note: in definition of macro ââ,¬ËœRDââ,¬â,,¢
#define RD(x) printf(#x"\t:%f\n",(double)param->rc.x)
                                                    ^
ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/build.make:116: recipe for target 'ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/ADM_x265Setup.cpp.o' failed
make[2]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/ADM_x265Setup.cpp.o] Error 1
make[2]: Leaving directory '/media/tux/Development/avidemux2/buildPluginsQt4'
CMakeFiles/Makefile2:149: recipe for target 'ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/all' failed
make[1]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/all] Error 2


Jan Gruuthuse

#1
Important information is missing like hardware, OS details:
Quote_____________________________________________
Avidemux v2.6.8 (#hash)
_____________________________________________
Compiler: GCC 4.8.2
cmake: 2.8.12.2
Build Target: Linux (x86-64)
User Interface: Qt (4.8.6)
_____________________________________________
Kernel: Linux 3.13.0-45-generic (x86_64) (linux-image-3.13.0-45-generic 3.13.0-45.74)
Distribution: Linux Ubuntu 14.04.1 LTS (Trusty)

Intel Core i7-3770K @ 3.50GHz (4 Cores/8 Threads) with 16 GB ram

Desktop: Unity 7.2.4
Display Server: X Server 1.15.1
Display Driver: nouveau  1.0.11
OpenGL: 2.1.2

OpenGL Vendor: NVIDIA Corporation
OpenGL Renderer: GeForce GT 520/PCIe/SSE2 1024MB (810/535MHz)
OpenGL: 4.2.0 NVIDIA 304.125
Compiler: GCC 4.8 + CUDA 5.5

vdpauinfo:
---------
API version: 1
NVIDIA VDPAU Driver Shared Library  304.125
_____________________________________________

What/how do you have installed as x265
x265 --version
x265 [info]: HEVC encoder version 1.4+201-b1c2ef980dfe
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX


Where do you get source from? How do you start avidemux build?
Attach the complete concerned log (zip file)

Looks similar to this report: http://avidemux.org/smuf/index.php/topic,16247.msg71402.html#msg71402

If you used: https://bitbucket.org/multicoreware/x265/get/1.4.tar.bz2 ?
Please try this: build x265 videolan


ajschult

rateTolerance was recently removed

https://bitbucket.org/multicoreware/x265/commits/ac94f35f450546c90bf46d431cc9d6651347fa2f

they forgot to bump X265_BUILD (it was eventually bumped for something else)

https://bitbucket.org/multicoreware/x265/src/154445474462/source/CMakeLists.txt

If you have build 41, we can't reliably detect whether you have rateTolerance or not.

Jan Gruuthuse

We are still using x265 videolan, do we?

plux7887

I use https://bitbucket.org/multicoreware/x265
What is the different between https://bitbucket.org/multicoreware/x265 and videolan. What is the leading repository?

for what is  MKPARAM(rateTolerance,rate_tolerance); needed?
What happens, if I delete this Line?

KoolAidMan

#5
Quote from: plux7887 on February 11, 2015, 09:26:38 PM
I use https://bitbucket.org/multicoreware/x265
What is the different between https://bitbucket.org/multicoreware/x265 and videolan. What is the leading repository?

for what is  MKPARAM(rateTolerance,rate_tolerance); needed?
What happens, if I delete this Line?

Sorry about this. x265 is still relatively new and the public API is constantly changing on us.

To answer your questions above, MKPARAM(rateTolerance,rate_tolerance) sets the rateTolerance variable from the avgBitrateToleranceSpinBox in the x265 GUI. This is the "Average Bitrate Tolerance" option in the "quantiser" tab. If you remove that line (and the debug printf line at the bottom of ADM_x265Setup), you will indeed fix the problem. That particular option will no longer work; however, it seems like the x265 developers are no longer supporting that feature anyway. What they are supporting instead is the bStrictCbr option, so I am adding that option to the GUI when I fix the incompatibility above.

I am in the process of testing a patch which will permanently fix this problem and disable the option in the UI for newer versions of x265.

Update: The patch is ready. http://avidemux.org/smuf/index.php/topic,16354.0.html

Jan Gruuthuse

#6
Just tested avidemux commit 663f6c3 against current: multicoreware x265
api: drop fast-cbf option https://bitbucket.org/multicoreware/x265/commits/9ab104096834f51bd799ea1cf1160092f8182944

avidemux:
Quote-- Build files have been written to: /home/jan/avidemux2/buildPluginsQt4
** Failed at make, result in /tmp/logbuildPluginsQt4**

/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp: In function ââ,¬Ëœvoid dumpx265Setup(x265_param*)ââ,¬â,,¢:
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:354:8: error: ââ,¬Ëœx265_paramââ,¬â,,¢ has no member named ââ,¬ËœbEnableCbfFastModeââ,¬â,,¢
     PI(bEnableCbfFastMode);
        ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:275:46: note: in definition of macro ââ,¬ËœPIââ,¬â,,¢
#define PI(x) printf(#x"\t:%d\n",(int)param->x)
                                              ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:276:50: warning: format ââ,¬Ëœ%dââ,¬â,,¢ expects argument of type ââ,¬Ëœintââ,¬â,,¢, but argument 2 has type ââ,¬Ëœdoubleââ,¬â,,¢ [-Wformat=]
#define PD(x) printf(#x"\t:%d\n",(double)param->x)
                                                  ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:358:5: note: in expansion of macro ââ,¬ËœPDââ,¬â,,¢
     PD(psyRd);
     ^
make[2]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/ADM_x265Setup.cpp.o] Error 1
make[2]: Leaving directory `/home/jan/avidemux2/buildPluginsQt4'
make[1]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


so I'm moving back to http://hg.videolan.org/x265. Until you devs tell me otherwise

x265 went to version 1.5

KoolAidMan

#7
Quote from: Jan Gruuthuse on February 12, 2015, 07:31:06 PM
Just tested avidemux commit 663f6c3 against current: multicoreware x265
api: drop fast-cbf option https://bitbucket.org/multicoreware/x265/commits/9ab104096834f51bd799ea1cf1160092f8182944

avidemux:
Quote-- Build files have been written to: /home/jan/avidemux2/buildPluginsQt4
** Failed at make, result in /tmp/logbuildPluginsQt4**

/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp: In function ââ,¬Ëœvoid dumpx265Setup(x265_param*)ââ,¬â,,¢:
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:354:8: error: ââ,¬Ëœx265_paramââ,¬â,,¢ has no member named ââ,¬ËœbEnableCbfFastModeââ,¬â,,¢
     PI(bEnableCbfFastMode);
        ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:275:46: note: in definition of macro ââ,¬ËœPIââ,¬â,,¢
#define PI(x) printf(#x"\t:%d\n",(int)param->x)
                                              ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:276:50: warning: format ââ,¬Ëœ%dââ,¬â,,¢ expects argument of type ââ,¬Ëœintââ,¬â,,¢, but argument 2 has type ââ,¬Ëœdoubleââ,¬â,,¢ [-Wformat=]
#define PD(x) printf(#x"\t:%d\n",(double)param->x)
                                                  ^
/home/jan/avidemux2/avidemux_plugins/ADM_videoEncoder/x265/ADM_x265Setup.cpp:358:5: note: in expansion of macro ââ,¬ËœPDââ,¬â,,¢
     PD(psyRd);
     ^
make[2]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/ADM_x265Setup.cpp.o] Error 1
make[2]: Leaving directory `/home/jan/avidemux2/buildPluginsQt4'
make[1]: *** [ADM_videoEncoder/x265/CMakeFiles/ADM_ve_x265_QT4.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


so I'm moving back to http://hg.videolan.org/x265. Until you devs tell me otherwise

x265 went to version 1.5
Looks like they removed the fast cbf mode within the last 24 hours. I will update the x265 plugin again tonight. For now, we can guarantee support for X265_VERSION < 45. Any higher has too many api changes...

Update: The patch is available. http://avidemux.org/smuf/index.php?topic=16355.msg71946#msg71946 It now builds on trunk again!

Jan Gruuthuse

Thanks.

As user this is a big struggle. x265 can't find a relation with online source the version (1.4,1.5,...) and the reference used by you: X265_VERSION < 45
The big question building avidemux 2.6.8 distribution in relation to x265 version: do you build against latest stable 1.5 and will this work with users who have installed x265 1.4 or do these need to match?

What I found out by now, please correct me, if I have made the wrong assumptions.
Users should use x265 stable from http://hg.videolan.org/x265
Get source in to your home directory:
cd ~
hg clone http://hg.videolan.org/x265

Build from source:
cd ~/x265/build
cmake ../source
make
sudo make install

Test installation:
cd ~
x265 --version

x265 [info]: HEVC encoder version 1.5+1-32d72a0285e0
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

Update the source files:
cd ~/x265
hg update stable

Switch versions:
hg up -r 1.4
build again and test:
x265 [info]: HEVC encoder version 1.4
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

KoolAidMan

#9
Quote from: Jan Gruuthuse on February 13, 2015, 09:13:10 AM
Thanks.

As user this is a big struggle. x265 can't find a relation with online source the version (1.4,1.5,...) and the reference used by you: X265_VERSION < 45
The big question building avidemux 2.6.8 distribution in relation to x265 version: do you build against latest stable 1.5 and will this work with users who have installed x265 1.4 or do these need to match?

What I found out by now, please correct me, if I have made the wrong assumptions.
Users should use x265 stable from http://hg.videolan.org/x265
Get source in to your home directory:
cd ~
hg clone http://hg.videolan.org/x265

Build from source:
cd ~/x265/build
cmake ../source
make
sudo make install

Test installation:
cd ~
x265 --version

x265 [info]: HEVC encoder version 1.5+1-32d72a0285e0
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX

Update the source files:
cd ~/x265
hg update stable

Switch versions:
hg up -r 1.4
build again and test:
x265 [info]: HEVC encoder version 1.4
x265 [info]: build info [Linux][GCC 4.8.2][64 bit] 8bpp
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX


The X265_VERSION param is defined in x265_config.h. You can type "locate x265_config.h" on a unix-like system to find the file location.

As for supported versions of X265-- all stable versions of X265 >= 1.0 should work with avidemux. Trunk will also typically work; however, the X265 developers have been making large changes to their API lately. These changes have introduced incompatibilities which need to be resolved through code changes. It is particularly annoying when they make a public API change and forget to increment the X265_VERSION number.

Jan Gruuthuse

#10
x265 [info]: HEVC encoder version 1.5+1-32d72a0285e0
~/x265/build/x265_config.h
#define X265_BUILD 43

KoolAidMan

Quote from: Jan Gruuthuse on February 13, 2015, 05:10:52 PM
x265 [info]: HEVC encoder version 1.5+1-32d72a0285e0
~/x265/build/x265_config.h
#define X265_BUILD 43
And this is compiling and working, correct? Last night I compiled and tested with trunk (X265_BUILD 45) and it was working fine.

Jan Gruuthuse

Yes it does: avidemux Cli/Qt 2.6.8-150213 64-bit deb download ubuntu LTS

Things did get troublesome while using the developers multicore source. Most likely did mess up with  ./make-Makefiles.bash, the install did get in the wrong folders. libx265.so.43 would not load
ldd /usr/local/bin/x265
for 14.04.1 this should show:
linux-vdso.so.1 =>  (0x00007fff5edfe000)
libx265.so.43 => /usr/local/lib/libx265.so.43 (0x00007f9e1d801000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9e1d5e3000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9e1d2de000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9e1cf18000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9e1cc12000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9e1dc56000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9e1c9fb000)


All seems to work well (18fps) 720p avc to hvec (default settings), a file reduction +- 4.5 times (68.8 MB -> 14.9 MB)
source: 68.8 MB  720p4audioTracks3sat.ts
result : 14.9 MB 3satHEVCx265.mkv

KoolAidMan

#13
If you are making and installing from the x265 developer source code, the library might be installed in /usr/local/lib64. That could not be present in your PATH (as you probably meant to place it in /usr/lib64 instead), in which case you will have to move or symlink the library. You can also use ldd to ensure all dependencies are being linked appropriately, for example, "ldd libx265.so.43". Any dependency which does not produce a hexcode is failing to properly link, although based on what you said above, you already knew that ;).