diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2005-08-14 16:25:44 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2005-08-14 16:25:44 +0000 |
| commit | d375f3ea3ead88dcc4f41c6e5c551370cd305755 (patch) | |
| tree | 9d14d5678b8dd9e245d5b9a78f940554476a31c8 /lib/dvb/tstools.h | |
| parent | 9c2983bcc72ab3e24999c4d7a4b2ac9b2cd5597a (diff) | |
| download | enigma2-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.h | 42 |
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 |
