From c5794217c7559746d918185fc2c4df4995fb78d7 Mon Sep 17 00:00:00 2001
From: Lucas Fialho Zawacki <lfzawacki@gmail.com>
Date: Wed, 13 Jun 2018 17:57:57 +0000
Subject: [PATCH] Remove old orientation code, add some configuration options
 for sfu

---
 .../ui/components/video-provider/component.jsx  | 12 ------------
 labs/bbb-webrtc-sfu/config/default.example.yml  |  3 +++
 .../lib/mcs-core/lib/constants/Constants.js     |  1 +
 .../lib/mcs-core/lib/media/media-server.js      |  1 -
 .../lib/mcs-core/lib/model/RecordingSession.js  |  4 ++--
 .../lib/screenshare/screenshare.js              |  6 ++++++
 labs/bbb-webrtc-sfu/lib/video/VideoManager.js   |  5 -----
 labs/bbb-webrtc-sfu/lib/video/video.js          | 17 +++--------------
 8 files changed, 15 insertions(+), 34 deletions(-)

diff --git a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
index 41b607ec9f..bd7bfda78d 100755
--- a/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/video-provider/component.jsx
@@ -90,16 +90,6 @@ class VideoProvider extends Component {
 
     this.pauseViewers = this.pauseViewers.bind(this);
     this.unpauseViewers = this.unpauseViewers.bind(this);
-    this.orientationChange = this.orientationChange.bind(this);
-  }
-
-  orientationChange () {
-    this.sendMessage({
-      cameraId: this.props.userId,
-      id: 'orientationChange',
-      type: 'video',
-      role: 'share'
-    });
   }
 
   _sendPauseStream (id, role, state) {
@@ -176,8 +166,6 @@ class VideoProvider extends Component {
     window.removeEventListener('online', this.openWs);
     window.removeEventListener('offline', this.onWsClose);
 
-    // window.removeEventListener('orientationchange', this.orientationChange);
-
     this.visibility.removeEventListeners();
 
     // Unshare user webcam
diff --git a/labs/bbb-webrtc-sfu/config/default.example.yml b/labs/bbb-webrtc-sfu/config/default.example.yml
index f985a000f1..790bbe06db 100644
--- a/labs/bbb-webrtc-sfu/config/default.example.yml
+++ b/labs/bbb-webrtc-sfu/config/default.example.yml
@@ -24,6 +24,9 @@ recordScreenSharing: true
 recordWebcams: false
 recordingBasePath: "file:///var/kurento"
 
+recordingMediaProfile: 'MP4_VIDEO_ONLY'
+recordingFormat: 'mkv'
+
 redisExpireTime: 1209600 # 14 days as per the akka keys
 
 log:
diff --git a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/constants/Constants.js b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/constants/Constants.js
index d8cbf07801..11f2226b27 100644
--- a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/constants/Constants.js
+++ b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/constants/Constants.js
@@ -24,6 +24,7 @@ exports.MEDIA_TYPE = {}
 exports.MEDIA_TYPE.WEBRTC = "WebRtcEndpoint"
 exports.MEDIA_TYPE.RTP= "RtpEndpoint"
 exports.MEDIA_TYPE.URI = "PlayerEndpoint"
+exports.MEDIA_TYPE.RECORDING = "RecorderEndpoint";
 
 // Media server state changes
 exports.EVENT = {}
diff --git a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/media/media-server.js b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/media/media-server.js
index 44cb207bb7..f3555a9b3a 100644
--- a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/media/media-server.js
+++ b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/media/media-server.js
@@ -450,7 +450,6 @@ module.exports = class MediaServer extends EventEmitter {
         this.addMediaEventListener(C.EVENT.RECORDING.STOPPED, elementId);
         this.addMediaEventListener(C.EVENT.RECORDING.PAUSED, elementId);
         this.addMediaEventListener(C.EVENT.RECORDING.STARTED. elementId);
-        this.addMediaEventListener(C.EVENT.MEDIA_STATE.CHANGED, elementId);
         this.addMediaEventListener(C.EVENT.MEDIA_STATE.FLOW_IN, elementId);
         this.addMediaEventListener(C.EVENT.MEDIA_STATE.FLOW_OUT, elementId);
         break;
diff --git a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/model/RecordingSession.js b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/model/RecordingSession.js
index 7832714886..a9bea76d37 100644
--- a/labs/bbb-webrtc-sfu/lib/mcs-core/lib/model/RecordingSession.js
+++ b/labs/bbb-webrtc-sfu/lib/mcs-core/lib/model/RecordingSession.js
@@ -12,7 +12,7 @@ module.exports = class RecordingSession extends MediaSession {
   constructor(emitter, room, recordingName) {
     let uri = RecordingSession.getRecordingPath(room, 'medium', recordingName);
     let options = {
-      mediaProfile: 'MP4_VIDEO_ONLY',
+      mediaProfile: config.get('recordingMediaProfile'),
       uri: uri,
       stopOnEndOfStream: true
     };
@@ -22,7 +22,7 @@ module.exports = class RecordingSession extends MediaSession {
   }
 
   static getRecordingPath (room, profile, recordingName) {
-    const format = 'mkv';
+    const format = config.get('recordingFormat');
     const basePath = config.get('recordingBasePath');
     const timestamp = (new Date()).getTime();
 
diff --git a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js
index 11778ae806..74eb9d4c8c 100644
--- a/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js
+++ b/labs/bbb-webrtc-sfu/lib/screenshare/screenshare.js
@@ -176,8 +176,14 @@ module.exports = class Screenshare extends EventEmitter {
     }
   }
 
+  recordingState(event) {
+    const msEvent = event.event;
+    Logger.info('[Recording]', msEvent.type, '[', msEvent.state, ']', 'for recording session', event.id, 'for screenshare', this.streamName);
+  }
+
   async startRecording() {
     this.recording = await this.mcs.startRecording(this.userId, this._presenterEndpoint, this._voiceBridge);
+    this.mcs.on('MediaEvent' + this.recording.recordingId, this.recordingState.bind(this));
     this.sendStartShareEvent();
   }
 
diff --git a/labs/bbb-webrtc-sfu/lib/video/VideoManager.js b/labs/bbb-webrtc-sfu/lib/video/VideoManager.js
index 53277556b2..9f8da2cf1f 100755
--- a/labs/bbb-webrtc-sfu/lib/video/VideoManager.js
+++ b/labs/bbb-webrtc-sfu/lib/video/VideoManager.js
@@ -112,11 +112,6 @@ module.exports = class VideoManager extends BaseManager {
         this._stopSession(sessionId);
         break;
 
-      case 'orientationChange':
-        if (video) {
-          video.orientationChange();
-        }
-
       case 'pause':
         if (video) {
           video.pause(message.state);
diff --git a/labs/bbb-webrtc-sfu/lib/video/video.js b/labs/bbb-webrtc-sfu/lib/video/video.js
index 261dff4a34..0a2924d0df 100644
--- a/labs/bbb-webrtc-sfu/lib/video/video.js
+++ b/labs/bbb-webrtc-sfu/lib/video/video.js
@@ -192,7 +192,6 @@ module.exports = class Video extends EventEmitter {
 
   async startRecording() {
     this.recording = await this.mcs.startRecording(this.userId, this.mediaId, this.id);
-
     this.mcs.on('MediaEvent' + this.recording.recordingId, this.recordingState.bind(this));
     this.sendStartShareEvent();
   }
@@ -203,8 +202,9 @@ module.exports = class Video extends EventEmitter {
     this.recording = {};
   }
 
-  recordingState(msEvent) {
-    Logger.info('----------- [RECORDING] ' + msEvent.type + '[' + msEvent.state + ']' + ' for recording session', event.id, "for video", this.streamName);
+  recordingState(event) {
+    const msEvent = event.event;
+    Logger.info('[Recording]', msEvent.type, '[', msEvent.state, ']', 'for recording session', event.id, 'for video', this.streamName);
   }
 
   async start (sdpOffer, callback) {
@@ -276,17 +276,6 @@ module.exports = class Video extends EventEmitter {
 
   }
 
-  async orientationChange () {
-    Logger.info("[video] Orientation change");
-    if (this.isRecorded) {
-      Logger.info("[video] Flipped the screen, restart recording");
-      await this.stopRecording();
-      await this.startRecording();
-    } else {
-      Logger.info("[video] Not recording do nothing");
-    }
-  }
-
   sendStartShareEvent() {
     let shareCamEvent = Messaging.generateWebRTCShareEvent('StartWebRTCShareEvent', this.meetingId, this.recording.filename);
     this.bbbGW.writeMeetingKey(this.meetingId, shareCamEvent, function(error) {});
-- 
GitLab