Repository: openmeetings
Updated Branches:
  refs/heads/master bdfbdc80a -> 4fe5705f1


[OPENMEETINGS-1785] video resize should work as expected


Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/4fe5705f
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/4fe5705f
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/4fe5705f

Branch: refs/heads/master
Commit: 4fe5705f16607b83f3f9cb572d4800663446691c
Parents: bdfbdc8
Author: Maxim Solodovnik <solomax...@gmail.com>
Authored: Fri Dec 22 18:00:11 2017 +0700
Committer: Maxim Solodovnik <solomax...@gmail.com>
Committed: Fri Dec 22 18:00:32 2017 +0700

----------------------------------------------------------------------
 .../core/remote/ScopeApplicationAdapter.java    | 12 +++++
 .../openmeetings/db/entity/basic/Client.java    |  3 ++
 .../db/entity/room/StreamClient.java            |  6 ++-
 .../flex/org/apache/openmeetings/OmVideo.as     | 54 ++++++++++----------
 .../apache/openmeetings/web/room/room-base.js   |  8 ++-
 5 files changed, 53 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4fe5705f/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
index 27f9e4b..8434faf 100644
--- 
a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
+++ 
b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ScopeApplicationAdapter.java
@@ -1006,4 +1006,16 @@ public class ScopeApplicationAdapter extends 
MultiThreadedApplicationAdapter imp
                Client cl = getApp().getOmClientBySid(c.getSid());
                return new CheckDto(cl);
        }
+
+       public void resize(Double width, Double height) {
+               if (width == null || height == null) {
+                       return;
+               }
+               IConnection current = Red5.getConnectionLocal();
+               StreamClient c = 
sessionManager.get(IClientUtil.getId(current.getClient()));
+               if (c == null) {
+                       return;
+               }
+               
sessionManager.update(c.setWidth(width.intValue()).setHeight(height.intValue()));
+       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4fe5705f/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
index 8781a7b..c73032d 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Client.java
@@ -414,6 +414,9 @@ public class Client implements IClient {
                boolean avFound = false;
                for (String _uid : streams) {
                        StreamClient rc = mgr.get(_uid);
+                       if (rc == null) {
+                               continue;
+                       }
                        Type t = rc.getType();
                        if (Type.room == t) {
                                avFound = true;

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4fe5705f/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
index 4731e69..2c5e9a6 100644
--- 
a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
+++ 
b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java
@@ -98,8 +98,9 @@ public class StreamClient implements IClient {
                return width;
        }
 
-       public void setWidth(int width) {
+       public StreamClient setWidth(int width) {
                this.width = width;
+               return this;
        }
 
        @Override
@@ -107,8 +108,9 @@ public class StreamClient implements IClient {
                return height;
        }
 
-       public void setHeight(int height) {
+       public StreamClient setHeight(int height) {
                this.height = height;
+               return this;
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4fe5705f/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
----------------------------------------------------------------------
diff --git 
a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as 
b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
index 7b4077b..3ba4ec1 100644
--- a/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
+++ b/openmeetings-flash/src/main/flex/org/apache/openmeetings/OmVideo.as
@@ -189,35 +189,37 @@ public class OmVideo {
                if (ns !== null){
                        reset();
                }
-               this.mode = _mode;
-               this.mic = _mic;
-               createStream();
+               nc.call("resize", new Responder(function ():void {
+                       this.mode = _mode;
+                       this.mic = _mic;
+                       createStream();
 
-               ns.publish(name, (mode === BROADCAST) ? LIVE : mode);
-               ns.attachCamera(cam);
-               attachCamera(cam);
-               if (cam !== null) {
-                       var videoStreamSettings:VideoStreamSettings = null;
-                       debug("codec = " + params.videoCodec);
-                       if (params.videoCodec === CODEC_H264) {
-                               var vss:H264VideoStreamSettings = new 
H264VideoStreamSettings();
-                               vss.setProfileLevel(H264Profile.BASELINE, 
H264Level.LEVEL_5_1);
-                               videoStreamSettings = vss;
-                       } else {
-                               videoStreamSettings = new VideoStreamSettings();
+                       ns.publish(name, (mode === BROADCAST) ? LIVE : mode);
+                       ns.attachCamera(cam);
+                       attachCamera(cam);
+                       if (cam !== null) {
+                               var videoStreamSettings:VideoStreamSettings = 
null;
+                               debug("codec = " + params.videoCodec);
+                               if (params.videoCodec === CODEC_H264) {
+                                       var vss:H264VideoStreamSettings = new 
H264VideoStreamSettings();
+                                       
vss.setProfileLevel(H264Profile.BASELINE, H264Level.LEVEL_5_1);
+                                       videoStreamSettings = vss;
+                               } else {
+                                       videoStreamSettings = new 
VideoStreamSettings();
+                               }
+                               videoStreamSettings.setQuality(cam.bandwidth, 
cam.quality);
+                               
videoStreamSettings.setKeyFrameInterval(cam.keyFrameInterval);
+                               debug("::camera settings ", 
cam.keyFrameInterval, cam.width, cam.height, cam.fps);
+                               videoStreamSettings.setMode(cam.width, 
cam.height, cam.fps);
+                               ns.videoStreamSettings = videoStreamSettings;
                        }
-                       videoStreamSettings.setQuality(cam.bandwidth, 
cam.quality);
-                       
videoStreamSettings.setKeyFrameInterval(cam.keyFrameInterval);
-                       debug("::camera settings ", cam.keyFrameInterval, 
cam.width, cam.height, cam.fps);
-                       videoStreamSettings.setMode(cam.width, cam.height, 
cam.fps);
-                       ns.videoStreamSettings = videoStreamSettings;
-               }
-               ns.attachAudio(mic);
-               _setVolume(volume);
+                       ns.attachAudio(mic);
+                       _setVolume(volume);
 
-               if (f !== null) {
-                       f.call();
-               }
+                       if (f !== null) {
+                               f.call();
+                       }
+               }), cam === null ? 0 : cam.width, cam === null ? 0 : 
cam.height);
        }
 
        private function _connect(_url:String, callback:Function):void {

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/4fe5705f/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
index e294017..c856ee0 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/room-base.js
@@ -342,12 +342,16 @@ var Video = (function() {
                }
        }
        function _refresh(_opts) {
-               if (swf[0].refresh !== undefined) {
+               if (typeof(swf[0].refresh) === 'function') {
                        const opts = _opts || {};
                        if (!Room.getOptions().interview && !isNaN(opts.width)) 
{
                                _resizeDlg(opts.width, opts.height);
                        }
-                       swf[0].refresh(opts);
+                       try {
+                               swf[0].refresh(opts);
+                       } catch (e) {
+                               //swf might throw
+                       }
                }
        }
        function _setRights(_r) {

Reply via email to