show service name in movielist
[enigma2.git] / lib / dvb / demux.cpp
index 710323a1aa0f94226c6ac3a45e4608a2ba9dfd69..6753f2f223a1026515e24a6eb0cbb97e4f26d933 100644 (file)
@@ -273,8 +273,10 @@ class eDVBRecordFileThread: public eFilePushThread
 public:
        eDVBRecordFileThread();
        void setTimingPID(int pid);
+       
+       void saveTimingInformation(const std::string &filename);
 protected:
-       void filterRecordData(const char *data, int len);
+       void filterRecordData(const unsigned char *data, int len);
 private:
        eMPEGStreamParserTS m_ts_parser;
        eMPEGStreamInformation m_stream_info;
@@ -293,7 +295,12 @@ void eDVBRecordFileThread::setTimingPID(int pid)
        m_ts_parser.setPid(pid);
 }
 
-void eDVBRecordFileThread::filterRecordData(const char *data, int len)
+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;
 }