[mythtv] Ticket #5013: Constant PESPacket CRC check failure
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:
>> 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"
>> 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
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?
More information about the mythtv-dev