diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-02-17 16:44:45 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-02-17 16:44:45 +0000 |
| commit | b96f203b700c91e463eff20889d734119530bce0 (patch) | |
| tree | 0f17dba15d739889e7d4816021515341241dd2e4 /lib/service/servicedvb.cpp | |
| parent | 5e8e6de17ab3140b57d21e5d2373b8a0707f1ce2 (diff) | |
| download | enigma2-b96f203b700c91e463eff20889d734119530bce0.tar.gz enigma2-b96f203b700c91e463eff20889d734119530bce0.zip | |
use AUDIO_GET_STC, VIDEO_GET_STC
Diffstat (limited to 'lib/service/servicedvb.cpp')
| -rw-r--r-- | lib/service/servicedvb.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index 3487c3e6..5f5aae65 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -604,6 +604,11 @@ void eDVBServicePlay::serviceEvent(int event) updateTimeshiftPids(); if (!m_timeshift_active) updateDecoder(); + if (m_first_program_info && m_is_pvr) + { + m_first_program_info = 0; + seekTo(0); + } m_event((iPlayableService*)this, evUpdatedInfo); break; } @@ -637,6 +642,7 @@ RESULT eDVBServicePlay::start() two (one for decoding, one for data source), as we must be prepared to start recording from the data demux. */ m_cue = new eCueSheet(); + m_first_program_info = 1; r = m_service_handler.tune((eServiceReferenceDVB&)m_reference, m_is_pvr, m_cue); m_event(this, evStart); m_event((iPlayableService*)this, evSeekableStatusChanged); @@ -815,7 +821,18 @@ RESULT eDVBServicePlay::getPlayPosition(pts_t &pos) if ((m_timeshift_enabled ? m_service_handler_timeshift : m_service_handler).getPVRChannel(pvr_channel)) return -1; - return pvr_channel->getCurrentPosition(m_decode_demux, pos, 1); + int r = 0; + + /* if there is a decoder, use audio or video PTS */ + if (m_decoder) + { + r = m_decoder->getPTS(0, pos); + if (r) + return r; + } + + /* fixup */ + return pvr_channel->getCurrentPosition(m_decode_demux, pos, m_decoder ? 1 : 0); } RESULT eDVBServicePlay::setTrickmode(int trick) |
