- removed confusing debug output
[enigma2.git] / lib / dvb / decoder.h
1 #ifndef __decoder_h
2 #define __decoder_h
3
4 #include <lib/base/object.h>
5 #include <lib/dvb/demux.h>
6
7 class eDVBAudio: public iObject
8 {
9 DECLARE_REF(eDVBAudio);
10 private:
11         ePtr<eDVBDemux> m_demux;
12         int m_fd, m_fd_demux;
13 public:
14         eDVBAudio(eDVBDemux *demux, int dev);
15         int startPid(int pid);
16         void stop();
17         virtual ~eDVBAudio();
18 };
19
20 class eDVBVideo: public iObject
21 {
22 DECLARE_REF(eDVBVideo);
23 private:
24         ePtr<eDVBDemux> m_demux;
25         int m_fd, m_fd_demux;
26 public:
27         eDVBVideo(eDVBDemux *demux, int dev);
28         int startPid(int pid);
29         void stop();
30         virtual ~eDVBVideo();
31 };
32
33 class eTSMPEGDecoder: public iTSMPEGDecoder
34 {
35 DECLARE_REF(eTSMPEGDecoder);
36 private:
37         ePtr<eDVBDemux> m_demux;
38         ePtr<eDVBAudio> m_audio;
39         ePtr<eDVBVideo> m_video;
40         
41         int m_vpid, m_apid, m_atype, m_pcrpid;
42         enum
43         {
44                 changeVideo = 1, 
45                 changeAudio = 2, 
46                 changePCR   = 4
47         };
48         int m_changed;
49         int setState();
50 public:
51         enum { pidNone = -1 };
52         eTSMPEGDecoder(eDVBDemux *demux, int decoder);
53         virtual ~eTSMPEGDecoder();
54         RESULT setVideoPID(int vpid);
55         RESULT setAudioPID(int apid, int type);
56         RESULT setSyncPCR(int pcrpid);
57         RESULT setSyncMaster(int who);
58         RESULT start();
59         RESULT freeze(int cont);
60         RESULT unfreeze();
61         RESULT setSinglePictureMode(int when);
62         RESULT setPictureSkipMode(int what);
63         RESULT setSlowMotion(int repeat);
64         RESULT setZoom(int what);
65 };
66 #endif