diff -Naur vdr-1.5.8.org/recorder.c vdr-1.5.8/recorder.c --- vdr-1.5.8.org/recorder.c 2007-10-01 16:03:03.509453564 -0400 +++ vdr-1.5.8/recorder.c 2007-10-01 16:15:44.390797569 -0400 @@ -90,6 +90,7 @@ void cFileWriter::Action(void) { time_t t = time(NULL); + time_t m = MAXBROKENTIMEOUT * 30; //give more time to first packet while (Running()) { int Count; u_int64_t PTS; @@ -109,7 +110,8 @@ t = time(NULL); } if (p) { - if (!Running() && pictureType == I_FRAME) // finish the recording before the next 'I' frame + m = MAXBROKENTIMEOUT; + if (!Running() && pictureType == I_FRAME) // finish the recording before the next 'I' frame break; if (isLiveRec && (fileSize/1024/1024)>=(Setup.LiveBufferSize-Setup.MaxVideoFileSize*(fileName->Number()-1)) && pictureType == I_FRAME) { @@ -132,7 +134,7 @@ break; t = time(NULL); } - else if (!isLiveRec && time(NULL) - t > MAXBROKENTIMEOUT) { + else if (!isLiveRec && time(NULL) - t > m) { esyslog("ERROR: video data stream broken"); ShutdownHandler.RequestEmergencyExit(); t = time(NULL);