diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a1097e26..aee41312 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -763,3 +763,7 @@ Reinhard Nissl Richard Robson for reporting freezing replay if a timer starts while in Transfer Mode from the device used by the timer, and the timer needs a different transponder + +Manfred Schmidt-Voigt + for reporting a problem with runnign out of disk space while cutting in case + there are still deleted recordings to remove diff --git a/HISTORY b/HISTORY index 5622eb70..1f2b7120 100644 --- a/HISTORY +++ b/HISTORY @@ -2283,7 +2283,7 @@ Video Disk Recorder Revision History or Makefile.config as defaults (thanks to Steffen Barszus). - Added the usual menu timeout to the CAM menus. -2003-08-16: Version 1.2.3 +2003-08-17: Version 1.2.3 - Fixed the TS to PES repacker so that it works with MPEG1 streams (thanks to Andreas Kool). @@ -2312,3 +2312,5 @@ Video Disk Recorder Revision History - Made the "Zap timeout" (the time until a channel counts as "previous" for switching with '0') a setup variable, available in "Setup/Miscellaneous" (suggested by Helmut Auer). +- Removing deleted recordings faster than normal when cutting, to avoid running + out of disk space (thanks to Manfred Schmidt-Voigt for reporting this one). diff --git a/cutter.c b/cutter.c index 01e460d6..dfad77e4 100644 --- a/cutter.c +++ b/cutter.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: cutter.c 1.4 2003/05/24 11:59:33 kls Exp $ + * $Id: cutter.c 1.5 2003/08/17 09:04:04 kls Exp $ */ #include "cutter.h" @@ -86,7 +86,7 @@ void cCuttingThread::Action(void) // Make sure there is enough disk space: - AssertFreeDiskSpace(); + AssertFreeDiskSpace(-1); // Read one frame: diff --git a/recording.c b/recording.c index 2e3676a3..bcbfd9f6 100644 --- a/recording.c +++ b/recording.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.c 1.81 2003/08/15 15:23:10 kls Exp $ + * $Id: recording.c 1.82 2003/08/17 09:10:46 kls Exp $ */ #include "recording.h" @@ -95,7 +95,8 @@ void AssertFreeDiskSpace(int Priority) // a file, or mark a file for removal ("delete" it), so that // it will get removed during the next call. static time_t LastFreeDiskCheck = 0; - if (time(NULL) - LastFreeDiskCheck > DISKCHECKDELTA) { + int Factor = (Priority == -1) ? 10 : 1; + if (time(NULL) - LastFreeDiskCheck > DISKCHECKDELTA / Factor) { if (!VideoFileSpaceAvailable(MINDISKSPACE)) { // Make sure only one instance of VDR does this: cLockFile LockFile(VideoDirectory); @@ -113,7 +114,7 @@ void AssertFreeDiskSpace(int Priority) r = Recordings.Next(r); } if (r0 && r0->Remove()) { - LastFreeDiskCheck += REMOVELATENCY; + LastFreeDiskCheck += REMOVELATENCY / Factor; return; } } diff --git a/recording.h b/recording.h index 82f2fcca..677e354b 100644 --- a/recording.h +++ b/recording.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.h 1.25 2002/10/19 15:48:52 kls Exp $ + * $Id: recording.h 1.26 2003/08/17 09:03:46 kls Exp $ */ #ifndef __RECORDING_H @@ -17,6 +17,8 @@ void RemoveDeletedRecordings(void); void AssertFreeDiskSpace(int Priority = 0); + ///< The special Priority value -1 means that we shall get rid of any + ///< deleted recordings faster than normal (because we're cutting). class cResumeFile { private: