GNOME Bugzilla – Bug 794589
viv-fb: Include gstglfuncs.h to fix cross compilation errors
Last modified: 2018-03-22 07:52:36 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 .
Created attachment 369994 [details] [review] gstglfuncs.h inclusion patch
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