mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: disable KurentoClient remote operations for stopping INDIVIDUAL recording upon media server reconnection
parent
a7332aac70
commit
ada73560d6
|
@ -300,8 +300,19 @@ public class KurentoSession extends Session {
|
|||
|
||||
// Stop recording if session is being recorded
|
||||
if (recordingManager.sessionIsBeingRecorded(this.sessionId)) {
|
||||
if (recordingManager.sessionIsBeingRecordedIndividual(this.sessionId)) {
|
||||
// Disable KurentoClient RecorderEndpoint operations
|
||||
try {
|
||||
RemoteOperationUtils.setToSkipRemoteOperations();
|
||||
this.recordingManager.forceStopRecording(this, EndReason.mediaServerReconnect,
|
||||
kmsDisconnectionTime);
|
||||
} finally {
|
||||
RemoteOperationUtils.revertToRunRemoteOperations();
|
||||
}
|
||||
} else {
|
||||
this.recordingManager.forceStopRecording(this, EndReason.mediaServerReconnect, kmsDisconnectionTime);
|
||||
}
|
||||
}
|
||||
|
||||
// Store MediaOptions for resetting PublisherEndpoints later
|
||||
Map<String, MediaOptions> mediaOptionsMap = new HashMap<>();
|
||||
|
|
|
@ -381,8 +381,7 @@ public class RecordingManager {
|
|||
}
|
||||
|
||||
public Recording forceStopRecording(Session session, EndReason reason, Long kmsDisconnectionTime) {
|
||||
Recording recording;
|
||||
recording = this.sessionsRecordings.get(session.getSessionId());
|
||||
Recording recording = this.sessionsRecordings.get(session.getSessionId());
|
||||
|
||||
((RecordingService) singleStreamRecordingService).sealRecordingMetadataFileAsStopped(recording);
|
||||
final long timestamp = System.currentTimeMillis();
|
||||
|
@ -493,6 +492,18 @@ public class RecordingManager {
|
|||
|| this.sessionsRecordingsStarting.get(sessionId) != null);
|
||||
}
|
||||
|
||||
public boolean sessionIsBeingRecordedIndividual(String sessionId) {
|
||||
if (!sessionIsBeingRecorded(sessionId)) {
|
||||
return false;
|
||||
} else {
|
||||
Recording recording = this.sessionsRecordings.get(sessionId);
|
||||
if (recording == null) {
|
||||
recording = this.sessionsRecordingsStarting.get(sessionId);
|
||||
}
|
||||
return OutputMode.INDIVIDUAL.equals(recording.getOutputMode());
|
||||
}
|
||||
}
|
||||
|
||||
public Recording getStartedRecording(String recordingId) {
|
||||
return this.startedRecordings.get(recordingId);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue