haikuwebkit/Source/cmake/GStreamerDependencies.cmake

4 lines
182 B
CMake
Raw Permalink Normal View History

WEBKIT_OPTION_DEPEND(USE_GSTREAMER_GL ENABLE_VIDEO)
WEBKIT_OPTION_DEPEND(USE_GSTREAMER_MPEGTS ENABLE_VIDEO)
[GStreamer][WPE] Client-side video rendering support https://bugs.webkit.org/show_bug.cgi?id=206289 Patch by Philippe Normand <philn@igalia.com> on 2020-01-16 Reviewed by Xabier Rodriguez-Calvar. .: Add a new compile-time option to enable client-side video rendering support. With this feature enabled the UIProcess will be in charge of positioning and rendering video surfaces, thanks to the WPEBackend-FDO video-plane-display-dmabuf protocol. * Source/cmake/GStreamerDefinitions.cmake: Add USE_WPE_VIDEO_PLANE_DISPLAY_DMABUF CMake option, disabled by default. * Source/cmake/GStreamerDependencies.cmake: This new option depends on GStreamer-GL. * Source/cmake/OptionsWPE.cmake: It depends also on the presence of the WPEBackend-FDO library. Source/WebCore: With the WPE_VIDEO_PLANE_DISPLAY_DMABUF option enabled the player will render a transparent placeholder for videos, using the HolePunch code path. Then it is up to the UIProcess to listen to the incoming video dmabufs and render them. This allows the browser to use Wayland protocols related with Protection (HDCP, for instance). * PlatformWPE.cmake: * platform/graphics/gstreamer/GRefPtrGStreamer.cpp: (WTF::adoptGRef): (WTF::refGPtr<GstEGLImage>): (WTF::derefGPtr<GstEGLImage>): * platform/graphics/gstreamer/GRefPtrGStreamer.h: * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::GstVideoFrameHolder::GstVideoFrameHolder): (WebCore::GstVideoFrameHolder::handoffVideoDmaBuf): (WebCore::GstVideoFrameHolder::waitForCPUSync): (WebCore::GstVideoFrameHolder::updateTexture): (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): (WebCore::MediaPlayerPrivateGStreamer::didEnd): (WebCore::GStreamerDMABufHolePunchClient::GStreamerDMABufHolePunchClient): (WebCore::MediaPlayerPrivateGStreamer::pushTextureToCompositor): * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Tools: * wpe/jhbuild.modules: Bump to libwpe and wpebackend-fdo git snapshots, until 1.5.x releases are published. Canonical link: https://commits.webkit.org/219432@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2020-01-16 15:57:34 +00:00
WEBKIT_OPTION_DEPEND(USE_WPE_VIDEO_PLANE_DISPLAY_DMABUF USE_GSTREAMER_GL)