summaryrefslogtreecommitdiff
path: root/server/streamer.h
diff options
context:
space:
mode:
authorlordjaxom <lordjaxom>2005-02-08 19:54:52 +0000
committerlordjaxom <lordjaxom>2005-02-08 19:54:52 +0000
commit78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3 (patch)
tree4b792b0fa20c5857431dc4139217f06c172fdf8a /server/streamer.h
parentb2b925d1a933c9129eb84699e9893d80e7e9534d (diff)
downloadvdr-plugin-streamdev-78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3.tar.gz
vdr-plugin-streamdev-78b9b7c6ba30158f97a9f6c34a16ac3047d5f4e3.tar.bz2
- transfer
Diffstat (limited to 'server/streamer.h')
-rw-r--r--server/streamer.h37
1 files changed, 29 insertions, 8 deletions
diff --git a/server/streamer.h b/server/streamer.h
index 0f374b5..ff6411d 100644
--- a/server/streamer.h
+++ b/server/streamer.h
@@ -1,5 +1,5 @@
/*
- * $Id: streamer.h,v 1.2 2005/02/08 13:59:16 lordjaxom Exp $
+ * $Id: streamer.h,v 1.3 2005/02/08 19:54:52 lordjaxom Exp $
*/
#ifndef VDR_STREAMDEV_STREAMER_H
@@ -10,21 +10,37 @@
#include <vdr/tools.h>
class cTBSocket;
+class cStreamdevStreamer;
+
+#define MAXTRANSMITBLOCKSIZE TS_SIZE*10
+#define STREAMERBUFSIZE MEGABYTE(4)
+#define WRITERBUFSIZE KILOBYTE(192)
+
+class cStreamdevWriter: public cThread {
+private:
+ cStreamdevStreamer *m_Streamer;
+ cTBSocket *m_Socket;
+ bool m_Active;
+
+protected:
+ virtual void Action(void);
+
+public:
+ cStreamdevWriter(cTBSocket *Socket, cStreamdevStreamer *Streamer);
+ virtual ~cStreamdevWriter();
+};
class cStreamdevStreamer: public cThread {
private:
bool m_Active;
- int m_Receivers;
- uchar *m_Buffer;
- const char *m_Name;
- cTBSocket *m_Socket;
+ cStreamdevWriter *m_Writer;
cRingBufferLinear *m_RingBuffer;
+ cRingBufferLinear *m_SendBuffer;
protected:
- virtual uchar *Process(const uchar *Data, int &Count, int &Result);
virtual void Action(void);
- const cTBSocket *Socket(void) const { return m_Socket; }
+ //const cTBSocket *Socket(void) const { return m_Socket; }
public:
cStreamdevStreamer(const char *Name);
@@ -33,8 +49,13 @@ public:
virtual void Start(cTBSocket *Socket);
virtual void Stop(void);
- int Put(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); }
+ void Activate(bool On);
+ int Receive(uchar *Data, int Length) { return m_RingBuffer->Put(Data, Length); }
void ReportOverflow(int Bytes) { m_RingBuffer->ReportOverflow(Bytes); }
+
+ virtual int Put(const uchar *Data, int Count);
+ virtual uchar *Get(int &Count);
+ virtual void Del(int Count);
virtual void Detach(void) = 0;
virtual void Attach(void) = 0;