diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-02-15 01:20:15 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-02-15 01:20:15 +0000 |
| commit | ca329d3e86a98aacb0597d8581f5354cc99542e4 (patch) | |
| tree | 9245b99c8971d7ae0c50ea8cc5d09608599fc6b3 /lib/dvb/tstools.h | |
| parent | b62474db510d8ffea6d3501bdb6f96a0cb15d180 (diff) | |
| download | enigma2-ca329d3e86a98aacb0597d8581f5354cc99542e4.tar.gz enigma2-ca329d3e86a98aacb0597d8581f5354cc99542e4.zip | |
use cached pts/offsets when available, clean up
Diffstat (limited to 'lib/dvb/tstools.h')
| -rw-r--r-- | lib/dvb/tstools.h | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/dvb/tstools.h b/lib/dvb/tstools.h index 95fbd9e2..55f86fbe 100644 --- a/lib/dvb/tstools.h +++ b/lib/dvb/tstools.h @@ -2,10 +2,11 @@ #define __lib_dvb_tstools_h #include <sys/types.h> +#include <lib/dvb/pvrparse.h> /* * Note: we're interested in PTS values, not STC values. - * thus we're not evaluating PES headers, not adaption fields. + * thus we're evaluating PES headers, not adaption fields. */ typedef long long pts_t; @@ -23,9 +24,19 @@ public: void setSearchRange(int maxrange); /* get first PTS *after* the given offset. */ + /* pts values are zero-based. */ int getPTS(off_t &offset, pts_t &pts); - int getPosition(off_t &offset, pts_t &pts); + /* this fixes up PTS to end up in a [0..len) range. + discontinuities etc. are handled here. + + input: + offset - approximate offset in file to resolve ambiguities + pts - video-pts (i.e. current STC of video decoder) + output: + pts - zero-based PTS value + */ + int fixupPTS(const off_t &offset, pts_t &pts); void calcBegin(); void calcEnd(); @@ -41,6 +52,9 @@ private: int m_begin_valid, m_end_valid; pts_t m_pts_begin, m_pts_end; off_t m_offset_begin, m_offset_end; + + eMPEGStreamInformation m_streaminfo; + int m_use_streaminfo; }; #endif |
