summaryrefslogtreecommitdiff
path: root/remux/tsremux.h
diff options
context:
space:
mode:
Diffstat (limited to 'remux/tsremux.h')
-rw-r--r--remux/tsremux.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/remux/tsremux.h b/remux/tsremux.h
new file mode 100644
index 0000000..3e83c73
--- /dev/null
+++ b/remux/tsremux.h
@@ -0,0 +1,30 @@
+#ifndef VDR_STREAMDEV_TSREMUX_H
+#define VDR_STREAMDEV_TSREMUX_H
+
+#include "libdvbmpeg/transform.h"
+#include <vdr/remux.h>
+
+class cTSRemux {
+protected:
+ uchar m_ResultBuffer[RESULTBUFFERSIZE];
+ int m_ResultCount;
+ int m_ResultDelivered;
+ int m_Synced;
+ int m_Skipped;
+ int m_Sync;
+
+ int GetPacketLength(const uchar *Data, int Count, int Offset);
+ int ScanVideoPacket(const uchar *Data, int Count, int Offset, uchar &PictureType);
+
+ virtual void PutTSPacket(int Pid, const uint8_t *Data) = 0;
+
+public:
+ cTSRemux(bool Sync = true);
+ virtual ~cTSRemux();
+
+ virtual uchar *Process(const uchar *Data, int &Count, int &Result);
+
+ static void SetBrokenLink(uchar *Data, int Length);
+};
+
+#endif // VDR_STREAMDEV_TSREMUX_H