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