mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Changed cRecorder::Action() to use cTimeMs instead of time()
This commit is contained in:
parent
c8d77e241f
commit
ddce16326c
@ -3011,6 +3011,8 @@ Torsten Lang <info@torstenlang.de>
|
||||
for reporting a problem with setting the system time from the TDT in case devices
|
||||
are tuned to the same transponder on different sources, and these broadcast different
|
||||
time data
|
||||
for reporting a problem with unjustified "video data stream broken" errors in case
|
||||
the system time is changed while a recording is active
|
||||
|
||||
Christian Ruppert <idl0r@gentoo.org>
|
||||
for some improvements to the Makefiles
|
||||
|
3
HISTORY
3
HISTORY
@ -7844,3 +7844,6 @@ Video Disk Recorder Revision History
|
||||
system time from the TDT, which avoids problems in case devices are tuned to the
|
||||
same transponder on different sources, and these broadcast different time data
|
||||
(reported by Torsten Lang).
|
||||
- Changed cRecorder::Action() to use cTimeMs instead of time() to avoid problems with
|
||||
unjustified "video data stream broken" errors in case the system time is changed
|
||||
while a recording is active (reported by Torsten Lang).
|
||||
|
12
recorder.c
12
recorder.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recorder.c 2.17 2012/09/22 11:53:57 kls Exp $
|
||||
* $Id: recorder.c 2.17.1.1 2013/10/12 12:10:05 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recorder.h"
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
// The maximum time we wait before assuming that a recorded video data stream
|
||||
// is broken:
|
||||
#define MAXBROKENTIMEOUT 30 // seconds
|
||||
#define MAXBROKENTIMEOUT 30000 // milliseconds
|
||||
|
||||
#define MINFREEDISKSPACE (512) // MB
|
||||
#define DISKCHECKINTERVAL 100 // seconds
|
||||
@ -117,7 +117,7 @@ void cRecorder::Receive(uchar *Data, int Length)
|
||||
|
||||
void cRecorder::Action(void)
|
||||
{
|
||||
time_t t = time(NULL);
|
||||
cTimeMs t(MAXBROKENTIMEOUT);
|
||||
bool InfoWritten = false;
|
||||
bool FirstIframeSeen = false;
|
||||
while (Running()) {
|
||||
@ -160,16 +160,16 @@ void cRecorder::Action(void)
|
||||
break;
|
||||
}
|
||||
fileSize += Count;
|
||||
t = time(NULL);
|
||||
t.Set(MAXBROKENTIMEOUT);
|
||||
}
|
||||
}
|
||||
ringBuffer->Del(Count);
|
||||
}
|
||||
}
|
||||
if (time(NULL) - t > MAXBROKENTIMEOUT) {
|
||||
if (t.TimedOut()) {
|
||||
esyslog("ERROR: video data stream broken");
|
||||
ShutdownHandler.RequestEmergencyExit();
|
||||
t = time(NULL);
|
||||
t.Set(MAXBROKENTIMEOUT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user