X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fdemux.h;h=015115a99b88a6e0ccc012366cfd9ce8b7bc0d06;hp=e73982ec1507913c9943050bad11266590e4a692;hb=HEAD;hpb=1b1339127ce152097492d899e401e3c6a2438f2c diff --git a/lib/dvb/demux.h b/lib/dvb/demux.h index e73982e..015115a 100644 --- a/lib/dvb/demux.h +++ b/lib/dvb/demux.h @@ -3,6 +3,8 @@ #include #include +#include +#include class eDVBDemux: public iDVBDemux { @@ -83,7 +85,25 @@ public: RESULT connectRead(const Slot2 &read, ePtr &conn); }; -class eDVBRecordFileThread; +class eDVBRecordFileThread: public eFilePushThread +{ +public: + eDVBRecordFileThread(); + void setTimingPID(int pid, int type); + + void startSaveMetaInformation(const std::string &filename); + void stopSaveMetaInformation(); + void enableAccessPoints(bool enable); + int getLastPTS(pts_t &pts); +protected: + int filterRecordData(const unsigned char *data, int len, size_t ¤t_span_remaining); +private: + eMPEGStreamParserTS m_ts_parser; + eMPEGStreamInformation m_stream_info; + off_t m_current_offset; + pts_t m_last_pcr; /* very approximate.. */ + int m_pid; +}; class eDVBTSRecorder: public iDVBTSRecorder, public Object { @@ -101,7 +121,9 @@ public: RESULT setTargetFD(int fd); RESULT setTargetFilename(const char *filename); + RESULT enableAccessPoints(bool enable); RESULT setBoundary(off_t max); + RESULT setTimeshift(bool enable); RESULT stop();