summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-04-24 11:24:38 +0000
committerschmirl <schmirl>2007-04-24 11:24:38 +0000
commit60b89e86465826cfeaedf5883970291dad2e4797 (patch)
treec5fd162659862aa1d8de2186e45728e1496672cd
parent518886b08b5913cf8278f69905e7981424d46825 (diff)
downloadvdr-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.)
-rw-r--r--client/device.c23
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