[media] DVB: improve handling of TS packets containing a raised TEI bit
authorMichael Krufky <mkrufky@kernellabs.com>
Mon, 21 May 2012 20:47:15 +0000 (17:47 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 13 Aug 2012 22:51:33 +0000 (19:51 -0300)
commitae53020527796a123e61698160b3cf193ce8cf48
tree749ed1d2889819028b10591c29af3e7129f87727
parentd9bc8510c5fb55ce7092ebc928c0791e738ea5ae
[media] DVB: improve handling of TS packets containing a raised TEI bit

When the TEI bit is raised, we should not trust any of the contents of
the packet in question, including but not limited to its PID number.

Considering that we don't trust the PID number of this packet, we should
not proceed to check the packet counter (if dvb_demux_tscheck is set).

We should expect to see at least one discontinuity after a bad packet is
received, so any time a TEI is detected, a following TS packet counter
mismatch is to be expected.

There is no real reason to ever allow bad packets to pass through the
kernel demux, other than for purposes of attempting error correction via
software or statistical information.

However, since we have always passed these bad packets though the demux,
we should not change this default behavior.

Without altering module options, this patch merely prevents the
TS packet counter check on packets containing a raised TEI.

If module option dvb_demux_feed_err_pkts is set to 0, the kernel demux
will drop these error packets entirely, preventing any possibility of
corruption caused by userspace programs that are expecting valid data.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-core/dvb_demux.c