From de0b797836b38d7fa79249100853bafd136002e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Thu, 2 Dec 2021 10:44:52 -0500
Subject: [PATCH] sinkclient: add the ability to disable shm via libwrap

This allow to generate jamid for dbus usage and client-qt with
libwrap.

Change-Id: Ia23a0cec2efb4347166e0123c662da6c134c2238
GitLab: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1312
---
 src/media/video/sinkclient.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/media/video/sinkclient.cpp b/src/media/video/sinkclient.cpp
index 3b6aa8fa18..16b0ec343c 100644
--- a/src/media/video/sinkclient.cpp
+++ b/src/media/video/sinkclient.cpp
@@ -278,6 +278,9 @@ SinkClient::start() noexcept
 {
     if (not shm_) {
         try {
+            char* envvar = getenv("JAMI_DISABLE_SHM");
+            if (envvar) // Do not use SHM if set
+                return true;
             shm_ = std::make_shared<ShmHolder>();
             JAMI_DBG("[Sink:%p] Shared memory [%s] created", this, openedName().c_str());
         } catch (const std::runtime_error& e) {
@@ -379,7 +382,7 @@ SinkClient::update(Observable<std::shared_ptr<MediaFrame>>* /*obs*/,
         std::shared_ptr<VideoFrame> frame = std::make_shared<VideoFrame>();
 #ifdef RING_ACCEL
         auto desc = av_pix_fmt_desc_get(
-            (AVPixelFormat)(std::static_pointer_cast<VideoFrame>(frame_p))->format());
+            (AVPixelFormat) (std::static_pointer_cast<VideoFrame>(frame_p))->format());
         if (desc && (desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) {
             try {
                 frame = HardwareAccel::transferToMainMemory(*std::static_pointer_cast<VideoFrame>(
@@ -426,7 +429,8 @@ SinkClient::update(Observable<std::shared_ptr<MediaFrame>>* /*obs*/,
             return;
         }
 #if HAVE_SHM
-        shm_->renderFrame(*frame);
+        if (shm_)
+            shm_->renderFrame(*frame);
 #endif
         if (target_.pull) {
             int width = frame->width();
-- 
GitLab