X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fe478efd1c354b304a3b68aa8fbcc5e5a53e7833..37b38cb05fc6bc4993f852a78bdba93c7627cf5b:/lib/dvb/pvrparse.h diff --git a/lib/dvb/pvrparse.h b/lib/dvb/pvrparse.h index 5ca6263d..69bb9924 100644 --- a/lib/dvb/pvrparse.h +++ b/lib/dvb/pvrparse.h @@ -19,7 +19,10 @@ public: /* timestampDelta is in fact the difference between */ /* the PTS in the stream and a real PTS from 0..max */ std::map m_timestamp_deltas; - + + /* these are non-fixed up pts value (like m_access_points), just used to accelerate stuff. */ + std::multimap m_pts_to_offset; + int save(const char *filename); int load(const char *filename); @@ -29,14 +32,19 @@ public: /* get delta at specific offset */ pts_t getDelta(off_t offset); - /* fixup timestamp near offset */ - pts_t fixuppts_t(off_t offset, pts_t ts); + /* fixup timestamp near offset, i.e. convert to zero-based */ + int fixupPTS(const off_t &offset, pts_t &ts); + + /* get PTS before offset */ + int getPTS(off_t &offset, pts_t &pts); /* inter/extrapolate timestamp from offset */ pts_t getInterpolated(off_t offset); off_t getAccessPoint(pts_t ts); + int getNextAccessPoint(pts_t &ts, const pts_t &start, int direction); + bool empty(); };