[mythtv] Ticket #5013: Constant PESPacket CRC check failure

Rune Petersen rune at megahurts.dk
Tue Dec 14 23:57:27 UTC 2010


On 2010-12-14 18:58, Janne Grunau wrote:
> On Tue, Dec 14, 2010 at 01:19:35AM +0100, Karl Dietz wrote:
>> Hi,
>>
>> find attached a small patch for your consideration to remove clutter
>> from the backend log.
>>
>> It should surpress the message, which seems to have distracted many
>> people in the past 3 years when looking for real errors.
>>
>> "PESPacket: Failed CRC check 0xVARIABLE != 0xCONSTANT for StreamID = 0x70"
>>
>> Regards,
>> Karl
>
>>  From fea52a636c13be2a2e9446d8e0e5f03a806ac07e Mon Sep 17 00:00:00 2001
>> From: Karl Dietz<dekarl at users.sourceforge.net>
>> Date: Tue, 14 Dec 2010 00:59:34 +0100
>> Subject: [PATCH] surpress false positive in CRC check in PESPacket (we really want the check in PSIPTable)
>>
>> The real solution would involve making sure that TS Packets for PID 0x14
>> end up in the derived class instead of the base class.
>>
>> fixes: #5013
>> ---
>>   mythtv/libs/libmythtv/mpeg/pespacket.cpp |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/mythtv/libs/libmythtv/mpeg/pespacket.cpp b/mythtv/libs/libmythtv/mpeg/pespacket.cpp
>> index d536f5e..597d72d 100644
>> --- a/mythtv/libs/libmythtv/mpeg/pespacket.cpp
>> +++ b/mythtv/libs/libmythtv/mpeg/pespacket.cpp
>> @@ -152,7 +152,7 @@ uint PESPacket::CalcCRC(void) const
>>   bool PESPacket::VerifyCRC(void) const
>>   {
>>       bool ret = !HasCRC() || (CalcCRC() == CRC());
>> -    if (!ret)
>> +    if (!ret&&  (StreamID() != 0x70)) /* no false positive for TDT tables */
>
> there is no need to calculate the CRC if we know that we will not use
> it, I'll move the streamid check
>
> Thanks.
>
> Janne

Or even better - fix PESPacket::HasCRC(), currently it checks a bit that has 
nothing to do with CRC in table sections.
Also CRC is skipped for TDT because of it size.

(this will of cause result in result in 2 CRC checks per table section compared 
to the aprox. 1.5 CRC checks currently done =)

What is the story behind PESPacket anyway?


Rune


More information about the mythtv-dev mailing list