From ce29c7206c71cd73423cec0275f251c13581d559 Mon Sep 17 00:00:00 2001 From: Lars Hanisch Date: Sun, 4 Apr 2010 17:54:43 +0200 Subject: Use local helper class for protected crc-function of libsi --- pvrinput.c | 2 +- reader.c | 12 ++++++++++-- 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; -- cgit v1.2.3