From cbdfe26dd1a1e976559b693a4e44bc2ba3398065 Mon Sep 17 00:00:00 2001 From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> Date: Tue, 14 Feb 2023 11:54:19 -0300 Subject: [PATCH] callmodel: keep only one shared source in call Change-Id: I561db4414c92419946cc1f7233979b1cf8841055 GitLab: #960 --- src/libclient/callmodel.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libclient/callmodel.cpp b/src/libclient/callmodel.cpp index c87311cf4..570cbe4ba 100644 --- a/src/libclient/callmodel.cpp +++ b/src/libclient/callmodel.cpp @@ -565,9 +565,13 @@ CallModel::addMedia(const QString& callId, const QString& source, MediaRequestTy for (auto& media : proposedList) { auto replace = media[MediaAttributeKey::MEDIA_TYPE] == MediaAttributeValue::VIDEO; // In a 1:1 we replace the first video, in a conference we replace only if it's a muted - // video as we show multiple previews - if (isConf) + // video or if a new sharing is requested + if (isConf) { replace &= media[MediaAttributeKey::MUTED] == TRUE_STR; + replace |= (media[MediaAttributeKey::SOURCE].startsWith(libjami::Media::VideoProtocolPrefix::FILE) + || media[MediaAttributeKey::SOURCE].startsWith(libjami::Media::VideoProtocolPrefix::DISPLAY)) + && (type == MediaRequestType::FILESHARING || type == MediaRequestType::SCREENSHARING); + } if (replace) { mediaAttribute[MediaAttributeKey::LABEL] = media[MediaAttributeKey::LABEL]; media = mediaAttribute; -- GitLab