summaryrefslogtreecommitdiff
path: root/server/recstreamer.h
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2012-12-16 13:29:15 +0100
committerFrank Schmirler <vdr@schmirler.de>2012-12-16 13:29:15 +0100
commit9135cde7121b72c24907752e64c519696d38154e (patch)
treef0033d7c4bb309f79f56bbdb1e99881622caeaff /server/recstreamer.h
parent0cf406ed3ab2ab465787f5a425dec8d7d705903e (diff)
downloadvdr-plugin-streamdev-9135cde7121b72c24907752e64c519696d38154e.tar.gz
vdr-plugin-streamdev-9135cde7121b72c24907752e64c519696d38154e.tar.bz2
Basic support for HTTP streaming of recordings
Diffstat (limited to 'server/recstreamer.h')
-rw-r--r--server/recstreamer.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/server/recstreamer.h b/server/recstreamer.h
new file mode 100644
index 0000000..83df8c1
--- /dev/null
+++ b/server/recstreamer.h
@@ -0,0 +1,32 @@
+#ifndef VDR_STREAMDEV_RECSTREAMER_H
+#define VDR_STREAMDEV_RECSTREAMER_H
+
+#include "server/streamer.h"
+#include "server/recplayer.h"
+
+#define RECBUFSIZE (174 * TS_SIZE)
+
+// --- cStreamdevRecStreamer -------------------------------------------------
+
+class cStreamdevRecStreamer: public cStreamdevStreamer {
+private:
+ //Streamdev::cTSRemux *m_Remux;
+ RecPlayer m_RecPlayer;
+ int64_t m_From;
+ int64_t m_To;
+ uchar m_Buffer[RECBUFSIZE];
+
+protected:
+ virtual uchar* GetFromReceiver(int &Count);
+ virtual void DelFromReceiver(int Count) { m_From += Count; };
+
+public:
+ virtual bool IsReceiving(void) const { return m_From <= m_To; };
+ inline uint64_t GetLength() { return m_RecPlayer.getLengthBytes(); }
+ int64_t SetRange(int64_t &From, int64_t &To);
+ virtual cString ToText() const;
+ cStreamdevRecStreamer(cRecording *Recording, const cServerConnection *Connection);
+ virtual ~cStreamdevRecStreamer();
+};
+
+#endif // VDR_STREAMDEV_RECSTREAMER_H