git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
main/Makefile.am: support to extract version information from (git) tarballs created...
[enigma2.git]
/
lib
/
dvb
/
tstools.cpp
diff --git
a/lib/dvb/tstools.cpp
b/lib/dvb/tstools.cpp
index 6fe9113613aa2b01537783f2d6ca1e7a2ee43d2b..a9eef4067e703bdd3db650f6e16fd8fb078226c5 100644
(file)
--- a/
lib/dvb/tstools.cpp
+++ b/
lib/dvb/tstools.cpp
@@
-71,7
+71,8
@@
void eDVBTSTools::setSearchRange(int maxrange)
int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed)
{
if (m_use_streaminfo)
int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed)
{
if (m_use_streaminfo)
- return m_streaminfo.getPTS(offset, pts);
+ if (!m_streaminfo.getPTS(offset, pts))
+ return 0;
if (!m_file.valid())
return -1;
if (!m_file.valid())
return -1;
@@
-144,9
+145,9
@@
int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed)
payload = packet + 4;
payload = packet + 4;
-
if (m_pid >= 0)
+
/*
if (m_pid >= 0)
if (pid != m_pid)
if (pid != m_pid)
- continue;
+ continue;
*/
if (!pusi)
continue;
if (!pusi)
continue;
@@
-186,7
+187,8
@@
int eDVBTSTools::fixupPTS(const off_t &offset, pts_t &now)
{
if (m_use_streaminfo)
{
{
if (m_use_streaminfo)
{
- return m_streaminfo.fixupPTS(offset, now);
+ if (!m_streaminfo.fixupPTS(offset, now))
+ return 0;
} else
{
/* for the simple case, we assume one epoch, with up to one wrap around in the middle. */
} else
{
/* for the simple case, we assume one epoch, with up to one wrap around in the middle. */
@@
-660,7
+662,8
@@
int eDVBTSTools::findNextPicture(off_t &offset, size_t &len, int &distance, int
off_t new_offset = offset;
size_t new_len = len;
off_t new_offset = offset;
size_t new_len = len;
-
+ int first = 1;
+
while (distance > 0)
{
int dir = direction;
while (distance > 0)
{
int dir = direction;
@@
-674,8
+677,9
@@
int eDVBTSTools::findNextPicture(off_t &offset, size_t &len, int &distance, int
// eDebug("we moved %d, %d to go frames (now at %llx)", dir, distance, new_offset);
// eDebug("we moved %d, %d to go frames (now at %llx)", dir, distance, new_offset);
- if (distance >= 0)
+ if (distance >= 0
|| first
)
{
{
+ first = 0;
offset = new_offset;
len = new_len;
nr_frames += abs(dir);
offset = new_offset;
len = new_len;
nr_frames += abs(dir);