From c23f738673e6a9c6cda74391275498bdb0fa6fd3 Mon Sep 17 00:00:00 2001 From: Alexis Brodeur Date: Sun, 3 Dec 2023 17:02:23 -0500 Subject: [PATCH] screencopy: Enable support for BGR888 shared memory buffers (#143) This simply adds the cases to the conversion functions. The rest of the code needs no change from screen and window capture to work as expected. --- src/shared/ScreencopyShared.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/shared/ScreencopyShared.cpp b/src/shared/ScreencopyShared.cpp index e68f6f9..0e06675 100644 --- a/src/shared/ScreencopyShared.cpp +++ b/src/shared/ScreencopyShared.cpp @@ -154,7 +154,8 @@ uint32_t drmFourccFromSHM(wl_shm_format format) { case WL_SHM_FORMAT_ARGB2101010: case WL_SHM_FORMAT_ABGR2101010: case WL_SHM_FORMAT_RGBA1010102: - case WL_SHM_FORMAT_BGRA1010102: return (uint32_t)format; + case WL_SHM_FORMAT_BGRA1010102: + case WL_SHM_FORMAT_BGR888: return (uint32_t)format; default: Debug::log(ERR, "[screencopy] Unknown format {}", (int)format); abort(); } } @@ -178,6 +179,7 @@ spa_video_format pwFromDrmFourcc(uint32_t format) { case DRM_FORMAT_ABGR2101010: return SPA_VIDEO_FORMAT_ABGR_210LE; case DRM_FORMAT_RGBA1010102: return SPA_VIDEO_FORMAT_RGBA_102LE; case DRM_FORMAT_BGRA1010102: return SPA_VIDEO_FORMAT_BGRA_102LE; + case DRM_FORMAT_BGR888: return SPA_VIDEO_FORMAT_BGR; default: Debug::log(ERR, "[screencopy] Unknown format {}", (int)format); abort(); } }