From 3b187638becda87cdaa3db2472f5f1380163732c Mon Sep 17 00:00:00 2001 From: John Smith Date: Tue, 5 Mar 2013 18:02:43 -0300 Subject: [PATCH] --- yaml --- r: 366564 b: refs/heads/master c: 5144f5b76028dbfdbbf2f10721b73a553451c83a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb-core/dvb_demux.c | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index d7edfeaa7b2a..cd306ae03bf9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fa7b9ac2e25e149fa9972fced79196c0c971a218 +refs/heads/master: 5144f5b76028dbfdbbf2f10721b73a553451c83a diff --git a/trunk/drivers/media/dvb-core/dvb_demux.c b/trunk/drivers/media/dvb-core/dvb_demux.c index d319717eb535..71641b2dde6b 100644 --- a/trunk/drivers/media/dvb-core/dvb_demux.c +++ b/trunk/drivers/media/dvb-core/dvb_demux.c @@ -440,20 +440,22 @@ static void dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf) if (!dvb_demux_feed_err_pkts) return; } else /* if TEI bit is set, pid may be wrong- skip pkt counter */ - if (demux->cnt_storage && dvb_demux_tscheck) { - /* check pkt counter */ - if (pid < MAX_PID) { - if ((buf[3] & 0xf) != demux->cnt_storage[pid]) - dprintk_tscheck("TS packet counter mismatch. " - "PID=0x%x expected 0x%x " - "got 0x%x\n", + if (demux->cnt_storage && dvb_demux_tscheck) { + /* check pkt counter */ + if (pid < MAX_PID) { + if (buf[3] & 0x10) + demux->cnt_storage[pid] = + (demux->cnt_storage[pid] + 1) & 0xf; + + if ((buf[3] & 0xf) != demux->cnt_storage[pid]) { + dprintk_tscheck("TS packet counter mismatch. PID=0x%x expected 0x%x got 0x%x\n", pid, demux->cnt_storage[pid], buf[3] & 0xf); - - demux->cnt_storage[pid] = ((buf[3] & 0xf) + 1)&0xf; + demux->cnt_storage[pid] = buf[3] & 0xf; + } + } + /* end check */ } - /* end check */ - } list_for_each_entry(feed, &demux->feed_list, list_head) { if ((feed->pid != pid) && (feed->pid != 0x2000))