summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pvrinput.c2
-rw-r--r--reader.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/pvrinput.c b/pvrinput.c
index 0cb426b..dc35949 100644
--- a/pvrinput.c
+++ b/pvrinput.c
@@ -6,7 +6,7 @@
#endif
#endif
-static const char *VERSION = "2010-04-03-rc1";
+static const char *VERSION = "2010-04-04";
static const char *DESCRIPTION = tr("use Hauppauge PVR as input device");
static const char *MAINMENUENTRY = tr("PVR picture settings");
diff --git a/reader.c b/reader.c
index 392abc1..debed07 100644
--- a/reader.c
+++ b/reader.c
@@ -152,6 +152,14 @@ const unsigned char kInvTab[256] = {
0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff,
};
+/* helper class for protected crc32-function in libsi */
+class cPvrCRC32 : public SI::CRC32 {
+public:
+ static inline u_int32_t crc32(const char *d, int len, u_int32_t CRCvalue) {
+ return SI::CRC32::crc32(d, len, CRCvalue);
+ }
+};
+
cPvrReadThread::cPvrReadThread(cRingBufferLinear *TsBuffer, cPvrDevice *_parent)
: tsBuffer(TsBuffer),
@@ -506,7 +514,7 @@ void cPvrReadThread::Action(void)
pat_buffer[9] = tid & 0xFF;
pat_buffer[13] = (sid >> 8) & 0xFF;
pat_buffer[14] = sid & 0xFF;
- int crc = SI::CRC32::crc32((const char*)(pat_buffer + 5), 12, 0xFFFFFFFF);
+ int crc = cPvrCRC32::crc32((const char*)(pat_buffer + 5), 12, 0xFFFFFFFF);
pat_buffer[17] = crc >> 24;
pat_buffer[18] = crc >> 16;
pat_buffer[19] = crc >> 8;
@@ -527,7 +535,7 @@ void cPvrReadThread::Action(void)
}
pmt_buffer[8] = (sid >> 8) & 0xFF;
pmt_buffer[9] = sid & 0xFF;
- crc = SI::CRC32::crc32((const char*)(pmt_buffer + 5), crc_offset - 5, 0xFFFFFFFF);
+ crc = cPvrCRC32::crc32((const char*)(pmt_buffer + 5), crc_offset - 5, 0xFFFFFFFF);
pmt_buffer[crc_offset] = crc >> 24;
pmt_buffer[crc_offset + 1] = crc >> 16;
pmt_buffer[crc_offset + 2] = crc >> 8;