X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/40d11af2de7aed77c90970ba2b61dd754a225117..80058dea34aae48ed729986a65112f0096f5b2d5:/lib/service/servicedvbrecord.cpp diff --git a/lib/service/servicedvbrecord.cpp b/lib/service/servicedvbrecord.cpp index e150ae1d..0c5777a3 100644 --- a/lib/service/servicedvbrecord.cpp +++ b/lib/service/servicedvbrecord.cpp @@ -12,6 +12,7 @@ eDVBServiceRecord::eDVBServiceRecord(const eServiceReferenceDVB &ref): m_ref(ref m_state = stateIdle; m_want_record = 0; m_tuned = 0; + m_target_fd = -1; } void eDVBServiceRecord::serviceEvent(int event) @@ -108,6 +109,11 @@ RESULT eDVBServiceRecord::stop() { if (m_record) m_record->stop(); + if (m_target_fd >= 0) + { + ::close(m_target_fd); + m_target_fd = -1; + } m_state = statePrepared; } @@ -170,6 +176,7 @@ int eDVBServiceRecord::doRecord() } m_record->setTargetFD(fd); m_record->setTargetFilename(m_filename.c_str()); + m_target_fd = fd; } eDebug("starting recording.."); @@ -225,6 +232,21 @@ int eDVBServiceRecord::doRecord() } eDebugNoNewLine(")"); } + if (!program.subtitleStreams.empty()) + { + eDebugNoNewLine(" ("); + for (std::vector::const_iterator + i(program.subtitleStreams.begin()); + i != program.subtitleStreams.end(); ++i) + { + pids_to_record.insert(i->pid); + + if (i != program.subtitleStreams.begin()) + eDebugNoNewLine(", "); + eDebugNoNewLine("%04x", i->pid); + } + eDebugNoNewLine(")"); + } eDebugNoNewLine(", and the pcr pid is %04x", program.pcrPid); if (program.pcrPid != 0x1fff) pids_to_record.insert(program.pcrPid); @@ -269,3 +291,9 @@ int eDVBServiceRecord::doRecord() } return 0; } + +RESULT eDVBServiceRecord::frontendInfo(ePtr &ptr) +{ + ptr = this; + return 0; +}