git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix non-existing cast for FEC_9_10
[enigma2.git]
/
lib
/
dvb
/
pesparse.cpp
diff --git
a/lib/dvb/pesparse.cpp
b/lib/dvb/pesparse.cpp
index 7e05c96ac562013d7191e8d2d955a8c513802908..d96477be0fb6a67709d29a4f0e81773b8c65b63d 100644
(file)
--- a/
lib/dvb/pesparse.cpp
+++ b/
lib/dvb/pesparse.cpp
@@
-1,3
+1,4
@@
+#include <lib/base/eerror.h>
#include <lib/dvb/pesparse.h>
#include <memory.h>
#include <lib/dvb/pesparse.h>
#include <memory.h>
@@
-16,8
+17,11
@@
void ePESParser::setStreamID(unsigned char id)
m_header[3] = id;
}
m_header[3] = id;
}
-void ePESParser::processData(
unsigned char
*p, int len)
+void ePESParser::processData(
const __u8
*p, int len)
{
{
+ int i;
+ eDebug("process %d bytes of pes data, %02x, %02x, %02x, %02x, %02x, %02x", len, p[0], p[1], p[2], p[3], p[4], p[5]);
+#if 0
/* this is a state machine, handling arbitary amounts of pes-formatted data. */
while (len)
{
/* this is a state machine, handling arbitary amounts of pes-formatted data. */
while (len)
{
@@
-40,9
+44,12
@@
void ePESParser::processData(unsigned char *p, int len)
} else
{
if (m_pes_position < 4)
} else
{
if (m_pes_position < 4)
- if (*p !=
"\x00\x00\x01\xbd"
[m_pes_position])
+ if (*p !=
m_header
[m_pes_position])
{
{
+ eDebug("sync lost at %d (%02x)", m_pes_position, *p);
m_pes_position = 0;
m_pes_position = 0;
+ while (m_header[m_pes_position] == *p) /* guaranteed to stop at the old m_pes_position */
+ m_pes_position++;
p++;
len--;
continue;
p++;
len--;
continue;
@@
-51,7
+58,9
@@
void ePESParser::processData(unsigned char *p, int len)
if (m_pes_position == 6)
{
m_pes_length = ((m_pes_buffer[4] << 8) | m_pes_buffer[5]) + 6;
if (m_pes_position == 6)
{
m_pes_length = ((m_pes_buffer[4] << 8) | m_pes_buffer[5]) + 6;
+ eDebug("pes length: %d", m_pes_length);
}
}
}
}
}
}
+#endif
}
}