News:

--

Main Menu

Arch : compiler error

Started by I12learn, July 15, 2013, 03:43:46 AM

Previous topic - Next topic

I12learn

Hello there,
I tried to compile on Arch, after downloading from GIT.
I got some error, see on Arch forum, then I can't tell exactly which release it is.  :'(  :'(

mean

looks like you have too old/too new libva
/usr/include/va/va.h says rev v0.30

I12learn

#2
Good to know it. BTW which is the correct version?
I got libva 1.2.1-1 and:$ vainfo
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit

lspci |grep VGA
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

I think I should look for a correct video driver, maybe libva-intel-driver

Jan Gruuthuse

#3
IntelÃ,® Coreâ„¢ i5-2500K with ubuntu 12.04 64-bit:
vainfo
Quotelibva: VA-API version 0.32.0
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Intel i965 driver - 1.0.15
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :   VAEntrypointVLD
      VAProfileMPEG2Main              :   VAEntrypointVLD
      VAProfileH264Baseline           :   VAEntrypointVLD
      VAProfileH264Baseline           :   VAEntrypointEncSlice
      VAProfileH264Main               :   VAEntrypointVLD
      VAProfileH264Main               :   VAEntrypointEncSlice
      VAProfileH264High               :   VAEntrypointVLD
      VAProfileH264High               :   VAEntrypointEncSlice
      VAProfileVC1Simple              :   VAEntrypointVLD
      VAProfileVC1Main                :   VAEntrypointVLD
      VAProfileVC1Advanced            :   VAEntrypointVLD
lspci |grep VGA
Quote00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

and have this one installed: libva-intel-vaapi-driver

I12learn

It is hard to try now, I'm not at home  :'( and the intel is on the desktop.
However there is a version difference, I'll try with my laptop to see if will compile. (connection permitting)
Jan, is your avidemux 2.6 compiled to the latest release and working?

Yamashita Ren

#5
Hello,
I have tried to compile the last rev of Avidemux on Archlinux.
I had a longer error than I12learn's one :
[ 80%] Building CXX object ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/ADM_coreLibVA.cpp.o
In file included from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:17:0:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/../include/ADM_coreLibVA.h:49:5: attention : ââ,¬Ëœtypedefââ,¬â,,¢ was ignored in this declaration [enabled by default]
     };
     ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp: In static member function ââ,¬Ëœstatic VASurfaceID admLibVA::allocateSurface(int, int)ââ,¬â,,¢:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:548:89: erreur: invalid conversion from ââ,¬Ëœintââ,¬â,,¢ to ââ,¬ËœVASurfaceID* {aka unsigned int*}ââ,¬â,,¢ [-fpermissive]
         CHECK_ERROR(vaCreateSurfaces(ADM_coreLibVA::display,w,h,VA_RT_FORMAT_YUV420,1,&s));
                                                                                         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:71:32: note: in definition of macro ââ,¬ËœCHECK_ERRORââ,¬â,,¢
#define CHECK_ERROR(x) {xError=x;displayXError(#x,ADM_coreLibVA::display,xError);}
                                ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:548:89: erreur: invalid conversion from ââ,¬ËœVASurfaceID* {aka unsigned int*}ââ,¬â,,¢ to ââ,¬Ëœunsigned intââ,¬â,,¢ [-fpermissive]
         CHECK_ERROR(vaCreateSurfaces(ADM_coreLibVA::display,w,h,VA_RT_FORMAT_YUV420,1,&s));
                                                                                         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:71:32: note: in definition of macro ââ,¬ËœCHECK_ERRORââ,¬â,,¢
#define CHECK_ERROR(x) {xError=x;displayXError(#x,ADM_coreLibVA::display,xError);}
                                ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:548:89: erreur: too few arguments to function ââ,¬ËœVAStatus vaCreateSurfaces(VADisplay, unsigned int, unsigned int, unsigned int, VASurfaceID*, unsigned int, VASurfaceAttrib*, unsigned int)ââ,¬â,,¢
         CHECK_ERROR(vaCreateSurfaces(ADM_coreLibVA::display,w,h,VA_RT_FORMAT_YUV420,1,&s));
                                                                                         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:71:32: note: in definition of macro ââ,¬ËœCHECK_ERRORââ,¬â,,¢
#define CHECK_ERROR(x) {xError=x;displayXError(#x,ADM_coreLibVA::display,xError);}
                                ^
In file included from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/../include/ADM_coreLibVA.h:28:0,
                 from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:17:
/usr/include/va/va.h:792:1: note: declared here
vaCreateSurfaces(
^
In file included from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:980:0:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp: In member function ââ,¬Ëœbool ADM_vaEncodingContext::createExtraData()ââ,¬â,,¢:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:121:9: erreur: ââ,¬ËœVAEncSequenceParameterBufferH264ââ,¬â,,¢ was not declared in this scope
         VAEncSequenceParameterBufferH264 seq_h264 = {0};
         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:121:42: erreur: expected ââ,¬Ëœ;ââ,¬â,,¢ before ââ,¬Ëœseq_h264ââ,¬â,,¢
         VAEncSequenceParameterBufferH264 seq_h264 = {0};
                                          ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:124:13: erreur: ââ,¬Ëœseq_h264ââ,¬â,,¢ was not declared in this scope
             seq_h264.level_idc = 30;
             ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp: In member function ââ,¬Ëœbool ADM_vaEncodingContext::encode(ADM_vaSurface*, ADMBitstream*, ADM_vaEncodingBuffer*)ââ,¬â,,¢:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:168:9: erreur: ââ,¬ËœVAEncPictureParameterBufferH264ââ,¬â,,¢ was not declared in this scope
         VAEncPictureParameterBufferH264 pic_h264;
         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:168:41: erreur: expected ââ,¬Ëœ;ââ,¬â,,¢ before ââ,¬Ëœpic_h264ââ,¬â,,¢
         VAEncPictureParameterBufferH264 pic_h264;
                                         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:173:9: erreur: ââ,¬Ëœpic_h264ââ,¬â,,¢ was not declared in this scope
         pic_h264.reference_picture = internalSurface[toggle]->surface;
         ^
make[2]: *** [ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/ADM_coreLibVA.cpp.o] Erreur 1
make[1]: *** [ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/all] Erreur 2
make: *** [all] Erreur 2


Then I have applied the first part of the fix described on the Arch forum. It removes the I12learn's part of the error :
[ 80%] Building CXX object ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/ADM_coreLibVA.cpp.o
In file included from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:17:0:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/../include/ADM_coreLibVA.h:49:5: attention : ââ,¬Ëœtypedefââ,¬â,,¢ was ignored in this declaration [enabled by default]
     };
     ^
In file included from /tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA.cpp:982:0:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp: In member function ââ,¬Ëœbool ADM_vaEncodingContext::createExtraData()ââ,¬â,,¢:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:121:9: erreur: ââ,¬ËœVAEncSequenceParameterBufferH264ââ,¬â,,¢ was not declared in this scope
         VAEncSequenceParameterBufferH264 seq_h264 = {0};
         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:121:42: erreur: expected ââ,¬Ëœ;ââ,¬â,,¢ before ââ,¬Ëœseq_h264ââ,¬â,,¢
         VAEncSequenceParameterBufferH264 seq_h264 = {0};
                                          ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:124:13: erreur: ââ,¬Ëœseq_h264ââ,¬â,,¢ was not declared in this scope
             seq_h264.level_idc = 30;
             ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp: In member function ââ,¬Ëœbool ADM_vaEncodingContext::encode(ADM_vaSurface*, ADMBitstream*, ADM_vaEncodingBuffer*)ââ,¬â,,¢:
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:168:9: erreur: ââ,¬ËœVAEncPictureParameterBufferH264ââ,¬â,,¢ was not declared in this scope
         VAEncPictureParameterBufferH264 pic_h264;
         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:168:41: erreur: expected ââ,¬Ëœ;ââ,¬â,,¢ before ââ,¬Ëœpic_h264ââ,¬â,,¢
         VAEncPictureParameterBufferH264 pic_h264;
                                         ^
/tmp/yaourt-tmp-quentin/aur-avidemux-2.6-git/src/avidemux/avidemux_core/ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/ADM_coreLibVA_encoder.cpp:173:9: erreur: ââ,¬Ëœpic_h264ââ,¬â,,¢ was not declared in this scope
         pic_h264.reference_picture = internalSurface[toggle]->surface;
         ^
make[2]: *** [ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/ADM_coreLibVA.cpp.o] Erreur 1
make[1]: *** [ADM_coreVideoCodec/ADM_hwAccel/ADM_coreLibVA/src/CMakeFiles/ADM_coreLibVA6.dir/all] Erreur 2
make: *** [all] Erreur 2


Here is my vainfo :
[quentin@VaioLaptop aur-avidemux-2.6-git]$ vainfo
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_33
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.34 (libva 1.2.1)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG4Simple            : VAEntrypointVLD
      VAProfileMPEG4AdvancedSimple    : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointVLD
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD


Have you and idea for solving this ?
Thank you
Yama

mean

I added a check to see if libva is the expected version
Should compile now, but you wont have hw accelerated libva support

Yamashita Ren

Thank you, it compile now !
Th lack of hw accelerated libva support will not be a big problem.

I12learn

The arch package maintainer mentioned a patch and now it's compiling fine.
I've tested on a generic desktop with intel-dri and Asus uname -a
Linux Desktop 3.10.9-1-ARCH #1 SMP PREEMPT Wed Aug 21 13:49:35 CEST 2013 x86_64 GNU/Linux

and on an Asus G75VX.
Both flawlessly.