diff --git a/HISTORY b/HISTORY index 051e23b..9ba250c 100644 --- a/HISTORY +++ b/HISTORY @@ -1,6 +1,8 @@ VDR Plugin 'streamdev' Revision History --------------------------------------- +- check availability of channel if VTP command TUNE is called without + prior PROV call (e.g. client side EPG scan) - added support for VDR 1.7.19 SignalStrength/SignalQuality - analog video channels use the same transponder and pid for different channels, so streamdev-client must always issue TUNE command diff --git a/server/connectionVTP.c b/server/connectionVTP.c index 64b5f37..8224d1d 100644 --- a/server/connectionVTP.c +++ b/server/connectionVTP.c @@ -1089,14 +1089,16 @@ bool cConnectionVTP::CmdTUNE(char *Opts) return Respond(550, "Undefined channel \"%s\"", Opts); if (chan != m_TuneChannel) { - esyslog("streamdev-server TUNE %s: Priority unknown - using 0", Opts); + isyslog("streamdev-server TUNE %s: Priority unknown - using 0", Opts); prio = 0; + if (!ProvidesChannel(chan, prio)) + return Respond(560, "Channel not available (ProvidesChannel)"); } if ((dev = GetDevice(chan, prio)) == NULL) - return Respond(560, "Channel not available"); + return Respond(560, "Channel not available (GetDevice)"); if (!dev->SwitchChannel(chan, false)) - return Respond(560, "Channel not available"); + return Respond(560, "Channel not available (SwitchChannel)"); delete m_LiveStreamer; m_LiveStreamer = new cStreamdevLiveStreamer(prio, this);