diff --git a/HISTORY b/HISTORY index babf8135..43a96c1c 100644 --- a/HISTORY +++ b/HISTORY @@ -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. diff --git a/menu.c b/menu.c index 92b0565c..b6c81dc5 100644 --- a/menu.c +++ b/menu.c @@ -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