summaryrefslogtreecommitdiff
path: root/server/livestreamer.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/livestreamer.h')
-rw-r--r--server/livestreamer.h28
1 files changed, 16 insertions, 12 deletions
diff --git a/server/livestreamer.h b/server/livestreamer.h
index 4e6632e..cd0cda6 100644
--- a/server/livestreamer.h
+++ b/server/livestreamer.h
@@ -8,13 +8,11 @@
#include "server/livefilter.h"
#include "common.h"
-#if MAXRECEIVEPIDS < 16
-# error Too few receiver pids allowed! Please contact sascha@akv-soft.de!
-#endif
-
class cTSRemux;
class cRemux;
+// --- cStreamdevLiveReceiver -------------------------------------------------
+
class cStreamdevLiveReceiver: public cReceiver {
friend class cStreamdevLiveStreamer;
@@ -26,11 +24,12 @@ protected:
virtual void Receive(uchar *Data, int Length);
public:
- cStreamdevLiveReceiver(cStreamdevLiveStreamer *Streamer, int Ca, int Priority,
- const int *Pids);
+ cStreamdevLiveReceiver(cStreamdevLiveStreamer *Streamer, int Ca, int Priority, const int *Pids);
virtual ~cStreamdevLiveReceiver();
};
+// --- cStreamdevLiveStreamer -------------------------------------------------
+
class cStreamdevLiveStreamer: public cStreamdevStreamer {
private:
int m_Priority;
@@ -42,7 +41,6 @@ private:
cStreamdevLiveReceiver *m_Receiver;
cRemux *m_PESRemux;
cTSRemux *m_Remux;
- uchar *m_Buffer;
public:
cStreamdevLiveStreamer(int Priority);
@@ -50,20 +48,26 @@ public:
void SetDevice(cDevice *Device) { m_Device = Device; }
bool SetPid(int Pid, bool On);
- bool SetChannel(const cChannel *Channel, eStreamType StreamType);
+ bool SetChannel(const cChannel *Channel, eStreamType StreamType, int Apid = 0);
bool SetFilter(u_short Pid, u_char Tid, u_char Mask, bool On);
virtual int Put(const uchar *Data, int Count);
virtual uchar *Get(int &Count);
virtual void Del(int Count);
- virtual void Detach(void);
- virtual void Attach(void);
+ virtual void Attach(void) { Dprintf("attach %p\n", m_Device);m_Device->AttachReceiver(m_Receiver); }
+ virtual void Detach(void) { m_Device->Detach(m_Receiver); }
- virtual void Start(cTBSocket *Socket);
-
// Statistical purposes:
virtual std::string Report(void);
};
+// --- cStreamdevLiveReceiver reverse inlines ---------------------------------
+
+inline void cStreamdevLiveReceiver::Activate(bool On)
+{
+ Dprintf("LiveReceiver->Activate()\n");
+ m_Streamer->Activate(On);
+}
+
#endif // VDR_STREAMDEV_LIVESTREAMER_H