diff options
author | schmirl <schmirl> | 2007-04-24 11:24:38 +0000 |
---|---|---|
committer | schmirl <schmirl> | 2007-04-24 11:24:38 +0000 |
commit | 60b89e86465826cfeaedf5883970291dad2e4797 (patch) | |
tree | c5fd162659862aa1d8de2186e45728e1496672cd /client | |
parent | 518886b08b5913cf8278f69905e7981424d46825 (diff) | |
download | vdr-plugin-streamdev-60b89e86465826cfeaedf5883970291dad2e4797.tar.gz vdr-plugin-streamdev-60b89e86465826cfeaedf5883970291dad2e4797.tar.bz2 |
client_device-sections-socket.patch by Petri Hintukainen
- Add separate data socket for sections data
- Sections data can be received when there is no active live view
(-> EPG scans etc. can be executed during replay etc.)
Diffstat (limited to 'client')
-rw-r--r-- | client/device.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/client/device.c b/client/device.c index 83ca3d3..726e55e 100644 --- a/client/device.c +++ b/client/device.c @@ -1,5 +1,5 @@ /* - * $Id: device.c,v 1.11 2007/04/24 10:46:21 schmirl Exp $ + * $Id: device.c,v 1.12 2007/04/24 11:24:38 schmirl Exp $ */ #include "client/device.h" @@ -250,11 +250,24 @@ esyslog("cStreamDevice::GetTSPacket: GetChecked: NOTHING (%d)", m_TSFails); #if VDRVERSNUM >= 10300 int cStreamdevDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask) { Dprintf("OpenFilter\n"); - if (StreamdevClientSetup.StreamFilters - && ClientSocket.SetFilter(Pid, Tid, Mask, true)) { - return m_Filters->OpenFilter(Pid, Tid, Mask); - } else + + if (!StreamdevClientSetup.StreamFilters) return -1; + + + if (!ClientSocket.DataSocket(siLiveFilter)) { + if (ClientSocket.CreateDataConnection(siLiveFilter)) { + m_Filters->SetConnection(*ClientSocket.DataSocket(siLiveFilter)); + } else { + isyslog("cStreamdevDevice::OpenFilter: connect failed: %m"); + return -1; + } + } + + if (ClientSocket.SetFilter(Pid, Tid, Mask, true)) + return m_Filters->OpenFilter(Pid, Tid, Mask); + + return -1; } #endif |