|
@@ -618,6 +618,11 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
|
_logger.ErrorException("Error recording", ex);
|
|
_logger.ErrorException("Error recording", ex);
|
|
recording.Status = RecordingStatus.Error;
|
|
recording.Status = RecordingStatus.Error;
|
|
}
|
|
}
|
|
|
|
+ finally
|
|
|
|
+ {
|
|
|
|
+ CancellationTokenSource removed;
|
|
|
|
+ _activeRecordings.TryRemove(timer.Id, out removed);
|
|
|
|
+ }
|
|
|
|
|
|
recording.DateLastUpdated = DateTime.UtcNow;
|
|
recording.DateLastUpdated = DateTime.UtcNow;
|
|
_recordingProvider.Update(recording);
|
|
_recordingProvider.Update(recording);
|
|
@@ -627,15 +632,17 @@ namespace MediaBrowser.Server.Implementations.LiveTv.EmbyTV
|
|
OnSuccessfulRecording(recording);
|
|
OnSuccessfulRecording(recording);
|
|
_timerProvider.Delete(timer);
|
|
_timerProvider.Delete(timer);
|
|
}
|
|
}
|
|
- else
|
|
|
|
|
|
+ else if (DateTime.UtcNow < timer.EndDate)
|
|
{
|
|
{
|
|
- if (DateTime.UtcNow < timer.EndDate)
|
|
|
|
- {
|
|
|
|
- const int retryIntervalSeconds = 60;
|
|
|
|
- _logger.Info("Retrying recording in {0} seconds.", retryIntervalSeconds);
|
|
|
|
|
|
+ const int retryIntervalSeconds = 60;
|
|
|
|
+ _logger.Info("Retrying recording in {0} seconds.", retryIntervalSeconds);
|
|
|
|
|
|
- _timerProvider.StartTimer(timer, TimeSpan.FromSeconds(retryIntervalSeconds));
|
|
|
|
- }
|
|
|
|
|
|
+ _timerProvider.StartTimer(timer, TimeSpan.FromSeconds(retryIntervalSeconds));
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ _timerProvider.Delete(timer);
|
|
|
|
+ _recordingProvider.Delete(recording);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|