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