42 lines
1.5 KiB
Diff
42 lines
1.5 KiB
Diff
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;
|
|
|