summaryrefslogtreecommitdiff
path: root/mozilla-1632059.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1632059.patch')
-rw-r--r--mozilla-1632059.patch41
1 files changed, 41 insertions, 0 deletions
diff --git a/mozilla-1632059.patch b/mozilla-1632059.patch
new file mode 100644
index 0000000..b051e98
--- /dev/null
+++ b/mozilla-1632059.patch
@@ -0,0 +1,41 @@
+diff --git a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+--- a/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
++++ b/dom/media/platforms/ffmpeg/FFmpegVideoDecoder.cpp
+@@ -178,7 +178,12 @@
+ AVHWDeviceContext* hwctx = (AVHWDeviceContext*)mVAAPIDeviceContext->data;
+ AVVAAPIDeviceContext* vactx = (AVVAAPIDeviceContext*)hwctx->hwctx;
+
+- mDisplay = mLib->vaGetDisplayWl(widget::WaylandDisplayGet()->GetDisplay());
++ wl_display* display = widget::WaylandDisplayGetWLDisplay();
++ if (!display) {
++ FFMPEG_LOG("Can't get default wayland display.");
++ return false;
++ }
++ mDisplay = mLib->vaGetDisplayWl(display);
+
+ hwctx->user_opaque = new VAAPIDisplayHolder(mLib, mDisplay);
+ hwctx->free = VAAPIDisplayReleaseCallback;
+diff --git a/widget/gtk/nsWaylandDisplay.cpp b/widget/gtk/nsWaylandDisplay.cpp
+--- a/widget/gtk/nsWaylandDisplay.cpp
++++ b/widget/gtk/nsWaylandDisplay.cpp
+@@ -35,6 +35,9 @@
+ wl_display* WaylandDisplayGetWLDisplay(GdkDisplay* aGdkDisplay) {
+ if (!aGdkDisplay) {
+ aGdkDisplay = gdk_display_get_default();
++ if (!aGdkDisplay || GDK_IS_X11_DISPLAY(aGdkDisplay)) {
++ return nullptr;
++ }
+ }
+
+ // Available as of GTK 3.8+
+@@ -537,8 +540,7 @@
+ StaticPrefs::widget_wayland_dmabuf_webgl_enabled();
+ }
+ bool nsWaylandDisplay::IsDMABufVAAPIEnabled() {
+- return IsDMABufEnabled() &&
+- StaticPrefs::widget_wayland_dmabuf_vaapi_enabled();
++ return StaticPrefs::widget_wayland_dmabuf_vaapi_enabled();
+ }
+
+ void* nsGbmLib::sGbmLibHandle = nullptr;
+
bgstack15