X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/19b9689ab36c01096cdb672d8c54c176808e0894..d2ceae9583bc62daa872c316f8952b9a6a416a69:/lib/service/servicedvb.cpp?ds=sidebyside diff --git a/lib/service/servicedvb.cpp b/lib/service/servicedvb.cpp index d49c5f6d..d8206b9a 100644 --- a/lib/service/servicedvb.cpp +++ b/lib/service/servicedvb.cpp @@ -652,8 +652,14 @@ RESULT eDVBServicePlay::seekRelative(int direction, pts_t to) if (m_service_handler.getPVRChannel(pvr_channel)) return -1; - /* this is of couse wrong: PTS values don't match with bytes. */ - return pvr_channel->seekToPosition(SEEK_CUR, direction * to); + to *= direction; + + ePtr demux; + m_service_handler.getDemux(demux); + if (!demux) + return -1; + + return pvr_channel->seekTo(demux, 1, to); } RESULT eDVBServicePlay::getPlayPosition(pts_t &pos) @@ -663,7 +669,12 @@ RESULT eDVBServicePlay::getPlayPosition(pts_t &pos) if (m_service_handler.getPVRChannel(pvr_channel)) return -1; - return pvr_channel->getCurrentPosition(pos); + ePtr demux; + m_service_handler.getDemux(demux); + if (!demux) + return -1; + + return pvr_channel->getCurrentPosition(demux, pos); } RESULT eDVBServicePlay::info(ePtr &ptr)