save timing information after record
[enigma2.git] / lib / dvb / demux.cpp
index 73e0443291772fee99c4d6ba025c48a30dcc6160..6753f2f223a1026515e24a6eb0cbb97e4f26d933 100644 (file)
@@ -273,6 +273,8 @@ 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:
@@ -293,6 +295,11 @@ 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);
@@ -385,6 +392,11 @@ RESULT eDVBTSRecorder::setTargetFD(int fd)
        return 0;
 }
 
+RESULT eDVBTSRecorder::setTargetFilename(const char *filename)
+{
+       m_target_filename = filename;
+}
+
 RESULT eDVBTSRecorder::setBoundary(off_t max)
 {
        return -1; // not yet implemented
@@ -401,6 +413,9 @@ RESULT eDVBTSRecorder::stop()
        
        close(m_source_fd);
        
+       if (m_target_filename != "")
+               m_thread->saveTimingInformation(m_target_filename + ".ap");
+       
        return 0;
 }