[mythtv] Latest cvs - atscstreamdata.cpp - PSIP packet failed CRC check

Eric Anderson rico99 at sbcglobal.net
Wed Jan 19 11:08:05 EST 2005


Danel -

> On Wed, 19 Jan 2005, Eric Anderson wrote:
> ]Essentially the problem here is that the PES code doesn't compute the 
> CRC
> ]for multi-packet ETT and EIT tables. In fact, for the program text 
> tables you
>
> Hmmm, that sounds odd, we compute it for other multi-packet tables. 
> I'll
> check this.

Let me know if you need a longer example data file.

>
> ]On a different subject, while debugging this code, I hit an assert in 
> the
> ]atsctables.cpp. I *think* the assert is saying -- "If we see table 
> data for
> ]NTSC in an ATSC PSIP packet, that doesn't make sense." Well, fine.
> ]Except somehow I still hit it and there went my backend. Not fun. And 
> this
> ]was all in toString() code that was simply going to be part of a 
> debug message.
>
> NTSC data does make sense in the PSIP data. But I'll look at this, you
> shouldn't be hitting any asserts.

It certainly doesn't make sense. But if your data is coming over the air
and is for some reason not reliable the assert can ruin your day. I've 
seen
gratuitous asserts far too often -- an assert() is perfectly reasonable 
if internally
to a software system some data structures are being created, and 
assumptions
are being made about those structures, etc. You really want to know if 
those
assumptions are violated because that implies a bug in the software.

But when you're receiving data from some other system...  or you're 
trying
to debug a piece of hardware, calling assert() when you see some 
unexpected
data doesn't necessarily help the debug process all that much.

-Eric



More information about the mythtv-dev mailing list