public:
eDVBRecordFileThread();
void setTimingPID(int pid);
+
+ void saveTimingInformation(const std::string &filename);
protected:
void filterRecordData(const unsigned char *data, int len);
private:
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);
return 0;
}
+RESULT eDVBTSRecorder::setTargetFilename(const char *filename)
+{
+ m_target_filename = filename;
+}
+
RESULT eDVBTSRecorder::setBoundary(off_t max)
{
return -1; // not yet implemented
close(m_source_fd);
+ if (m_target_filename != "")
+ m_thread->saveTimingInformation(m_target_filename + ".ap");
+
return 0;
}
RESULT setTimingPID(int pid);
RESULT setTargetFD(int fd);
+ RESULT setTargetFilename(const char *filename);
RESULT setBoundary(off_t max);
RESULT stop();
ePtr<eDVBDemux> m_demux;
int m_running, m_target_fd, m_source_fd;
+ std::string m_target_filename;
};
#endif
virtual RESULT setTimingPID(int pid) = 0;
virtual RESULT setTargetFD(int fd) = 0;
+ /* for saving additional meta data. */
+ virtual RESULT setTargetFilename(const char *filename) = 0;
virtual RESULT setBoundary(off_t max) = 0;
virtual RESULT stop() = 0;