Fixed a possible crash when pausing live video and the recording was unable to start

This commit is contained in:
Klaus Schmidinger 2004-11-20 11:00:26 +01:00
parent 2eda0c4113
commit b04f71562d
3 changed files with 16 additions and 3 deletions

View File

@ -1152,3 +1152,7 @@ Joachim Wilke <vdr@joachim-wilke.de>
Sascha Klek <sklek@gmx.de>
for reporting a problem with the '0' key in the "Day" item of the "Timers" menu
Andreas Brugger <brougs78@gmx.net>
for reporting a possible crash when pausing live video and the recording was
unable to start, maybe because there was no lock on the device

View File

@ -3139,7 +3139,7 @@ Video Disk Recorder Revision History
days ('1' is monday). Thanks to Sascha Klek for reporting a problem with the
'0' key in the "Day" item of the "Timers" menu.
2004-11-19: Version 1.3.17
2004-11-20: Version 1.3.17
- Fixed cRemux::ScanVideoPacket() to make sure it doesn't access memory beyond
the end of the given buffer, which has caused some unjustified "unknown
@ -3149,3 +3149,6 @@ Video Disk Recorder Revision History
If you want to use the old DVB driver just revert this line to what it was in
VDR version 1.3.16. The 'runvdr' script by default uses the "build-2.4"
driver. If you want to use "build-2.6" just edit that file as necessary.
- Fixed a possible crash when pausing live video and the recording was unable
to start, maybe because there was no lock on the device (thanks to Andreas
Brugger for reporting this one).

10
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.319 2004/11/01 13:49:40 kls Exp $
* $Id: menu.c 1.320 2004/11/20 10:49:17 kls Exp $
*/
#include "menu.h"
@ -2833,10 +2833,16 @@ cRecordControl::cRecordControl(cDevice *Device, cTimer *Timer, bool Pause)
if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
cReplayControl::SetRecording(fileName, Recording.Name());
Recordings.AddByName(fileName);
return;
}
else
DELETENULL(recorder);
}
if (!Timer) {
Timers.Del(timer);
Timers.SetModified();
timer = NULL;
}
}
cRecordControl::~cRecordControl()
@ -2928,7 +2934,7 @@ bool cRecordControls::Start(cTimer *Timer, bool Pause)
for (int i = 0; i < MAXRECORDCONTROLS; i++) {
if (!RecordControls[i]) {
RecordControls[i] = new cRecordControl(device, Timer, Pause);
return true;
return RecordControls[i]->Process(time(NULL));
}
}
}