diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-03-03 03:13:13 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-03-03 03:13:13 +0000 |
| commit | 8ef240801bf66e543cdea9df3b32fc09cebcc7e5 (patch) | |
| tree | 5518ec66c8b24014faa47659591f0d47f8816155 /lib/dvb/tstools.cpp | |
| parent | 13e74ce7d8fcccc12bed3ce65c4f35987f206799 (diff) | |
| download | enigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.tar.gz enigma2-8ef240801bf66e543cdea9df3b32fc09cebcc7e5.zip | |
enable playback of multifile (split) movies
Diffstat (limited to 'lib/dvb/tstools.cpp')
| -rw-r--r-- | lib/dvb/tstools.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/lib/dvb/tstools.cpp b/lib/dvb/tstools.cpp index b6792c65..5c99ea60 100644 --- a/lib/dvb/tstools.cpp +++ b/lib/dvb/tstools.cpp @@ -7,7 +7,6 @@ eDVBTSTools::eDVBTSTools() { - m_fd = -1; m_pid = -1; m_maxrange = 256*1024; @@ -36,16 +35,14 @@ int eDVBTSTools::openFile(const char *filename) m_use_streaminfo = 0; } - m_fd = ::open(filename, O_RDONLY); - if (m_fd < 0) + if (m_file.open(filename) < 0) return -1; return 0; } void eDVBTSTools::closeFile() { - if (m_fd >= 0) - ::close(m_fd); + m_file.close(); } void eDVBTSTools::setSyncPID(int pid) @@ -64,13 +61,12 @@ int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed) if (m_use_streaminfo) return m_streaminfo.getPTS(offset, pts); - if (m_fd < 0) + if (!m_file.valid() < 0) return -1; offset -= offset % 188; - // TODO: multiple files! - if (lseek(m_fd, offset, SEEK_SET) < 0) + if (m_file.lseek(offset, SEEK_SET) < 0) return -1; int left = m_maxrange; @@ -78,7 +74,7 @@ int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed) while (left >= 188) { unsigned char block[188]; - if (read(m_fd, block, 188) != 188) + if (m_file.read(block, 188) != 188) { eDebug("read error"); break; @@ -95,7 +91,7 @@ int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed) break; ++i; } - offset = lseek(m_fd, i - 188, SEEK_CUR); + offset = m_file.lseek(i - 188, SEEK_CUR); continue; } @@ -204,7 +200,7 @@ int eDVBTSTools::getNextAccessPoint(pts_t &ts, const pts_t &start, int direction void eDVBTSTools::calcBegin() { - if (m_fd < 0) + if (!m_file.valid()) return; if (!m_begin_valid) @@ -217,10 +213,10 @@ void eDVBTSTools::calcBegin() void eDVBTSTools::calcEnd() { - if (m_fd < 0) + if (!m_file.valid()) return; - off_t end = lseek(m_fd, 0, SEEK_END); + off_t end = m_file.lseek(0, SEEK_END); if (abs(end - m_offset_end) > 1*1024*1024) { |
