Merge pull request #1308 from jitsi/ss_resize_remote

Fix for the size of remote desktop sharing videos
This commit is contained in:
yanas 2017-02-08 15:31:06 -06:00 committed by GitHub
commit 53e784094a
2 changed files with 20 additions and 4 deletions

View File

@ -23,6 +23,8 @@ export default class LargeVideoManager {
this.eventEmitter = emitter; this.eventEmitter = emitter;
this.state = VIDEO_CONTAINER_TYPE; this.state = VIDEO_CONTAINER_TYPE;
// FIXME: We are passing resizeContainer as parameter which is calling
// Container.resize. Probably there's better way to implement this.
this.videoContainer = new VideoContainer( this.videoContainer = new VideoContainer(
() => this.resizeContainer(VIDEO_CONTAINER_TYPE), emitter); () => this.resizeContainer(VIDEO_CONTAINER_TYPE), emitter);
this.addContainer(VIDEO_CONTAINER_TYPE, this.videoContainer); this.addContainer(VIDEO_CONTAINER_TYPE, this.videoContainer);

View File

@ -164,12 +164,20 @@ export class VideoContainer extends LargeContainer {
return getStreamOwnerId(this.stream); return getStreamOwnerId(this.stream);
} }
constructor (onPlay, emitter) { /**
* Creates new VideoContainer instance.
* @param resizeContainer {Function} function that takes care of the size
* of the video container.
* @param emitter {EventEmitter} the event emitter that will be used by
* this instance.
*/
constructor (resizeContainer, emitter) {
super(); super();
this.stream = null; this.stream = null;
this.videoType = null; this.videoType = null;
this.localFlipX = true; this.localFlipX = true;
this.emitter = emitter; this.emitter = emitter;
this.resizeContainer = resizeContainer;
this.isVisible = false; this.isVisible = false;
@ -199,8 +207,8 @@ export class VideoContainer extends LargeContainer {
this.avatarHeight = $("#dominantSpeakerAvatar").height(); this.avatarHeight = $("#dominantSpeakerAvatar").height();
var onPlayCallback = function (event) { var onPlayCallback = function (event) {
if (typeof onPlay === 'function') { if (typeof resizeContainer === 'function') {
onPlay(event); resizeContainer(event);
} }
this.wasVideoRendered = true; this.wasVideoRendered = true;
}.bind(this); }.bind(this);
@ -336,8 +344,14 @@ export class VideoContainer extends LargeContainer {
* @param {string} videoType video type * @param {string} videoType video type
*/ */
setStream (stream, videoType) { setStream (stream, videoType) {
if (this.stream === stream) { if (this.stream === stream) {
// Handles the use case for the remote participants when the
// videoType is received with delay after turning on/off the
// desktop sharing.
if(this.videoType !== videoType) {
this.videoType = videoType;
this.resizeContainer();
}
return; return;
} else { } else {
// The stream has changed, so the image will be lost on detach // The stream has changed, so the image will be lost on detach