+class eDVBRecordFileThread: public eFilePushThread
+{
+public:
+ eDVBRecordFileThread();
+ void setTimingPID(int pid);
+
+ void saveTimingInformation(const std::string &filename);
+protected:
+ void filterRecordData(const unsigned char *data, int len);
+private:
+ eMPEGStreamParserTS m_ts_parser;
+ eMPEGStreamInformation m_stream_info;
+ off_t m_current_offset;
+ int m_pid;
+};
+
+eDVBRecordFileThread::eDVBRecordFileThread()
+ : m_ts_parser(m_stream_info)
+{
+ m_current_offset = 0;
+}
+
+void eDVBRecordFileThread::setTimingPID(int pid)
+{
+ m_ts_parser.setPid(pid);
+}
+
+void eDVBRecordFileThread::saveTimingInformation(const std::string &filename)
+{
+ m_stream_info.save(filename.c_str());
+}
+
+void eDVBRecordFileThread::filterRecordData(const unsigned char *data, int len)
+{
+ m_ts_parser.parseData(m_current_offset, data, len);
+
+ m_current_offset += len;
+}
+