summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorJohannes Stezenbach <devnull@localhost>2003-09-19 17:23:40 +0000
committerJohannes Stezenbach <devnull@localhost>2003-09-19 17:23:40 +0000
commitf4966c6d0360ca710d2d5fa52c689d1981369e94 (patch)
tree683d84aea228e6be603f6993d3e11ade2e1cdc05 /linux
parent8596805bf56f752489545bcf4e791337ad884684 (diff)
downloadmediapointer-dvb-s2-f4966c6d0360ca710d2d5fa52c689d1981369e94.tar.gz
mediapointer-dvb-s2-f4966c6d0360ca710d2d5fa52c689d1981369e94.tar.bz2
patch by Jon Burgess:
Reduce the number of dropped TS packets when an error is detected.
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_demux.c4
-rw-r--r--linux/drivers/media/dvb/ttpci/budget-core.c3
2 files changed, 3 insertions, 4 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_demux.c b/linux/drivers/media/dvb/dvb-core/dvb_demux.c
index 625f41c05..586a88f5b 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_demux.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_demux.c
@@ -393,7 +393,9 @@ void dvb_dmx_swfilter_packets(struct dvb_demux *demux, const u8 *buf, size_t cou
spin_lock(&demux->lock);
while (count--) {
- dvb_dmx_swfilter_packet(demux, buf);
+ if(buf[0] == 0x47) {
+ dvb_dmx_swfilter_packet(demux, buf);
+ }
buf += 188;
}
diff --git a/linux/drivers/media/dvb/ttpci/budget-core.c b/linux/drivers/media/dvb/ttpci/budget-core.c
index 98e0387f1..df1df95b4 100644
--- a/linux/drivers/media/dvb/ttpci/budget-core.c
+++ b/linux/drivers/media/dvb/ttpci/budget-core.c
@@ -80,14 +80,11 @@ static void vpeirq (unsigned long data)
return;
if (newdma > olddma) { /* no wraparound, dump olddma..newdma */
- if(mem[olddma] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux,
mem+olddma, (newdma-olddma) / 188);
} else { /* wraparound, dump olddma..buflen and 0..newdma */
- if(mem[olddma] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux,
mem+olddma, (TS_BUFLEN-olddma) / 188);
- if(mem[0] == 0x47)
dvb_dmx_swfilter_packets(&budget->demux,
mem, newdma / 188);
}