diff options
Diffstat (limited to 'mozilla-1632059.patch')
-rw-r--r-- | mozilla-1632059.patch | 41 |
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; + |