May 17, 2021, 02:14:42 PM

News:

--


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

July 15, 2013, 07:30:27 AM #2 Last Edit: July 15, 2013, 07:47:24 AM by I12learn
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

July 15, 2013, 09:56:22 AM #3 Last Edit: July 15, 2013, 09:59:43 AM by Jan Gruuthuse
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

August 26, 2013, 10:25:05 PM #5 Last Edit: August 26, 2013, 10:26:42 PM by Yamashita Ren
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.