From 8a8212904fcfdc059d55bf457a101c572b32b968 Mon Sep 17 00:00:00 2001 From: alussier-cullen <alexander.lussier-cullen@savoirfairelinux.com> Date: Tue, 18 Jul 2023 14:54:35 -0400 Subject: [PATCH] conference: prevent camera from opening on audio only conference creation GitLab: #875 Change-Id: I45955e7de7ba2dd2bf5d35d1e1ad7a943cade6e6 --- src/manager.cpp | 5 ++++- test/unitTest/call/conference.cpp | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/manager.cpp b/src/manager.cpp index 81f03376ee..4eeebe8e0d 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -1431,7 +1431,10 @@ Manager::joinParticipant(const std::string& accountId, return false; } - auto conf = std::make_shared<Conference>(account); + auto mediaAttr = call1->getMediaAttributeList(); + if (mediaAttr.empty()) + mediaAttr = call2->getMediaAttributeList(); + auto conf = std::make_shared<Conference>(account, "", true, mediaAttr); account->attach(conf); emitSignal<libjami::CallSignal::ConferenceCreated>(account->getAccountID(), conf->getConfId()); diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp index 178d87a8fd..46e3aeb3f5 100644 --- a/test/unitTest/call/conference.cpp +++ b/test/unitTest/call/conference.cpp @@ -859,9 +859,25 @@ void ConferenceTest::testAudioConferenceConfInfo() { registerSignalHandlers(); + auto aliceAccount = Manager::instance().getAccount<JamiAccount>(aliceId); + auto aliceUri = aliceAccount->getUsername(); startConference(true); + // Check that alice's video is muted + auto aliceVideoMuted = [&]() { + int result = 0; + std::lock_guard<std::mutex> lock(pInfosMtx_); + for (auto i = 0u; i < pInfos_.size(); ++i) { + if (pInfos_[i]["uri"].find(aliceUri) != std::string::npos + && pInfos_[i]["videoMuted"] == "true" + && pInfos_[i]["sinkId"] == "host_video_0") + result += 1; + } + return result; + }; + CPPUNIT_ASSERT(cv.wait_for(lk, 10s, [&] { return aliceVideoMuted() == 1; })); + libjami::unregisterSignalHandlers(); } -- GitLab