FTBS xbmc 12.0 and 12.1 with --enable-gles in VDPAU.h

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
jgmiller Offline
Junior Member
Posts: 6
Joined: Mar 2013
Reputation: 0
Post: #1
Operating System is Mint 14 Nadia (Ubuntu 12.10) and problem occurs on both i386 and x86_64

gcc (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2

For both xbmc 12.0 and the latest 12.1, if I use the configure flag --enable-gles, then compilation aborts with the error

CPP xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.o
In file included from DVDVideoCodecFFmpeg.cpp:51:0:
VDPAU.h:52:1: error: e[/code] before ‘{’ token
make[1]: *** [DVDVideoCodecFFmpeg.o] Error 1
make: *** [xbmc/cores/dvdplayer/DVDCodecs/Video/Video.a] Error 2

The complete list of flags being specified is

Code:
--enable-ffmpeg-libvorbis
--enable-gles          
--enable-goom            
--enable-pulse

If the --enable-gles flag is removed then compilation and building proceeds without any problem.

Should not xbmc build with --enable-gles?

Should this be reported as a bug?

The relevant code in VDPAU.h is

Code:
class CVDPAU
: public CDVDVideoCodecFFmpeg::IHardwareDecoder
, public IDispResource

where the ", public IDispResource" is the item on which gcc is failing.

So what class name should be specified here that appears to have been omitted?
(This post was last modified: 2013-03-21 23:16 by jgmiller.)
find quote
uNiversal Offline
Out of Memory
Posts: 5,262
Joined: Oct 2012
Reputation: 132
Location: Binary pulsar
Post: #2
Unless your on arm or similar platform you dont have gles,

uNi
find quote
jgmiller Offline
Junior Member
Posts: 6
Joined: Mar 2013
Reputation: 0
Post: #3
Thank you for the explanation.

I was under the mistaken impression that it was possible to compile with --enable-gles because of the presence of the packages

Code:
ii  libgles2-mesa:i386  9.0.2-0ubuntu0.1  i386  free implementation of the OpenGL|ES 2.x API -- runtime
ii  libgles2-mesa-dev   9.0.2-0ubuntu0.1  i386  free implementation of the OpenGL|ES 2.x API -- development files
find quote
uNiversal Offline
Out of Memory
Posts: 5,262
Joined: Oct 2012
Reputation: 132
Location: Binary pulsar
Post: #4
--enable-gl enable OpenGL rendering (default is yes) which doesn't need to be set for x86, gles not same thing at all IIRC

See 3rd link my signature.

uNi
(This post was last modified: 2013-03-23 01:34 by uNiversal.)
find quote
jgmiller Offline
Junior Member
Posts: 6
Joined: Mar 2013
Reputation: 0
Post: #5
(2013-03-23 01:33)uNiversal Wrote:  --enable-gl enable OpenGL rendering (default is yes) which doesn't need to be set for x86, gles not same thing at all IIRC

No, not the same thing, but is related to openGL.

Code:
--enable-gles           enable OpenGLES rendering (default is no)

The development package which is installed libgles2-mesa-dev is clearly the appropriate one required for --enable-gles

Quote: OpenGL for Embedded Systems (OpenGL ES)

free implementation of the OpenGL|ES 2.x API -- development files

OpenGL|ES is a cross-platform API for full-function 2D and 3D graphics on embedded systems - including
consoles, phones, appliances and vehicles. It contains a subset of OpenGL plus a number of extensions for the
special needs of embedded systems.

Now regardless of whether or not the underlying harware is GLES capable, if the appropriate development files and libraries are present, the source code should compile, even though the final binary will not be able to make use of the feature.

So the issue of the compilation error in VDPau.h remains.

CPP xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecFFmpeg.o
In file included from DVDVideoCodecFFmpeg.cpp:51:0:
VDPAU.h:52:1: error: expected class-name before ‘{’ token

(2013-03-23 01:33)uNiversal Wrote:  See 3rd link my signature.

A search of each of the three pages at that link finds no mention of "gles".
(This post was last modified: 2013-03-27 17:52 by jgmiller.)
find quote
uNiversal Offline
Out of Memory
Posts: 5,262
Joined: Oct 2012
Reputation: 132
Location: Binary pulsar
Post: #6
If your trying to cross compile I think your missing something that is not immediately obvious, try asking on a xbmc IRC channel, maybe you will get more luck.

I think you may need to pass the --host=whatever-platform-here along with the others, idk.

See this too http://forum.xbmc.org/showthread.php?tid=139816 and if cross compiling it is what you want to do then your definitely missing a great deal.

Why do you think enabling this is what you want? Its definetly not a bug, since I doubt that gles depends only on some random library when it depends on much more platform specific libraries to be present.

Anyway not an expert on cross compiles so refer to my first paragraph.

uNi
(This post was last modified: 2013-03-27 18:09 by uNiversal.)
find quote
spiff Offline
Retired Developer
Posts: 12,386
Joined: Nov 2003
Post: #7
you need to explicitly disable vdpau et al with gles. we dont do it in the buildsystem as anyone compiling for an es platform should have enough experience to read readmes and some day es + vdpau may be a valid combination.
find quote