[mythtv-commits] mythtv commit: r12480 by danielk

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Thu Jan 11 22:12:12 UTC 2007


      Author: danielk
        Date: 2007-01-11 22:12:11 +0000 (Thu, 11 Jan 2007)
New Revision: 12480
   Changeset: http://cvs.mythtv.org/trac/changeset/12480

Modified:

   trunk/mythtv/libs/libmythtv/mpeg/mpegstreamdata.cpp
   trunk/mythtv/libs/libmythtv/mpeg/mpegtables.cpp
   trunk/mythtv/libs/libmythtv/mpeg/mpegtables.h
   trunk/mythtv/libs/libmythtv/mpeg/pespacket.h

Log:

Fixes #2664. Fixes SEGFAULT on invalid PAT/PMT.

There were three problems with how we handled table validation:
 * If the DVB card mangled CRCs we didn't perform any validation
 * We performed the validation after the redundancy check, if
    the signal is very noisy we can get in trouble just doing this.
 * We didn't always check the CRC when we should have because the
    HasCRC() function relied on the PES packet structure and the
    PSIP tables depart somewhat from the basic PES packet structure.

These problems have been fixed in this commit along with a bug in the section tracking that was evident in a backtrace of a broken packet processing gone awry.

The code was by myself & Janne, but all the bugs would not have been found without the assistance of froedep at googlemail and Simon Kenyon.

HasCRC() does alias some table ids that are shared amoung the various standards that sit on top of MPEG, but AFAIK the aliased tables do all seem to agree on whether the table should have a CRC.






More information about the mythtv-commits mailing list