Now writing the info file before attaching the recorder to the device, to make sure it is present when the recorder needs to update the fps value

This commit is contained in:
Klaus Schmidinger 2018-03-08 17:03:51 +01:00
parent 746ce7d406
commit 1275de1b07
2 changed files with 5 additions and 3 deletions

View File

@ -9300,3 +9300,5 @@ Video Disk Recorder Revision History
all remote VDRs.
- Fixed removing a cStateKey from a cStateLock (setting StateKey.stateLock = NULL was
done too late, after the lock had already been released).
- Now writing the info file before attaching the recorder to the device, to make sure it
is present when the recorder needs to update the fps value.

6
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 4.66 2018/03/05 15:37:23 kls Exp $
* $Id: menu.c 4.67 2018/03/08 17:02:56 kls Exp $
*/
#include "menu.h"
@ -5233,17 +5233,17 @@ cRecordControl::cRecordControl(cDevice *Device, cTimers *Timers, cTimer *Timer,
cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName);
isyslog("record %s", fileName);
if (MakeDirs(fileName, true)) {
Recording.WriteInfo(); // we write this *before* attaching the recorder to the device, to make sure the info file is present when the recorder needs to update the fps value!
const cChannel *ch = timer->Channel();
recorder = new cRecorder(fileName, ch, timer->Priority());
if (device->AttachReceiver(recorder)) {
Recording.WriteInfo();
cStatus::MsgRecording(device, Recording.Name(), Recording.FileName(), true);
if (!Timer && !LastReplayed) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
cReplayControl::SetRecording(fileName);
SchedulesStateKey.Remove();
LOCK_RECORDINGS_WRITE;
Recordings->AddByName(fileName);
SetRecordingTimerId(fileName, cString::sprintf("%d@%s", timer->Id(), Setup.SVDRPHostName));
Recordings->AddByName(fileName);
return;
}
else