mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: seal stopped metadata file before posting CDR/Webhook event
parent
b1836df20b
commit
401fc3d7fa
|
@ -119,10 +119,7 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService
|
|||
|
||||
recording = updateRecordingAttributes(recording);
|
||||
|
||||
final String folderPath = this.openviduConfig.getOpenViduRecordingPath() + recording.getId() + "/";
|
||||
final String metadataFilePath = folderPath + RecordingManager.RECORDING_ENTITY_FILE + recording.getId();
|
||||
this.sealRecordingMetadataFileAsReady(recording, recording.getSize(), recording.getDuration(),
|
||||
metadataFilePath);
|
||||
this.sealRecordingMetadataFileAsReady(recording, recording.getSize(), recording.getDuration(), getMetadataFilePath(recording));
|
||||
cleanRecordingMaps(recording);
|
||||
|
||||
final long timestamp = System.currentTimeMillis();
|
||||
|
|
|
@ -103,7 +103,6 @@ public class ComposedRecordingService extends RecordingService {
|
|||
|
||||
@Override
|
||||
public Recording stopRecording(Session session, Recording recording, EndReason reason) {
|
||||
recording = this.sealRecordingMetadataFileAsStopped(recording);
|
||||
if (recording.hasVideo()) {
|
||||
return this.stopRecordingWithVideo(session, recording, reason);
|
||||
} else {
|
||||
|
@ -297,10 +296,8 @@ public class ComposedRecordingService extends RecordingService {
|
|||
stopAndRemoveRecordingContainer(recording, containerId, 30);
|
||||
recording = updateRecordingAttributes(recording);
|
||||
|
||||
final String folderPath = this.openviduConfig.getOpenViduRecordingPath() + recording.getId() + "/";
|
||||
final String metadataFilePath = folderPath + RecordingManager.RECORDING_ENTITY_FILE + recording.getId();
|
||||
this.sealRecordingMetadataFileAsReady(recording, recording.getSize(), recording.getDuration(),
|
||||
metadataFilePath);
|
||||
getMetadataFilePath(recording));
|
||||
cleanRecordingMaps(recording);
|
||||
|
||||
final long timestamp = System.currentTimeMillis();
|
||||
|
|
|
@ -310,6 +310,8 @@ public class RecordingManager {
|
|||
recording = this.sessionsRecordings.get(session.getSessionId());
|
||||
}
|
||||
|
||||
recording = ((RecordingService) singleStreamRecordingService).sealRecordingMetadataFileAsStopped(recording);
|
||||
|
||||
final long timestamp = System.currentTimeMillis();
|
||||
this.cdr.recordRecordingStatusChanged(recording, reason, timestamp, Status.stopped);
|
||||
cdr.recordRecordingStopped(recording, reason, timestamp);
|
||||
|
|
|
@ -175,6 +175,10 @@ public abstract class RecordingService {
|
|||
protected OpenViduException failStartRecording(Session session, Recording recording, String errorMessage) {
|
||||
log.error("Recording start failed for session {}: {}", session.getSessionId(), errorMessage);
|
||||
recording.setStatus(io.openvidu.java.client.Recording.Status.failed);
|
||||
|
||||
sealRecordingMetadataFileAsReady(recording, recording.getSize(), recording.getDuration(),
|
||||
getMetadataFilePath(recording));
|
||||
|
||||
this.recordingManager.startingRecordings.remove(recording.getId());
|
||||
this.recordingManager.sessionsRecordingsStarting.remove(session.getSessionId());
|
||||
this.stopRecording(session, recording, null);
|
||||
|
@ -186,6 +190,11 @@ public abstract class RecordingService {
|
|||
this.recordingManager.startedRecordings.remove(recording.getId());
|
||||
}
|
||||
|
||||
protected String getMetadataFilePath(Recording recording) {
|
||||
final String folderPath = this.openviduConfig.getOpenViduRecordingPath() + recording.getId() + "/";
|
||||
return folderPath + RecordingManager.RECORDING_ENTITY_FILE + recording.getId();
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple wrapper for returning update RecordingProperties and a free
|
||||
* recordingId when starting a new recording
|
||||
|
|
|
@ -139,7 +139,6 @@ public class SingleStreamRecordingService extends RecordingService {
|
|||
|
||||
@Override
|
||||
public Recording stopRecording(Session session, Recording recording, EndReason reason) {
|
||||
recording = this.sealRecordingMetadataFileAsStopped(recording);
|
||||
return this.stopRecording(session, recording, reason, 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue