X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/aee1fdd37eadd70de2af1b299af87e238b4ac388..aa3fdc5321e50af5b79085a0942e9b5cf2d82e30:/lib/dvb/tstools.cpp?ds=sidebyside diff --git a/lib/dvb/tstools.cpp b/lib/dvb/tstools.cpp index 51cc994c..e440aeca 100644 --- a/lib/dvb/tstools.cpp +++ b/lib/dvb/tstools.cpp @@ -172,6 +172,25 @@ int eDVBTSTools::fixupPTS(const off_t &offset, pts_t &now) } } +int eDVBTSTools::getOffset(off_t &offset, pts_t &pts) +{ + if (m_use_streaminfo) + { + offset = m_streaminfo.getAccessPoint(pts); + return 0; + } else + { + int bitrate = calcBitrate(); /* in bits/s */ + if (bitrate <= 0) + return -1; + + offset = (pts * (pts_t)bitrate) / 8ULL / 90000ULL; + offset -= offset % 188; + + return 0; + } +} + void eDVBTSTools::calcBegin() { if (m_fd < 0)