Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Which CRC-code is used in TS of DVB?



On Tue, 2003-05-27 at 04:36, Gregor Lawatscheck wrote:
> > >  > Now that sounds like it'll drop sections that didn't pass CRC32, 
> > doesn't
> > >  > it? I'm not aware CRC32 corrects anything. I personally just fear CRC32
> > >
> > > Correct.
> > >
> >OK, what passes the CRC-check, then?
> 
> IMHO a section (PES packet?)  where the checksum calculated from the packet 
> contet itself matches the checksum in the next packet. There have got to be 
> CRC checksums somewhere in the packets otherwise no point to calculate them?

Sections and PES packets are different types of TS payload. A section
may be split into multiple TS packets. Most section types have their own
crc32 checksum in their last 4 bytes, other types don't have a checksum.
This does not depend on the section syntax indicator. This checksum is
usually calculated by the demux hardware to check whether a received
section contains valid data. There is no kind of error correction at
this point. Invaild sections will usually be discarded. Regarding the
linux dvb api, if your hardware does not have a TS demux or the demux
(-driver) does not support crc32 checking then it should be checked by
the software demux (see dvb_demux.c). It sounds like the av7110 driver
does not do this. :)

> >If checksum the DVB-developers would be idiots - especially as
> >data-packets are broadcasted by carussels where a client can't demand to
> >resend the packet - so it has to be valid.

> The way I understand it you calculate the checksum of the actual packet and 
> then look at the CRC for it to see whether the packet is broken or not. 
> That's all there is to it imho.

Yes. Error correction is done by the frontend. If it fails then it will
set the transport error indicator bit in the TS header.

> > > Yup, it is part of the demodulator hardware.
> >
> >With the full-featured cards only or also with low-budgets?
> 
> Both have FEC. I'm pretty sure because the code rate / FEC value sits in 
> the channels.conf or is used with dvbstream etc.

Every DVB frontend needs to offer FEC.

Regards,
Andreas



-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index