[Webkit-unassigned] [Bug 191998] New: [GTK] -DENABLE_VIDEO=ON -DENABLE_OPENGL=OFF still tries to build GstreamerGL

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Nov 27 00:08:01 PST 2018


https://bugs.webkit.org/show_bug.cgi?id=191998

            Bug ID: 191998
           Summary: [GTK] -DENABLE_VIDEO=ON -DENABLE_OPENGL=OFF still
                    tries to build GstreamerGL
           Product: WebKit
           Version: WebKit Local Build
          Hardware: PC
                OS: Linux
            Status: NEW
          Keywords: Gtk
          Severity: Normal
          Priority: P3
         Component: WebKit Gtk
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: leio at gentoo.org
                CC: bugs-noreply at webkitgtk.org

It appears that if trying to build with gstreamer but without GL, GstreamerGL is still somehow enabled (despite apparent efforts in the build system to conditionalize GstreamerGL on GL), leading to build failures:

-o Source/WebCore/CMakeFiles/WebCore.dir/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp.o -c /var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp
In file included from /usr/include/glib-2.0/gobject/gobject.h:24,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/gstreamer-1.0/gst/gstenumtypes.h:7,
                 from /usr/include/gstreamer-1.0/gst/gst.h:31,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.h:24,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:24,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:28,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:26:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: In member function ‘bool WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext()’:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:527:144: error: ‘WTF::match_constness<WebCore::PlatformDisplay, WebCore::PlatformDisplayWayland>::type’ {aka ‘class WebCore::PlatformDisplayWayland’} has no member named ‘eglDisplay’; did you mean ‘m_display’?
                 m_glDisplay = adoptGRef(GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(downcast<PlatformDisplayWayland>(sharedDisplay).eglDisplay())));
                                                                                                                                                ^~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:527:56: error: ‘gst_gl_display_egl_new_with_egl_display’ was not declared in this scope
                 m_glDisplay = adoptGRef(GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(downcast<PlatformDisplayWayland>(sharedDisplay).eglDisplay())));
                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:527:56: note: suggested alternative: ‘gst_gl_display_get_gl_api’
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:529:134: error: ‘WTF::match_constness<WebCore::PlatformDisplay, WebCore::PlatformDisplayWayland>::type’ {aka ‘class WebCore::PlatformDisplayWayland’} has no member named ‘eglDisplay’; did you mean ‘m_display’?
                 m_glDisplay = GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(downcast<PlatformDisplayWayland>(sharedDisplay).eglDisplay()));
                                                                                                                                      ^~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:529:46: error: ‘gst_gl_display_egl_new_with_egl_display’ was not declared in this scope
                 m_glDisplay = GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(downcast<PlatformDisplayWayland>(sharedDisplay).eglDisplay()));
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:529:46: note: suggested alternative: ‘gst_gl_display_get_gl_api’
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:545:46: error: ‘class WebCore::PlatformDisplay’ has no member named ‘sharingGLContext’
     GLContext* webkitContext = sharedDisplay.sharingGLContext();
                                              ^~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:557:62: error: ‘class WebCore::GLContext’ has no member named ‘platformContext’; did you mean ‘_vptr.GLContext’?
     PlatformGraphicsContext3D contextHandle = webkitContext->platformContext();
                                                              ^~~~~~~~~~~~~~~
                                                              _vptr.GLContext
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:562:134: error: ‘glAPI’ was not declared in this scope
         m_glContext = adoptGRef(gst_gl_context_new_wrapped(m_glDisplay.get(), reinterpret_cast<guintptr>(contextHandle), glPlatform, glAPI));
                                                                                                                                      ^~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:562:134: note: suggested alternative: ‘GLAPI’
         m_glContext = adoptGRef(gst_gl_context_new_wrapped(m_glDisplay.get(), reinterpret_cast<guintptr>(contextHandle), glPlatform, glAPI));
                                                                                                                                      ^~~~~
                                                                                                                                      GLAPI
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:564:124: error: ‘glAPI’ was not declared in this scope
         m_glContext = gst_gl_context_new_wrapped(m_glDisplay.get(), reinterpret_cast<guintptr>(contextHandle), glPlatform, glAPI);
                                                                                                                            ^~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:564:124: note: suggested alternative: ‘GLAPI’
         m_glContext = gst_gl_context_new_wrapped(m_glDisplay.get(), reinterpret_cast<guintptr>(contextHandle), glPlatform, glAPI);
                                                                                                                            ^~~~~
                                                                                                                            GLAPI
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: In member function ‘void WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer()’:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:930:12: error: ‘TextureMapperPlatformLayerProxy’ has not been declared
         [](TextureMapperPlatformLayerProxy& proxy)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: In lambda function:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:932:37: error: request for member ‘lock’ in ‘proxy’, which is of non-class type ‘int’
             LockHolder locker(proxy.lock());
                                     ^~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:934:23: error: request for member ‘isActive’ in ‘proxy’, which is of non-class type ‘int’
             if (proxy.isActive())
                       ^~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:935:23: error: request for member ‘dropCurrentBufferWhilePreservingTexture’ in ‘proxy’, which is of non-class type ‘int’
                 proxy.dropCurrentBufferWhilePreservingTexture();
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: In member function ‘void WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer()’:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:941:21: error: ‘m_platformLayerProxy’ was not declared in this scope
     proxyOperation(*m_platformLayerProxy);
                     ^~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:941:21: note: suggested alternative: ‘platformLayer’
     proxyOperation(*m_platformLayerProxy);
                     ^~~~~~~~~~~~~~~~~~~~
                     platformLayer
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: In member function ‘virtual bool WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture(WebCore::GraphicsContext3D*, Platform3DObject, GC3Denum, GC3Dint, GC3Denum, GC3Denum, GC3Denum, bool, bool)’:
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:21: error: ‘GstVideoFrameHolder’ was not declared in this scope
     std::unique_ptr<GstVideoFrameHolder> frameHolder = std::make_unique<GstVideoFrameHolder>(m_sample.get(), texMapFlagFromOrientation(m_videoSourceOrientation), true);
                     ^~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:21: note: suggested alternative: ‘GstVideoFrameFlags’
     std::unique_ptr<GstVideoFrameHolder> frameHolder = std::make_unique<GstVideoFrameHolder>(m_sample.get(), texMapFlagFromOrientation(m_videoSourceOrientation), true);
                     ^~~~~~~~~~~~~~~~~~~
                     GstVideoFrameFlags
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:40: error: template argument 1 is invalid
     std::unique_ptr<GstVideoFrameHolder> frameHolder = std::make_unique<GstVideoFrameHolder>(m_sample.get(), texMapFlagFromOrientation(m_videoSourceOrientation), true);
                                        ^
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:40: error: template argument 2 is invalid
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:110: error: ‘texMapFlagFromOrientation’ was not declared in this scope
     std::unique_ptr<GstVideoFrameHolder> frameHolder = std::make_unique<GstVideoFrameHolder>(m_sample.get(), texMapFlagFromOrientation(m_videoSourceOrientation), true);
                                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:990:110: note: suggested alternative: ‘DefaultImageOrientation’
     std::unique_ptr<GstVideoFrameHolder> frameHolder = std::make_unique<GstVideoFrameHolder>(m_sample.get(), texMapFlagFromOrientation(m_videoSourceOrientation), true);
                                                                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                                              DefaultImageOrientation
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:992:33: error: base operand of ‘->’ is not a pointer
     auto textureID = frameHolder->textureID();
                                 ^~
/var/tmp/portage/net-libs/webkit-gtk-2.22.4/work/webkitgtk-2.22.4/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:996:28: error: base operand of ‘->’ is not a pointer
     auto size = frameHolder->size();
                            ^~


There's a
if (DEFINED ENABLE_OPENGL)
  WEBKIT_OPTION_DEPEND(USE_GSTREAMER_GL ENABLE_OPENGL)
endif ()

but this part appears to still fail.

I happened to be building with EGL still enabled (with GL disabled), so it's not from EGL being disabling, either.
Though maybe there are some missing checks about EGL too, if it's needed for window creation for gstreamer code; I believe lack of EGL currently only errors out for when wayland and/or gles2 are enabled, but might be mistaken.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20181127/6f75a9a0/attachment-0001.html>


More information about the webkit-unassigned mailing list