summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2014-06-23 23:28:36 +0200
committerFrank Schmirler <vdr@schmirler.de>2014-06-23 23:28:36 +0200
commit1dc142342943b9ee90cebca96251f89707b36507 (patch)
treed3ca450373d9870eabea2bd2ad9c3e8f2423bb77 /server
parent5a173b0b212f21a7bc5f55487aef6da20511ee26 (diff)
downloadvdr-plugin-streamdev-1dc142342943b9ee90cebca96251f89707b36507.tar.gz
vdr-plugin-streamdev-1dc142342943b9ee90cebca96251f89707b36507.tar.bz2
In TSPIDS mode, create and attach receiver with empty pid list to occupy device
Diffstat (limited to 'server')
-rw-r--r--server/livestreamer.c6
-rw-r--r--server/livestreamer.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/server/livestreamer.c b/server/livestreamer.c
index dcd9e7d..c939e1e 100644
--- a/server/livestreamer.c
+++ b/server/livestreamer.c
@@ -472,9 +472,9 @@ bool cStreamdevLiveStreamer::IsReceiving(void) const
return m_Receiver && m_Receiver->IsAttached();
}
-void cStreamdevLiveStreamer::StartReceiver(void)
+void cStreamdevLiveStreamer::StartReceiver(bool Force)
{
- if (m_NumPids > 0) {
+ if (m_NumPids > 0 || Force) {
Dprintf("Creating Receiver to respect changed pids\n");
cReceiver *current = m_Receiver;
cThreadLock ThreadLock(m_Device);
@@ -536,6 +536,8 @@ bool cStreamdevLiveStreamer::SetChannel(const int* Apid, const int *Dpid)
case stTSPIDS:
Dprintf("pid streaming mode\n");
+ // No PIDs requested yet. Start receiver anyway to occupy device
+ StartReceiver(true);
return true;
default:
return false;
diff --git a/server/livestreamer.h b/server/livestreamer.h
index e259ee9..29217d9 100644
--- a/server/livestreamer.h
+++ b/server/livestreamer.h
@@ -32,7 +32,7 @@ private:
Streamdev::cTSRemux *m_Remux;
bool m_SwitchLive;
- void StartReceiver(void);
+ void StartReceiver(bool Force = false);
bool HasPid(int Pid);
/* Test if device is in use as the transfer mode receiver device