aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/tstools.h
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-08-14 16:25:44 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-08-14 16:25:44 +0000
commitd375f3ea3ead88dcc4f41c6e5c551370cd305755 (patch)
tree9d14d5678b8dd9e245d5b9a78f940554476a31c8 /lib/dvb/tstools.h
parent9c2983bcc72ab3e24999c4d7a4b2ac9b2cd5597a (diff)
downloadenigma2-d375f3ea3ead88dcc4f41c6e5c551370cd305755.tar.gz
enigma2-d375f3ea3ead88dcc4f41c6e5c551370cd305755.zip
- add tstools to evaluate PTS values from TS files for playback
Diffstat (limited to 'lib/dvb/tstools.h')
-rw-r--r--lib/dvb/tstools.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/dvb/tstools.h b/lib/dvb/tstools.h
new file mode 100644
index 00000000..c6f2cbbc
--- /dev/null
+++ b/lib/dvb/tstools.h
@@ -0,0 +1,42 @@
+#ifndef __lib_dvb_tstools_h
+#define __lib_dvb_tstools_h
+
+#include <sys/types.h>
+
+/*
+ * Note: we're interested in PTS values, not STC values.
+ * thus we're not evaluating PES headers, not adaption fields.
+ */
+
+class eDVBTSTools
+{
+public:
+ typedef unsigned long long pts_t;
+ eDVBTSTools();
+ ~eDVBTSTools();
+
+ int openFile(const char *filename);
+ void closeFile();
+
+ void setSyncPID(int pid);
+ void setSearchRange(int maxrange);
+
+ /* get first PTS *after* the given offset. */
+ int getPTS(off_t &offset, pts_t &pts);
+
+ void calcBegin();
+ void calcEnd();
+
+ int calcLen(pts_t &len);
+
+private:
+ int m_fd, m_pid;
+ int m_maxrange;
+
+ int m_begin_valid, m_end_valid;
+ pts_t m_pts_begin, m_pts_end;
+ off_t m_offset_begin, m_offset_end;
+};
+
+
+#endif