diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-02-17 16:59:54 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-02-17 16:59:54 +0000 |
| commit | 8654739391001e76f8a6e571537f8b0f42999294 (patch) | |
| tree | c568a9b84a47c69328f5004a3b64f85919cc6b97 /lib/dvb/dvb.cpp | |
| parent | b96f203b700c91e463eff20889d734119530bce0 (diff) | |
| download | enigma2-8654739391001e76f8a6e571537f8b0f42999294.tar.gz enigma2-8654739391001e76f8a6e571537f8b0f42999294.zip | |
fix relative jumps
Diffstat (limited to 'lib/dvb/dvb.cpp')
| -rw-r--r-- | lib/dvb/dvb.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 4a3adf55..a126aae7 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -766,8 +766,16 @@ void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off if (relative) { pts_t now; - /* we're using the decoder's timestamp here. this - won't work for radio (ouch). */ + if (!m_cue->m_decoder) + { + eDebug("no decoder - can't seek relative"); + continue; + } + if (m_cue->m_decoder->getPTS(0, now)) + { + eDebug("decoder getPTS failed, can't seek relative"); + continue; + } if (getCurrentPosition(m_cue->m_decoding_demux, now, 1)) { eDebug("seekTo: getCurrentPosition failed!"); @@ -1092,9 +1100,10 @@ void eCueSheet::setSkipmode(const pts_t &ratio) m_event(evtSkipmode); } -void eCueSheet::setDecodingDemux(iDVBDemux *demux) +void eCueSheet::setDecodingDemux(iDVBDemux *demux, iTSMPEGDecoder *decoder) { m_decoding_demux = demux; + m_decoder = decoder; } RESULT eCueSheet::connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &connection) |
