aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/tstools.h
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-02-15 01:20:15 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-02-15 01:20:15 +0000
commitca329d3e86a98aacb0597d8581f5354cc99542e4 (patch)
tree9245b99c8971d7ae0c50ea8cc5d09608599fc6b3 /lib/dvb/tstools.h
parentb62474db510d8ffea6d3501bdb6f96a0cb15d180 (diff)
downloadenigma2-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.h18
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