]> git.vomp.tv Git - vompserver.git/blob - remux/tsremux.h
Cut marks support
[vompserver.git] / remux / tsremux.h
1 #ifndef VDR_STREAMDEV_TSREMUX_H
2 #define VDR_STREAMDEV_TSREMUX_H
3
4 #include "transform.h"
5 #include <vdr/remux.h>
6
7 #include "../log.h"
8
9 #define IPACKS 2048
10
11 #define PROTECTIONSIZE 32768
12
13 #ifndef RESULTBUFFERSIZE
14 #define RESULTBUFFERSIZE KILOBYTE(256)
15 #endif
16 #ifndef MINVIDEODATA
17 #define MINVIDEODATA (16*1024)
18 #endif
19
20 class cTSRemux {
21 protected:
22   uchar m_PROTECTION1[PROTECTIONSIZE]; // something sometimes overwrites vtbl without this buffer
23   uchar m_ResultBuffer[RESULTBUFFERSIZE];
24         int m_ResultCount;
25         int m_ResultDelivered;
26         int m_Synced;
27         int m_Skipped;
28
29   int GetPacketLength(const uchar *Data, int Count, int Offset);
30   int ScanVideoPacket(const uchar *Data, int Count, int Offset, uchar &PictureType);
31
32         virtual void PutTSPacket(int Pid, const uint8_t *Data) = 0;
33
34 public:
35         int m_Sync;// CJT moved from protected
36
37         cTSRemux(bool Sync = true);
38         virtual ~cTSRemux();
39
40         virtual uchar *Process(const uchar *Data, int &Count, int &Result);
41
42         static void SetBrokenLink(uchar *Data, int Length);
43 };
44
45 #endif // VDR_STREAMDEV_TSREMUX_H