After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 794589 - viv-fb: Include gstglfuncs.h to fix cross compilation errors
viv-fb: Include gstglfuncs.h to fix cross compilation errors
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 1.15.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2018-03-22 06:55 UTC by Carlos Rafael Giani
Modified: 2018-03-22 07:52 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gstglfuncs.h inclusion patch (1.51 KB, patch)
2018-03-22 06:57 UTC, Carlos Rafael Giani
committed Details | Review

Description Carlos Rafael Giani 2018-03-22 06:55:22 UTC
Currently, trying to build gst-plugins-base 1.14.0 in Yocto produces these compilation errors:


gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c: In function 'draw_cb':
gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c:180:7: error: dereferencing pointer to incomplete type 'GstGLFuncs {aka const struct _GstGLFuncs}'
     gl->GetIntegerv (GL_VIEWPORT, viewport_dim);
       ^~
gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c:180:22: error: 'GL_VIEWPORT' undeclared (first use in this function); did you mean 'EGL_VENDOR'?
     gl->GetIntegerv (GL_VIEWPORT, viewport_dim);
                      ^~~~~~~~~~~
                      EGL_VENDOR
gst-libs/gst/gl/viv-fb/gstglwindow_viv_fb_egl.c:180:22: note: each undeclared identifier is reported only once for each function it appears in


and:

gst-libs/gst/gl/gstglupload.c:1234:28: error: unknown type name 'GLenum'; did you mean 'enum'?
   void (*TexDirectVIVMap) (GLenum Target, GLsizei Width, GLsizei Height,
                            ^~~~~~
                            enum
gst-libs/gst/gl/gstglupload.c:1234:43: error: unknown type name 'GLsizei'; did you mean 'gsize'?
   void (*TexDirectVIVMap) (GLenum Target, GLsizei Width, GLsizei Height,
                                           ^~~~~~~
                                           gsize
gst-libs/gst/gl/gstglupload.c:1234:58: error: unknown type name 'GLsizei'; did you mean 'gsize'?
   void (*TexDirectVIVMap) (GLenum Target, GLsizei Width, GLsizei Height,
                                                          ^~~~~~~
                                                          gsize
gst-libs/gst/gl/gstglupload.c:1235:7: error: unknown type name 'GLenum'; did you mean 'enum'?
       GLenum Format, GLvoid ** Logical, const GLuint * Physical);
       ^~~~~~
       enum
gst-libs/gst/gl/gstglupload.c:1235:22: error: unknown type name 'GLvoid'; did you mean 'void'?
       GLenum Format, GLvoid ** Logical, const GLuint * Physical);
                      ^~~~~~
                      void
gst-libs/gst/gl/gstglupload.c:1235:47: error: unknown type name 'GLuint'
       GLenum Format, GLvoid ** Logical, const GLuint * Physical);
                                               ^~~~~~
gst-libs/gst/gl/gstglupload.c:1236:35: error: unknown type name 'GLenum'; did you mean 'enum'?
   void (*TexDirectInvalidateVIV) (GLenum Target);
                                   ^~~~~~
                                   enum
gst-libs/gst/gl/gstglupload.c: In function '_directviv_upload_load_functions_gl_thread':
gst-libs/gst/gl/gstglupload.c:1294:12: error: 'struct DirectVIVUpload' has no member named 'TexDirectVIVMap'
   directviv->TexDirectVIVMap =
            ^~
gst-libs/gst/gl/gstglupload.c:1296:12: error: 'struct DirectVIVUpload' has no member named 'TexDirectInvalidateVIV'
   directviv->TexDirectInvalidateVIV =
            ^~
gst-libs/gst/gl/gstglupload.c: In function '_directviv_upload_accept':
gst-libs/gst/gl/gstglupload.c:1309:50: error: 'struct DirectVIVUpload' has no member named 'TexDirectInvalidateVIV'
   if (!directviv->loaded_functions && (!directviv->TexDirectInvalidateVIV ||
                                                  ^~
gst-libs/gst/gl/gstglupload.c:1310:21: error: 'struct DirectVIVUpload' has no member named 'TexDirectVIVMap'
           !directviv->TexDirectVIVMap)) {
                     ^~
gst-libs/gst/gl/gstglupload.c:1316:17: error: 'struct DirectVIVUpload' has no member named 'TexDirectInvalidateVIV'
   if (!directviv->TexDirectInvalidateVIV || !directviv->TexDirectVIVMap)
                 ^~
gst-libs/gst/gl/gstglupload.c:1316:55: error: 'struct DirectVIVUpload' has no member named 'TexDirectVIVMap'
   if (!directviv->TexDirectInvalidateVIV || !directviv->TexDirectVIVMap)
                                                       ^~
gst-libs/gst/gl/gstglupload.c: At top level:
gst-libs/gst/gl/gstglupload.c:1348:8: error: unknown type name 'GLenum'
 static GLenum
        ^~~~~~
gst-libs/gst/gl/gstglupload.c: In function '_directviv_upload_video_format_to_gl_format':
gst-libs/gst/gl/gstglupload.c:1365:14: error: 'GL_RGB565' undeclared (first use in this function); did you mean 'GST_GL_RGB565'?
       return GL_RGB565;
              ^~~~~~~~~
              GST_GL_RGB565
gst-libs/gst/gl/gstglupload.c:1365:14: note: each undeclared identifier is reported only once for each function it appears in
gst-libs/gst/gl/gstglupload.c:1367:14: error: 'GL_RGBA' undeclared (first use in this function); did you mean 'GL_RGB565'?
       return GL_RGBA;
              ^~~~~~~
              GL_RGB565
gst-libs/gst/gl/gstglupload.c: In function '_directviv_upload_perform_gl_thread':
gst-libs/gst/gl/gstglupload.c:1472:5: error: dereferencing pointer to incomplete type 'GstGLFuncs {aka const struct _GstGLFuncs}'
   gl->BindTexture (GL_TEXTURE_2D, out_gl_mem->tex_id);
     ^~
gst-libs/gst/gl/gstglupload.c:1472:20: error: 'GL_TEXTURE_2D' undeclared (first use in this function)
   gl->BindTexture (GL_TEXTURE_2D, out_gl_mem->tex_id);
                    ^~~~~~~~~~~~~
gst-libs/gst/gl/gstglupload.c:1473:12: error: 'struct DirectVIVUpload' has no member named 'TexDirectVIVMap'
   directviv->TexDirectVIVMap (GL_TEXTURE_2D, width, height,
            ^~
gst-libs/gst/gl/gstglupload.c:1475:12: error: 'struct DirectVIVUpload' has no member named 'TexDirectInvalidateVIV'
   directviv->TexDirectInvalidateVIV (GL_TEXTURE_2D);
            ^~


Fix this by including gstglfuncs.h in glupload.c and gstglwindow_viv_fb_egl.c .
Comment 1 Carlos Rafael Giani 2018-03-22 06:57:16 UTC
Created attachment 369994 [details] [review]
gstglfuncs.h inclusion patch
Comment 2 Sebastian Dröge (slomo) 2018-03-22 07:52:19 UTC
commit 9ce1e4e71262a66d5fb01aaff60cd7e7f63d17d3 (HEAD -> master)
Author: Carlos Rafael Giani <dv@pseudoterminal.org>
Date:   Thu Mar 22 07:56:28 2018 +0100

    viv-fb: Include gstglfuncs.h to fix cross compilation errors
    
    https://bugzilla.gnome.org/show_bug.cgi?id=794589