X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7a79e14b385f63a84a12720cadee720a7a803783..317c6217b933893659bbf2dc80c74eac357e0bd2:/lib/dvb/demux.h diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index b14dfd26..e3759331 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -18,6 +18,7 @@ public: RESULT setSourcePVR(int pvrnum); RESULT createSectionReader(eMainloop *context, ePtr &reader); + RESULT createPESReader(eMainloop *context, ePtr &reader); RESULT createTSRecorder(ePtr &recorder); RESULT getMPEGDecoder(ePtr &reader, int primary); RESULT getSTC(pts_t &pts, int num); @@ -31,6 +32,7 @@ private: int m_dvr_busy; friend class eDVBSectionReader; + friend class eDVBPESReader; friend class eDVBAudio; friend class eDVBVideo; friend class eDVBPCR; @@ -62,6 +64,24 @@ public: RESULT connectRead(const Slot1 &read, ePtr &conn); }; +class eDVBPESReader: public iDVBPESReader, public Object +{ + DECLARE_REF(eDVBPESReader); +private: + int m_fd; + Signal2 m_read; + ePtr m_demux; + int m_active; + void data(int); + eSocketNotifier *m_notifier; +public: + eDVBPESReader(eDVBDemux *demux, eMainloop *context, RESULT &res); + virtual ~eDVBPESReader(); + RESULT start(int pid); + RESULT stop(); + RESULT connectRead(const Slot2 &read, ePtr &conn); +}; + class eDVBRecordFileThread; class eDVBTSRecorder: public iDVBTSRecorder, public Object @@ -89,6 +109,7 @@ private: void stopPID(int pid); eDVBRecordFileThread *m_thread; + void filepushEvent(int event); std::map m_pids; Signal1 m_event;