diff options
author | Frank Schmirler <vdr@schmirler.de> | 2014-06-23 23:28:36 +0200 |
---|---|---|
committer | Frank Schmirler <vdr@schmirler.de> | 2014-06-23 23:28:36 +0200 |
commit | 1dc142342943b9ee90cebca96251f89707b36507 (patch) | |
tree | d3ca450373d9870eabea2bd2ad9c3e8f2423bb77 /server | |
parent | 5a173b0b212f21a7bc5f55487aef6da20511ee26 (diff) | |
download | vdr-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.c | 6 | ||||
-rw-r--r-- | server/livestreamer.h | 2 |
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 |