From b6454b70a64cf9ed02ec9a98047670b58cdb5d48 Mon Sep 17 00:00:00 2001 From: Constantin Wartenburger Date: Mon, 14 Sep 2020 20:59:34 +0200 Subject: [PATCH] Only front camera is mirrored now --- CHANGES.md | 1 + .../vector/app/features/call/WebRtcPeerConnectionManager.kt | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index f7c7f9d044..c813a87db1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ Improvements 🙌: Bugfix 🐛: - Clear the notification when the event is read elsewhere (#1822) - Speakerphone is not used for ringback tone (#1644, #1645) + - Back camera preview is not mirrored anymore (#1776) Translations 🗣: - diff --git a/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt b/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt index b53be292c8..e3e686a45c 100644 --- a/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt +++ b/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt @@ -503,7 +503,7 @@ class WebRtcPeerConnectionManager @Inject constructor( // render local video in pip view localSurfaceRenderer.forEach { it.get()?.let { pipSurface -> - pipSurface.setMirror(true) + pipSurface.setMirror(this.cameraInUse?.type == CameraType.FRONT); // no need to check if already added, addSink is checking that currentCall?.localVideoTrack?.addSink(pipSurface) } @@ -740,6 +740,10 @@ class WebRtcPeerConnectionManager @Inject constructor( override fun onCameraSwitchDone(isFrontCamera: Boolean) { Timber.v("## VOIP onCameraSwitchDone isFront $isFrontCamera") cameraInUse = availableCamera.first { if (isFrontCamera) it.type == CameraType.FRONT else it.type == CameraType.BACK } + localSurfaceRenderer.forEach { + it.get()?.setMirror(isFrontCamera) + } + currentCallsListeners.forEach { tryThis { it.onCameraChange(this@WebRtcPeerConnectionManager) } }