Various update on video conference

This commit is contained in:
Christophe Deschamps 2022-05-10 10:07:23 +02:00
parent 3bdab389f1
commit cf9cfe7b35
10 changed files with 40 additions and 1 deletions

View file

@ -495,6 +495,11 @@ static int check_should_migrate_images(void *data, int argc, char **argv, char *
linphone_account_set_params(account, newAccountParams);
}
}
if (strcmp(appDomain.UTF8String, linphone_account_params_get_domain(newAccountParams)) == 0 && !linphone_account_params_rtp_bundle_enabled(newAccountParams)) {
linphone_account_params_enable_rtp_bundle(newAccountParams, true);
linphone_account_set_params(account,newAccountParams);
}
linphone_account_params_unref(newAccountParams);
accounts = accounts->next;
@ -1197,6 +1202,8 @@ static void linphone_iphone_is_composing_received(LinphoneCore *lc, LinphoneChat
[NSNotificationCenter.defaultCenter postNotificationName:kLinphoneCoreUpdate
object:LinphoneManager.instance
userInfo:dict];
}
static BOOL libStarted = FALSE;

View file

@ -275,6 +275,7 @@ import AVFoundation
if (isConference) {
lcallParams.videoEnabled = true
lcallParams.videoDirection = ConferenceWaitingRoomViewModel.sharedModel.isVideoEnabled.value == true ? .SendRecv : .RecvOnly
lcallParams.conferenceVideoLayout = ConferenceWaitingRoomViewModel.sharedModel.joinLayout.value!
} else {
lcallParams.videoEnabled = isVideo
}

View file

@ -39,6 +39,14 @@ extension UIView {
return self
}
func makeHeightMatchWidth() -> UIView {
snp.makeConstraints { (make) in
make.height.equalTo(snp.width)
}
return self
}
func size(w:CGFloat,h:CGFloat) -> UIView {
snp.makeConstraints { (make) in
make.width.equalTo(w)

View file

@ -42,17 +42,23 @@ class VoipActiveSpeakerParticipantCell: UICollectionViewCell {
var participantData: ConferenceParticipantDeviceData? = nil {
didSet {
if let data = participantData {
data.isInConference.clearObservers()
data.isInConference.readCurrentAndObserve { (isIn) in
self.updateBackground()
self.pause.isHidden = isIn == true
self.pauseLabel.isHidden = self.pause.isHidden
self.videoView.isHidden = data.videoEnabled.value != true
self.switchCamera.isHidden = data.videoEnabled.value != true || !data.isSwitchCameraAvailable()
}
data.videoEnabled.clearObservers()
data.videoEnabled.readCurrentAndObserve { (videoEnabled) in
self.updateBackground()
if (videoEnabled == true) {
self.videoView.isHidden = false
data.setVideoView(view: self.videoView)
self.avatar.isHidden = true
} else {
self.videoView.isHidden = true
self.avatar.isHidden = false
}
self.switchCamera.isHidden = videoEnabled != true || !data.isSwitchCameraAvailable()
@ -63,6 +69,14 @@ class VoipActiveSpeakerParticipantCell: UICollectionViewCell {
self.displayName.text = displayName
}
}
data.activeSpeaker.clearObservers()
data.activeSpeaker.readCurrentAndObserve { (active) in
if (active == true) {
self.layer.borderWidth = 2
} else {
self.layer.borderWidth = 0
}
}
}
}
}
@ -85,6 +99,7 @@ class VoipActiveSpeakerParticipantCell: UICollectionViewCell {
super.init(frame:.zero)
layer.cornerRadius = corner_radius
clipsToBounds = true
layer.borderColor = VoipTheme.primary_color.cgColor
contentView.addSubview(videoView)
videoView.matchParentDimmensions().done()
@ -113,6 +128,7 @@ class VoipActiveSpeakerParticipantCell: UICollectionViewCell {
pauseLabel.toRightOf(displayName).alignParentBottom(withMargin:ActiveCallView.bottom_displayname_margin_bottom).done()
contentView.matchParentDimmensions().done()
makeHeightMatchWidth().done()
}
required init?(coder: NSCoder) {

View file

@ -84,7 +84,7 @@ class VoipGridParticipantCell: UICollectionViewCell {
}
}
}
func updateBackground() {
if let data = participantData {
if (data.isInConference.value != true) {

View file

@ -11,6 +11,7 @@
<entry name="reg_sendregister" overwrite="true">1</entry>
<entry name="refkey" overwrite="true"></entry>
<entry name="realm" overwrite="true"></entry>
<entry name="rtp_bundle" overwrite="true">0</entry>
</section>

View file

@ -16,7 +16,9 @@
<entry name="nat_policy_ref" overwrite="true">nat_policy_default_values</entry>
<entry name="push_notification_allowed" overwrite="true">1</entry>
<entry name="remote_push_notification_allowed" overwrite="true">1</entry>
<entry name="rtp_bundle" overwrite="true">1</entry>
<entry name="conference_factory_uri" overwrite="true">sip:conference-factory@sip.linphone.org</entry>
<entry name="audio_video_conference_factory_uri" overwrite="true">sip:videoconference-factory2@sip.linphone.org</entry>
</section>
<section name="nat_policy_default_values">

View file

@ -16,7 +16,9 @@
<entry name="nat_policy_ref" overwrite="true">nat_policy_default_values</entry>
<entry name="push_notification_allowed" overwrite="true">1</entry>
<entry name="remote_push_notification_allowed" overwrite="true">1</entry>
<entry name="rtp_bundle" overwrite="true">1</entry>
<entry name="conference_factory_uri" overwrite="true">sip:conference-factory@sip.linphone.org</entry>
<entry name="audio_video_conference_factory_uri" overwrite="true">sip:videoconference-factory2@sip.linphone.org</entry>
</section>
<section name="nat_policy_default_values">

View file

@ -52,6 +52,7 @@ reg_expires=1314000
file_transfer_server_url=https://www.linphone.org:444/lft.php
real_early_media=1
prefer_basic_chat_room=-1
conference_layout=1
[net]
edge_bw=10

View file

@ -36,6 +36,7 @@ linphone_specs=groupchat,lime
version_check_url_root=https://download.linphone.org/releases
prefer_basic_chat_room=-1
[sound]
eq_location=mic