From 0116f547ed8dcf033c29d4db8cb6e4b583470a08 Mon Sep 17 00:00:00 2001 From: paweldomas Date: Tue, 26 Apr 2016 15:40:57 -0500 Subject: [PATCH 1/2] Log an error when not an audio nor a video track is added --- conference.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conference.js b/conference.js index f046e0191..85036ddb0 100644 --- a/conference.js +++ b/conference.js @@ -557,6 +557,9 @@ export default { this.useAudioStream(track); } else if (track.isVideoTrack()) { this.useVideoStream(track); + } else { + console.error( + "Ignored not an audio nor a video track: ", track); } }); roomLocker = createRoomLocker(room); From f2c9b8b7a5dcfc7affcb8fbe225e1981f44051a6 Mon Sep 17 00:00:00 2001 From: paweldomas Date: Tue, 26 Apr 2016 15:42:18 -0500 Subject: [PATCH 2/2] Fix issue updating large video 'src' while on stage --- modules/UI/videolayout/LargeVideo.js | 10 +++++++++- modules/UI/videolayout/VideoLayout.js | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/UI/videolayout/LargeVideo.js b/modules/UI/videolayout/LargeVideo.js index dc4ed19cf..351a2b0f3 100644 --- a/modules/UI/videolayout/LargeVideo.js +++ b/modules/UI/videolayout/LargeVideo.js @@ -446,7 +446,15 @@ export default class LargeVideoManager { let container = this.getContainer(this.state); - container.hide().then(() => { + // Include hide()/fadeOut only if we're switching between users + let preUpdate; + if (this.newStreamData.id != this.id) { + preUpdate = container.hide(); + } else { + preUpdate = Promise.resolve(); + } + + preUpdate.then(() => { let {id, stream, videoType, resolve} = this.newStreamData; this.newStreamData = null; diff --git a/modules/UI/videolayout/VideoLayout.js b/modules/UI/videolayout/VideoLayout.js index 7c94da9db..d31674e6f 100644 --- a/modules/UI/videolayout/VideoLayout.js +++ b/modules/UI/videolayout/VideoLayout.js @@ -404,7 +404,11 @@ var VideoLayout = { this.isLargeContainerTypeVisible(VIDEO_CONTAINER_TYPE)) || pinnedId === resourceJid || (!pinnedId && resourceJid && - currentDominantSpeaker === resourceJid)) { + currentDominantSpeaker === resourceJid) || + /* Playback started while we're on the stage - may need to update + video source with the new stream */ + this.isCurrentlyOnLarge(resourceJid)) { + this.updateLargeVideo(resourceJid, true); } },