summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY2
-rw-r--r--server/connectionVTP.c8
2 files changed, 7 insertions, 3 deletions
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);