diff --git a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java index 067d9f22..d5383409 100644 --- a/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/SimplifiedLocalRecorder.java @@ -728,7 +728,7 @@ public class SimplifiedLocalRecorder implements Recorder { } private void tryRestartRecording(Model model) { - if (!running) { + if (!running || shuttingDown) { // recorder is not in recording state return; } diff --git a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java index 80a205da..c09f5ab7 100644 --- a/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java +++ b/common/src/main/java/ctbrec/recorder/download/hls/AbstractHlsDownload.java @@ -154,7 +154,7 @@ public abstract class AbstractHlsDownload extends AbstractDownload { model.delay(); stop(); } else { - rescheduleTime = beforeLastPlaylistRequest; // try again as fast as possible + rescheduleTime = Instant.now(); // try again as fast as possible } } catch (EOFException e) { // end of playlist reached @@ -422,6 +422,8 @@ public abstract class AbstractHlsDownload extends AbstractDownload { private void calculateRescheduleTime() { rescheduleTime = beforeLastPlaylistRequest.plusMillis(1000); + if (Instant.now().isAfter(rescheduleTime)) + rescheduleTime = Instant.now(); recordingEvents.add(RecordingEvent.of("next playlist download scheduled for " + rescheduleTime.toString())); }