From a0b37e9d1a4e029480b657781796cbf4d08c57b2 Mon Sep 17 00:00:00 2001 From: Philippe Normand Date: Sat, 22 May 2021 18:05:18 +0100 Subject: wpe: Bump wpebackend-fdo version requirement to 1.8 Debian bullseye has this version already, and this allows us to get rid of many ifdefs. The mouse scroll handling is actually functional now as well. Part-of: --- ext/wpe/WPEThreadedView.cpp | 47 ++------------------------------------------- ext/wpe/WPEThreadedView.h | 12 ------------ ext/wpe/gstwpesrcbin.cpp | 2 -- ext/wpe/gstwpevideosrc.cpp | 24 +---------------------- ext/wpe/meson.build | 2 +- 5 files changed, 4 insertions(+), 83 deletions(-) (limited to 'ext') diff --git a/ext/wpe/WPEThreadedView.cpp b/ext/wpe/WPEThreadedView.cpp index 43161ccda..586faf7f4 100644 --- a/ext/wpe/WPEThreadedView.cpp +++ b/ext/wpe/WPEThreadedView.cpp @@ -33,21 +33,11 @@ #include #include -#if ENABLE_SHM_BUFFER_SUPPORT #include -#endif GST_DEBUG_CATEGORY_EXTERN (wpe_view_debug); #define GST_CAT_DEFAULT wpe_view_debug -#if defined(WPE_FDO_CHECK_VERSION) && WPE_FDO_CHECK_VERSION(1, 3, 0) -#define USE_DEPRECATED_FDO_EGL_IMAGE 0 -#define WPE_GLIB_SOURCE_PRIORITY G_PRIORITY_DEFAULT -#else -#define USE_DEPRECATED_FDO_EGL_IMAGE 1 -#define WPE_GLIB_SOURCE_PRIORITY -70 -#endif - class GMutexHolder { public: GMutexHolder(GMutex& mutex) @@ -122,7 +112,7 @@ void WPEContextThread::dispatch(Function func) g_cond_signal(&view.threading.cond); return G_SOURCE_REMOVE; }, &payload, nullptr); - g_source_set_priority(source, WPE_GLIB_SOURCE_PRIORITY); + g_source_set_priority(source, G_PRIORITY_DEFAULT); { GMutexHolder lock(threading.mutex); @@ -309,9 +299,7 @@ WPEView* WPEContextThread::createWPEView(GstWpeVideoSrc* src, GstGLContext* cont static std::once_flag s_loaderFlag; std::call_once(s_loaderFlag, [] { -#if defined(WPE_BACKEND_CHECK_VERSION) && WPE_BACKEND_CHECK_VERSION(1, 2, 0) wpe_loader_init("libWPEBackend-fdo-1.0.so"); -#endif }); WPEView* view = nullptr; @@ -419,12 +407,8 @@ WPEView::WPEView(WebKitWebContext* web_context, GstWpeVideoSrc* src, GstGLContex m_isValid = wpe_fdo_initialize_for_egl_display(eglDisplay); GST_DEBUG("FDO EGL display initialisation result: %d", m_isValid); } else { -#if ENABLE_SHM_BUFFER_SUPPORT m_isValid = wpe_fdo_initialize_shm(); GST_DEBUG("FDO SHM initialisation result: %d", m_isValid); -#else - GST_WARNING("FDO SHM support is available only in WPEBackend-FDO 1.7.0"); -#endif } if (!m_isValid) return; @@ -432,16 +416,12 @@ WPEView::WPEView(WebKitWebContext* web_context, GstWpeVideoSrc* src, GstGLContex if (gst.display_egl) { wpe.exportable = wpe_view_backend_exportable_fdo_egl_create(&s_exportableEGLClient, this, wpe.width, wpe.height); } else { -#if ENABLE_SHM_BUFFER_SUPPORT wpe.exportable = wpe_view_backend_exportable_fdo_create(&s_exportableClient, this, wpe.width, wpe.height); -#endif } auto* wpeViewBackend = wpe_view_backend_exportable_fdo_get_view_backend(wpe.exportable); auto* viewBackend = webkit_web_view_backend_new(wpeViewBackend, (GDestroyNotify) wpe_view_backend_exportable_fdo_destroy, wpe.exportable); -#if defined(WPE_BACKEND_CHECK_VERSION) && WPE_BACKEND_CHECK_VERSION(1, 1, 0) wpe_view_backend_add_activity_state(wpeViewBackend, wpe_view_activity_state_visible | wpe_view_activity_state_focused | wpe_view_activity_state_in_window); -#endif webkit.view = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, "web-context", web_context, @@ -693,13 +673,8 @@ void WPEView::releaseImage(gpointer imagePointer) { s_view->dispatch([&]() { GST_TRACE("Dispatch release exported image %p", imagePointer); -#if USE_DEPRECATED_FDO_EGL_IMAGE - wpe_view_backend_exportable_fdo_egl_dispatch_release_image(wpe.exportable, - static_cast(imagePointer)); -#else wpe_view_backend_exportable_fdo_egl_dispatch_release_exported_image(wpe.exportable, static_cast(imagePointer)); -#endif }); } @@ -713,12 +688,7 @@ void WPEView::handleExportedImage(gpointer image) ImageContext* imageContext = g_slice_new(ImageContext); imageContext->view = this; imageContext->image = static_cast(image); - EGLImageKHR eglImage; -#if USE_DEPRECATED_FDO_EGL_IMAGE - eglImage = static_cast(image); -#else - eglImage = wpe_fdo_egl_exported_image_get_egl_image(static_cast(image)); -#endif + EGLImageKHR eglImage = wpe_fdo_egl_exported_image_get_egl_image(static_cast(image)); auto* gstImage = gst_egl_image_new_wrapped(gst.context, eglImage, GST_GL_RGBA, imageContext, s_releaseImage); { @@ -732,7 +702,6 @@ void WPEView::handleExportedImage(gpointer image) } } -#if ENABLE_SHM_BUFFER_SUPPORT struct SHMBufferContext { WPEView* view; struct wpe_fdo_shm_exported_buffer* buffer; @@ -789,17 +758,8 @@ void WPEView::handleExportedBuffer(struct wpe_fdo_shm_exported_buffer* buffer) notifyLoadFinished(); } } -#endif struct wpe_view_backend_exportable_fdo_egl_client WPEView::s_exportableEGLClient = { -#if USE_DEPRECATED_FDO_EGL_IMAGE - // export_egl_image - [](void* data, EGLImageKHR image) { - auto& view = *static_cast(data); - view.handleExportedImage(static_cast(image)); - }, - nullptr, nullptr, -#else // export_egl_image nullptr, [](void* data, struct wpe_fdo_egl_exported_image* image) { @@ -807,12 +767,10 @@ struct wpe_view_backend_exportable_fdo_egl_client WPEView::s_exportableEGLClient view.handleExportedImage(static_cast(image)); }, nullptr, -#endif // USE_DEPRECATED_FDO_EGL_IMAGE // padding nullptr, nullptr }; -#if ENABLE_SHM_BUFFER_SUPPORT struct wpe_view_backend_exportable_fdo_client WPEView::s_exportableClient = { nullptr, nullptr, @@ -824,7 +782,6 @@ struct wpe_view_backend_exportable_fdo_client WPEView::s_exportableClient = { nullptr, nullptr, }; -#endif void WPEView::s_releaseImage(GstEGLImage* image, gpointer data) { diff --git a/ext/wpe/WPEThreadedView.h b/ext/wpe/WPEThreadedView.h index bb58b9372..bc126d13c 100644 --- a/ext/wpe/WPEThreadedView.h +++ b/ext/wpe/WPEThreadedView.h @@ -32,12 +32,6 @@ typedef struct _GstGLContext GstGLContext; typedef struct _GstGLDisplay GstGLDisplay; typedef struct _GstEGLImage GstEGLImage; -#if defined(WPE_FDO_CHECK_VERSION) && WPE_FDO_CHECK_VERSION(1, 7, 0) -#define ENABLE_SHM_BUFFER_SUPPORT 1 -#else -#define ENABLE_SHM_BUFFER_SUPPORT 0 -#endif - class WPEView { public: WPEView(WebKitWebContext*, GstWpeVideoSrc*, GstGLContext*, GstGLDisplay*, int width, int height); @@ -65,9 +59,7 @@ public: protected: void handleExportedImage(gpointer); -#if ENABLE_SHM_BUFFER_SUPPORT void handleExportedBuffer(struct wpe_fdo_shm_exported_buffer*); -#endif private: struct wpe_view_backend* backend() const; @@ -76,10 +68,8 @@ private: void notifyLoadFinished(); void releaseImage(gpointer); -#if ENABLE_SHM_BUFFER_SUPPORT void releaseSHMBuffer(gpointer); static void s_releaseSHMBuffer(gpointer); -#endif struct { GstGLContext* context; @@ -88,9 +78,7 @@ private: } gst { nullptr, nullptr, nullptr }; static struct wpe_view_backend_exportable_fdo_egl_client s_exportableEGLClient; -#if ENABLE_SHM_BUFFER_SUPPORT static struct wpe_view_backend_exportable_fdo_client s_exportableClient; -#endif static void s_releaseImage(GstEGLImage*, gpointer); struct { diff --git a/ext/wpe/gstwpesrcbin.cpp b/ext/wpe/gstwpesrcbin.cpp index 169f8ab0c..e29621b59 100644 --- a/ext/wpe/gstwpesrcbin.cpp +++ b/ext/wpe/gstwpesrcbin.cpp @@ -179,14 +179,12 @@ GST_STATIC_PAD_TEMPLATE ("video", GST_PAD_SRC, GST_PAD_SOMETIMES, "framerate = " GST_VIDEO_FPS_RANGE ", " "pixel-aspect-ratio = (fraction)1/1," "texture-target = (string)2D" -#if ENABLE_SHM_BUFFER_SUPPORT "; video/x-raw, " "format = (string) BGRA, " "width = " GST_VIDEO_SIZE_RANGE ", " "height = " GST_VIDEO_SIZE_RANGE ", " "framerate = " GST_VIDEO_FPS_RANGE ", " "pixel-aspect-ratio = (fraction)1/1" -#endif )); /** diff --git a/ext/wpe/gstwpevideosrc.cpp b/ext/wpe/gstwpevideosrc.cpp index 6a7ffe3a1..3868ee949 100644 --- a/ext/wpe/gstwpevideosrc.cpp +++ b/ext/wpe/gstwpevideosrc.cpp @@ -137,16 +137,12 @@ struct _GstWpeVideoSrc #define gst_wpe_video_src_parent_class parent_class G_DEFINE_TYPE(GstWpeVideoSrc, gst_wpe_video_src, GST_TYPE_GL_BASE_SRC); -#if ENABLE_SHM_BUFFER_SUPPORT #define WPE_RAW_CAPS "; video/x-raw, " \ "format = (string) BGRA, " \ "width = " GST_VIDEO_SIZE_RANGE ", " \ "height = " GST_VIDEO_SIZE_RANGE ", " \ "framerate = " GST_VIDEO_FPS_RANGE ", " \ "pixel-aspect-ratio = (fraction)1/1" -#else -#define WPE_RAW_CAPS "" -#endif #define WPE_BASIC_CAPS "video/x-raw(memory:GLMemory), " \ "format = (string) RGBA, " \ @@ -588,23 +584,6 @@ gst_wpe_video_src_event (GstPad * pad, GstObject * parent, GstEvent * event) case GST_NAVIGATION_EVENT_MOUSE_SCROLL: if (gst_navigation_event_parse_mouse_scroll_event (event, &x, &y, &delta_x, &delta_y)) { -#if WPE_CHECK_VERSION(1, 6, 0) - struct wpe_input_axis_2d_event wpe_event; - if (delta_x) { - wpe_event.x_axis = delta_x; - } else { - wpe_event.y_axis = delta_y; - } - wpe_event.base.time = - GST_TIME_AS_MSECONDS (GST_EVENT_TIMESTAMP (event)); - wpe_event.base.type = - static_cast < wpe_input_axis_event_type > - (wpe_input_axis_event_type_mask_2d | - wpe_input_axis_event_type_motion_smooth); - wpe_event.base.x = (int) x; - wpe_event.base.y = (int) y; - src->view->dispatchAxisEvent (wpe_event.base); -#else struct wpe_input_axis_event wpe_event; if (delta_x) { wpe_event.axis = 1; @@ -618,7 +597,6 @@ gst_wpe_video_src_event (GstPad * pad, GstObject * parent, GstEvent * event) wpe_event.x = (int) x; wpe_event.y = (int) y; src->view->dispatchAxisEvent (wpe_event); -#endif ret = TRUE; } break; @@ -734,4 +712,4 @@ gst_wpe_video_src_class_init (GstWpeVideoSrcClass * klass) static_cast < GSignalFlags > (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), G_CALLBACK (gst_wpe_video_src_load_bytes), NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_BYTES); -} \ No newline at end of file +} diff --git a/ext/wpe/meson.build b/ext/wpe/meson.build index 62474a5e2..580b8f405 100644 --- a/ext/wpe/meson.build +++ b/ext/wpe/meson.build @@ -7,7 +7,7 @@ if not gstgl_dep.found() endif wpe_dep = dependency('wpe-webkit-1.0', version : '>= 2.28', required : get_option('wpe')) -wpe_fdo_dep = dependency('wpebackend-fdo-1.0', required : get_option('wpe')) +wpe_fdo_dep = dependency('wpebackend-fdo-1.0', version : '>= 1.8', required : get_option('wpe')) egl_dep = dependency('egl', required : get_option('wpe')) xkbcommon_dep = dependency('xkbcommon', version : '>= 0.8', required : get_option('wpe')) wl_server_dep = dependency('wayland-server', required : get_option('wpe')) -- cgit v1.2.1