From 538a4f767466c0915a09fa4e3af8bc25fa105db5 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 26 Jan 2014 12:45:46 +0100 Subject: Now checking whether the primary device actually has a decoder before retuning the current channel after a change in its parameters --- HISTORY | 5 ++++- vdr.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/HISTORY b/HISTORY index 73c35003..b82827c6 100644 --- a/HISTORY +++ b/HISTORY @@ -7870,7 +7870,7 @@ Video Disk Recorder Revision History and also to use the correct directory with --edit (the latter reported by Marko Mäkelä). -2014-01-25: Version 2.0.6 +2014-01-26: Version 2.0.6 - Updated 'sources.conf' (thanks to Antti Hartikainen). - cFont::CreateFont() now returns a dummy font in case there are no fonts installed. @@ -7881,3 +7881,6 @@ Video Disk Recorder Revision History - Fixed detecting frame borders in MPEG-2 streams that have "bottom fields" or varying GOP structures (reported by Christian Paulick, with help from Helmut Auer). - Fixed a wrong alignment in cCiDateTime::SendDateTime(). +- Now checking whether the primary device actually has a decoder before retuning the + current channel after a change in its parameters. This fixes broken recordings on + the primary device on "headless" systems. diff --git a/vdr.c b/vdr.c index e1857ead..ffd0e010 100644 --- a/vdr.c +++ b/vdr.c @@ -22,7 +22,7 @@ * * The project's page is at http://www.tvdr.de * - * $Id: vdr.c 2.57.1.4 2013/12/25 11:40:37 kls Exp $ + * $Id: vdr.c 2.57.1.5 2014/01/26 12:45:00 kls Exp $ */ #include @@ -909,7 +909,7 @@ int main(int argc, char *argv[]) for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) { if (Channel->Modification(CHANNELMOD_RETUNE)) { cRecordControls::ChannelDataModified(Channel); - if (Channel->Number() == cDevice::CurrentChannel()) { + if (Channel->Number() == cDevice::CurrentChannel() && cDevice::PrimaryDevice()->HasDecoder()) { if (!cDevice::PrimaryDevice()->Replaying() || cDevice::PrimaryDevice()->Transferring()) { if (cDevice::ActualDevice()->ProvidesTransponder(Channel)) { // avoids retune on devices that don't really access the transponder isyslog("retuning due to modification of channel %d", Channel->Number()); -- cgit v1.2.3