aboutsummaryrefslogtreecommitdiff
path: root/lib/service/servicedvb.cpp
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-12-31 16:16:38 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-12-31 16:16:38 +0000
commit3ac169fb6f8a000495a010fc37be4b981fa57dae (patch)
treeea49848f886e490ecdd3b59232908ad757558fe4 /lib/service/servicedvb.cpp
parent27c2b23624714a6191c43df2bdd89fd470b8117e (diff)
downloadenigma2-3ac169fb6f8a000495a010fc37be4b981fa57dae.tar.gz
enigma2-3ac169fb6f8a000495a010fc37be4b981fa57dae.zip
fix non working timeshift
Diffstat (limited to 'lib/service/servicedvb.cpp')
-rw-r--r--lib/service/servicedvb.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp
index 3f5ecb86..e8fdebaf 100644
--- a/lib/service/servicedvb.cpp
+++ b/lib/service/servicedvb.cpp
@@ -1870,7 +1870,7 @@ RESULT eDVBServicePlay::stopTimeshift()
close(m_timeshift_fd);
eDebug("remove timeshift file");
- remove(m_timeshift_file.c_str());
+ eBackgroundFileEraser::getInstance()->erase(m_timeshift_file.c_str());
return 0;
}
@@ -1985,6 +1985,11 @@ void eDVBServicePlay::updateTimeshiftPids()
i != program.audioStreams.end(); ++i)
pids_to_record.insert(i->pid);
+ for (std::vector<eDVBServicePMTHandler::subtitleStream>::const_iterator
+ i(program.subtitleStreams.begin());
+ i != program.subtitleStreams.end(); ++i)
+ pids_to_record.insert(i->pid);
+
std::set<int> new_pids, obsolete_pids;
std::set_difference(pids_to_record.begin(), pids_to_record.end(),
@@ -2019,6 +2024,7 @@ void eDVBServicePlay::switchToLive()
m_new_dvb_subtitle_page_connection = 0;
m_new_subtitle_page_connection = 0;
m_radiotext_updated_connection = 0;
+ m_video_event_connection = 0;
/* free the timeshift service handler, we need the resources */
m_service_handler_timeshift.free();
@@ -2042,17 +2048,18 @@ void eDVBServicePlay::switchToTimeshift()
m_new_subtitle_page_connection = 0;
m_new_dvb_subtitle_page_connection = 0;
m_radiotext_updated_connection = 0;
+ m_video_event_connection = 0;
m_timeshift_active = 1;
- m_event((iPlayableService*)this, evSeekableStatusChanged);
-
eServiceReferenceDVB r = (eServiceReferenceDVB&)m_reference;
r.path = m_timeshift_file;
m_cue = new eCueSheet();
m_service_handler_timeshift.tune(r, 1, m_cue); /* use the decoder demux for everything */
updateDecoder(); /* mainly to switch off PCR */
+
+ m_event((iPlayableService*)this, evSeekableStatusChanged);
}
void eDVBServicePlay::updateDecoder()
@@ -2705,7 +2712,6 @@ void eDVBServicePlay::setPCMDelay(int delay)
void eDVBServicePlay::video_event(struct iTSMPEGDecoder::videoEvent event)
{
- eDebug("!!!!!!!!!! Video Event type %d, aspect %d, %dx%d", event.type, event.aspect, event.width, event.height);
memcpy(&m_videoEventData, &event, sizeof(iTSMPEGDecoder::videoEvent));
m_event((iPlayableService*)this, evVideoSizeChanged);
}