X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/742956672b795d0ffa44575f9a8e0255b768915c..e1342ca063df18d3b933420150d06b86ea506bb3:/lib/dvb/demux.cpp diff --git a/lib/dvb/demux.cpp b/lib/dvb/demux.cpp index 5d4a6c28..6753f2f2 100644 --- a/lib/dvb/demux.cpp +++ b/lib/dvb/demux.cpp @@ -1,4 +1,3 @@ -#include #include #include #include @@ -35,6 +34,7 @@ #include #include #include +#include eDVBDemux::eDVBDemux(int adapter, int demux): adapter(adapter), demux(demux) { @@ -268,14 +268,52 @@ RESULT eDVBSectionReader::connectRead(const Slot1 &r, ePtrm_dvr_busy = 1; } @@ -340,11 +378,11 @@ RESULT eDVBTSRecorder::removePID(int pid) return 0; } -RESULT eDVBTSRecorder::setFormat(int format) +RESULT eDVBTSRecorder::setTimingPID(int pid) { if (m_running) return -1; - m_format = format; + m_thread->setTimingPID(pid); return 0; } @@ -354,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 @@ -370,6 +413,9 @@ RESULT eDVBTSRecorder::stop() close(m_source_fd); + if (m_target_filename != "") + m_thread->saveTimingInformation(m_target_filename + ".ap"); + return 0; } @@ -418,6 +464,7 @@ RESULT eDVBTSRecorder::startPID(int pid) void eDVBTSRecorder::stopPID(int pid) { - ::close(m_pids[pid]); + if (m_pids[pid] != -1) + ::close(m_pids[pid]); m_pids[pid] = -1; }