From 8b48de561b2e0d38282f0a15700a7a22a5bfe152 Mon Sep 17 00:00:00 2001 From: prlanzarin <4529051+prlanzarin@users.noreply.github.com> Date: Fri, 23 Jul 2021 02:15:12 +0000 Subject: [PATCH] fix(webcams): avoid leaving dangling HTMLMediaElements in paused state Should fix an issue with the recent Chrome 92 intervention that limits the number of concurrent WebMediaPlayers (an inner element of HTMLMediaElements) to 75/40. Webcam video elements were being left dangling in paused state despite the elements themselves being cleaned up from the component. That generated a skewed accounting of WebMediaPlayers in the session. --- .../ui/components/video-provider/component.jsx | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx index 410b992826..ba8df05b32 100755 --- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx @@ -787,7 +787,16 @@ class VideoProvider extends Component { } destroyVideoTag(stream) { - delete this.videoTags[stream] + const videoElement = this.videoTags[stream]; + + if (videoElement == null) return; + + if (typeof videoElement.pause === 'function') { + videoElement.pause(); + videoElement.srcObject = null; + } + + delete this.videoTags[stream]; } handlePlayStop(message) { -- GitLab