From 42799127b044e57011c011bba134f6bdc6c8cf66 Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Wed, 5 Oct 2022 21:51:07 +0200 Subject: [PATCH] Fix h264 codec download popup. Fix Active Speaker display on pause/conference/cameraEnabled modes. - Need a fix on SDK for keeping old window id when stopping internal stream. Fix VPX build for M1. --- .../Linphone/Sticker/AvatarSticker.qml | 2 +- .../Linphone/Sticker/CameraSticker.qml | 1 + .../ui/modules/Linphone/Sticker/Sticker.qml | 1 + linphone-app/ui/scripts/Utils/utils.js | 5 +-- .../views/App/Calls/IncallActiveSpeaker.qml | 31 ++++++++++++++----- linphone-sdk | 2 +- 6 files changed, 31 insertions(+), 11 deletions(-) diff --git a/linphone-app/ui/modules/Linphone/Sticker/AvatarSticker.qml b/linphone-app/ui/modules/Linphone/Sticker/AvatarSticker.qml index df6e0849b..6ab7c46d4 100644 --- a/linphone-app/ui/modules/Linphone/Sticker/AvatarSticker.qml +++ b/linphone-app/ui/modules/Linphone/Sticker/AvatarSticker.qml @@ -17,7 +17,7 @@ DecorationSticker { property ParticipantDeviceModel currentDevice property CallModel callModel - property bool isPaused + property alias isPaused: avatar.isPaused property bool showCloseButton: false property bool showActiveSpeakerOverlay: true diff --git a/linphone-app/ui/modules/Linphone/Sticker/CameraSticker.qml b/linphone-app/ui/modules/Linphone/Sticker/CameraSticker.qml index ac7852927..167cee8c5 100644 --- a/linphone-app/ui/modules/Linphone/Sticker/CameraSticker.qml +++ b/linphone-app/ui/modules/Linphone/Sticker/CameraSticker.qml @@ -22,6 +22,7 @@ DecorationSticker{ property alias isFullscreen: camera.isFullscreen property alias isCameraFromDevice: camera.isCameraFromDevice property alias isReady: camera.isReady + property alias isVideoEnabled: camera.isVideoEnabled property bool showCloseButton: false property bool showActiveSpeakerOverlay: true property color color : CameraStickerStyle.cameraBackgroundColor diff --git a/linphone-app/ui/modules/Linphone/Sticker/Sticker.qml b/linphone-app/ui/modules/Linphone/Sticker/Sticker.qml index 42eb4b25b..1cd2bee2f 100644 --- a/linphone-app/ui/modules/Linphone/Sticker/Sticker.qml +++ b/linphone-app/ui/modules/Linphone/Sticker/Sticker.qml @@ -35,6 +35,7 @@ Item{ property alias showActiveSpeakerOverlay: camera.showActiveSpeakerOverlay property alias isCameraFromDevice: camera.isCameraFromDevice property alias deactivateCamera: camera.deactivateCamera + property alias isVideoEnabled: camera.isVideoEnabled property alias image: avatar.image property alias avatarBackgroundColor: avatar.avatarBackgroundColor diff --git a/linphone-app/ui/scripts/Utils/utils.js b/linphone-app/ui/scripts/Utils/utils.js index f971f7e3b..4cc604b09 100644 --- a/linphone-app/ui/scripts/Utils/utils.js +++ b/linphone-app/ui/scripts/Utils/utils.js @@ -24,6 +24,7 @@ .pragma library .import QtQuick 2.7 as QtQuick +.import Linphone 1.0 as Linphone .import 'port-tools.js' as PortTools .import 'uri-tools.js' as UriTools @@ -753,13 +754,13 @@ function computeAvatarSize (container, maxSize, ratio) { function openCodecOnlineInstallerDialog (window, codecInfo, cb) { var VideoCodecsModel = Linphone.VideoCodecsModel - window.attachVirtualWindow(buildLinphoneDialogUri('ConfirmDialog'), { + window.attachVirtualWindow(buildCommonDialogUri('ConfirmDialog'), { descriptionText: qsTr('downloadCodecDescription') .replace('%1', codecInfo.mime) .replace('%2', codecInfo.encoderDescription) }, function (status) { if (status) { - window.attachVirtualWindow(buildCommonDialogUri('OnlineInstallerDialog'), { + window.attachVirtualWindow(buildLinphoneDialogUri('OnlineInstallerDialog'), { downloadUrl: codecInfo.downloadUrl, extract: true, installFolder: VideoCodecsModel.codecsFolder, diff --git a/linphone-app/ui/views/App/Calls/IncallActiveSpeaker.qml b/linphone-app/ui/views/App/Calls/IncallActiveSpeaker.qml index 25345e99b..f5b29cc4b 100644 --- a/linphone-app/ui/views/App/Calls/IncallActiveSpeaker.qml +++ b/linphone-app/ui/views/App/Calls/IncallActiveSpeaker.qml @@ -40,9 +40,13 @@ Item { onConferenceCreated: cameraView.resetCamera() function updateCurrentDevice(){ - var device = getLastActiveSpeaking() - if(device) // Get - cameraView.currentDevice = device + if( callModel ){ + if( callModel.isConference) { + var device = getLastActiveSpeaking() + if(device) // Get + cameraView.currentDevice = device + } + } } onMeChanged: if(cameraView.isPreview) { cameraView.currentDevice = me @@ -56,16 +60,23 @@ Item { miniViews.model = [] } } - Sticker{ id: cameraView anchors.fill: parent anchors.leftMargin: isRightReducedLayout || isLeftReducedLayout? 30 : 140 anchors.rightMargin: isRightReducedLayout ? 10 : 140 callModel: mainItem.callModel - deactivateCamera: (callModel && callModel.pausedByUser) || !mainItem.cameraEnabled || (!callModel.isConference && currentDevice && !currentDevice.videoEnabled) + deactivateCamera: callModel.isConference + ? (callModel && (callModel.pausedByUser || callModel.status === CallModel.CallStatusPaused) ) + || (!callModel.cameraEnabled && mainItem.participantCount == 1) + || (currentDevice && !currentDevice.videoEnabled && mainItem.participantCount == 2) + : (callModel && (callModel.pausedByUser || callModel.status === CallModel.CallStatusPaused) ) + || currentDevice && !currentDevice.videoEnabled + isVideoEnabled: !deactivateCamera + onDeactivateCameraChanged: console.log("deactivateCamera? "+deactivateCamera) isPreview: mainItem.showMe && mainItem.participantCount == 1 onIsPreviewChanged: { + console.log("ispreview ? " +isPreview) if( isPreview){ currentDevice = allDevices.me cameraView.resetCamera() @@ -74,8 +85,13 @@ Item { cameraView.resetCamera() } isCameraFromDevice: isPreview + onCurrentDeviceChanged: console.log("CurrentDevice: "+currentDevice) + isPaused: callModel.isConference + ? callModel && callModel.pausedByUser && mainItem.participantCount != 2 + || (currentDevice && currentDevice.isPaused) + : callModel && !callModel.pausedByUser && (callModel.status === CallModel.CallStatusPaused) - isPaused: (callModel && callModel.pausedByUser) || (currentDevice && currentDevice.isPaused) //callModel.pausedByUser + onIsPausedChanged: console.log("ispaused ? " +isPaused + " = " +callModel.pausedByUser + " / " + (currentDevice ? currentDevice.isPaused : 'noDevice') +" / " +callModel.isConference + " / " +callModel.status ) quickTransition: true showCloseButton: false showActiveSpeakerOverlay: false // This is an active speaker. We don't need to show the indicator. @@ -102,7 +118,8 @@ Item { Sticker{ id: previewSticker deactivateCamera: !mainItem.callModel || !mainItem.showMe || !mainItem.callModel.cameraEnabled - //onDeactivateCameraChanged: console.log(deactivateCamera + " = " +mainItem.callModel +" / " +mainItem.showMe +" / " +mainItem.callModel.localVideoEnabled) + //|| ( (callModel.isConference && !mainItem.callModel.cameraEnabled) || (!callModel.isConference && !mainItem.callModel.localVideoEnabled) ) + onDeactivateCameraChanged: console.log(deactivateCamera + " = " +mainItem.callModel +" / " +mainItem.showMe +" / " +mainItem.callModel.localVideoEnabled + " / " +mainItem.callModel.cameraEnabled) currentDevice: allDevices.me isPreview: true callModel: mainItem.callModel diff --git a/linphone-sdk b/linphone-sdk index 3d12b0566..ba15d5d18 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 3d12b0566b28082bedf77ca54d7547536cc633fc +Subproject commit ba15d5d1862543b073d878c77b5c91babfe6abf4