<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hi,<br>
      <br>
      This is a common build error for building the qmlgl plugins and
      while the hack in ext/qt/gstqtgl.h is meant to help, obviously it
      does not for you.  If you can find a set up of #include's and
      defined that works on both the RPi and on a normal desktop linux
      without performing rpi specific hacks, then I'd be happy to review
      that patch.<br>
      <br>
      Cheers<br>
      -Matt<br>
      <br>
      On 22/11/19 3:19 am, Milian Wolff wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:4714867.q6SlZIlXqB@agathebauer">
      <pre class="moz-quote-pre" wrap="">Hey there,

when trying to cross compile gst-plugins-good-1.16.1 for a raspberry pi 3b+ I 
see the following compile errors:

```
make[4]: Entering directory '/path/to/gst-plugins-good-1.16.1/ext/qt'
  CXX      libgstqmlgl_la-qtitem.lo
In file included from gstqtgl.h:32,
                 from qtitem.h:27,
                 from qtitem.cc:28:
/path/to/sdk/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/path/to/sdk/
sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/usr/include/gstreamer-1.0/
gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
   ret (GSTGLAPI *name) args;
                 ^
/path/to/sdk/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/path/to/sdk/
sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/usr/include/gstreamer-1.0/
gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro 
‘GST_GL_EXT_FUNCTION’
 GST_GL_EXT_FUNCTION (GLsync, FenceSync,
 ^~~~~~~~~~~~~~~~~~~
/path/to/sdk/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/path/to/sdk/
sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/usr/include/gstreamer-1.0/
gst/gl/glprototypes/sync.h:29:39: error: ISO C++ forbids declaration of 
‘GLsync’ with no type [-fpermissive]
                       GLbitfield flags))
                                       ^
/path/to/sdk/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/path/to/sdk/
sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/usr/include/gstreamer-1.0/
gst/gl/gstglfuncs.h:93:24: note: in definition of macro ‘GST_GL_EXT_FUNCTION’
   ret (GSTGLAPI *name) args;
                        ^~~~
/path/to/sdk/sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/path/to/sdk/
sysroots/cortexa7t2hf-neon-vfpv4-poky-linux-gnueabi/usr/include/gstreamer-1.0/
gst/gl/glprototypes/sync.h:29:39: error: ‘GLsync’ declared as function 
returning a function
                       GLbitfield flags))
...
```

Note that this is using `include/gstreamer-1.0/gst/gl/glprototypes/
gstgl_gles2compat.h` which has no GLsync in it.

In the non-gles2 version of this header I see

```
#if !GST_GL_HAVE_GLSYNC
typedef gpointer GLsync;
#endif
```

Copying that over to the gles2 header doesn't fix it, and indeed that's 
probably due to the following hack in ext/qt/gstqtgl.h:

```
/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
 * type which confuses the preprocessor. Instead of trying to reconcile the
 * two, we instead use the GLsync definition from Qt from above, and ensure
 * that we don't typedef GLsync in gstglfuncs.h */
#include <gst/gl/gstglconfig.h>
#undef GST_GL_HAVE_GLSYNC
#define GST_GL_HAVE_GLSYNC 1
#include <gst/gl/gstglfuncs.h>
```

If I instead add the `typedef gpointer GLsync` forward without the macro check 
for GST_GL_HAVE_GLSYNC, then compilation succeeds.

So it seems my Qt 5.13.0 headers don't define GLsync anymore? Has anyone run 
into this and knows how to handle this issue correctly?

Thanks
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>