summaryrefslogtreecommitdiff
path: root/remux/extern.h
blob: 62f193b79675d5ae01710255708d0bf638e5e372 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef VDR_STREAMDEV_EXTERNREMUX_H
#define VDR_STREAMDEV_EXTERNREMUX_H

#include "remux/tsremux.h"
#include <vdr/ringbuffer.h>
#include <string>

class cChannel;
class cPatPmtParser;
class cServerConnection;

namespace Streamdev {

class cTSExt;

class cExternRemux: public cTSRemux {
private:
	cRingBufferLinear *m_ResultBuffer;
	cTSExt            *m_Remux;

public:
	cExternRemux(const cServerConnection *Connection, const cChannel *Channel, const int *APids, const int *Dpids);
	cExternRemux(const cServerConnection *Connection, const cPatPmtParser *PatPmt, const int *APids, const int *Dpids);
	virtual ~cExternRemux();
	
	int Put(const uchar *Data, int Count);
	uchar *Get(int &Count) { return m_ResultBuffer->Get(Count); }
	void Del(int Count) { m_ResultBuffer->Del(Count); }
};

} // namespace Streamdev

#endif // VDR_STREAMDEV_EXTERNREMUX_H