Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: [PATCH] section demux rewritten
> Emard, since the new code is executed unconditionally, could you please
> clean things up and remove the old code?
Cleanup patch is here (does nothing functionally),
I have applied it, compiled and tested, everything's normally running...
Emard
Only in dvb-kernel/build-2.4: .alps_tdlb7.o.flags
Only in dvb-kernel/build-2.4: .alps_tdmb7.o.flags
Only in dvb-kernel/build-2.4: .at76c651.o.flags
Only in dvb-kernel/build-2.4: .av7110.o.flags
Only in dvb-kernel/build-2.4: .av7110_ipack.o.flags
Only in dvb-kernel/build-2.4: .av7110_ir.o.flags
Only in dvb-kernel/build-2.4: .bt878.o.flags
Only in dvb-kernel/build-2.4: .budget-av.o.flags
Only in dvb-kernel/build-2.4: .budget-ci.o.flags
Only in dvb-kernel/build-2.4: .budget-core.o.flags
Only in dvb-kernel/build-2.4: .budget-patch.o.flags
Only in dvb-kernel/build-2.4: .budget.o.flags
Only in dvb-kernel/build-2.4: .cx24110.o.flags
Only in dvb-kernel/build-2.4: .dec2000_frontend.o.flags
Only in dvb-kernel/build-2.4: .dmxdev.o.flags
Only in dvb-kernel/build-2.4: .dst.o.flags
Only in dvb-kernel/build-2.4: .dvb-bt8xx.o.flags
Only in dvb-kernel/build-2.4: .dvb-ttusb-budget.o.flags
Only in dvb-kernel/build-2.4: .dvb_compat.o.flags
Only in dvb-kernel/build-2.4: .dvb_demux.o.flags
Only in dvb-kernel/build-2.4: .dvb_dummy_fe.o.flags
Only in dvb-kernel/build-2.4: .dvb_filter.o.flags
Only in dvb-kernel/build-2.4: .dvb_frontend.o.flags
Only in dvb-kernel/build-2.4: .dvb_functions.o.flags
Only in dvb-kernel/build-2.4: .dvb_i2c.o.flags
Only in dvb-kernel/build-2.4: .dvb_ksyms.o.flags
Only in dvb-kernel/build-2.4: .dvb_net.o.flags
Only in dvb-kernel/build-2.4: .dvb_ringbuffer.o.flags
Only in dvb-kernel/build-2.4: .dvbdev.o.flags
Only in dvb-kernel/build-2.4: .grundig_29504-401.o.flags
Only in dvb-kernel/build-2.4: .grundig_29504-491.o.flags
Only in dvb-kernel/build-2.4: .mt312.o.flags
Only in dvb-kernel/build-2.4: .nxt6000.o.flags
Only in dvb-kernel/build-2.4: .saa7146_core.o.flags
Only in dvb-kernel/build-2.4: .saa7146_fops.o.flags
Only in dvb-kernel/build-2.4: .saa7146_hlp.o.flags
Only in dvb-kernel/build-2.4: .saa7146_i2c.o.flags
Only in dvb-kernel/build-2.4: .saa7146_vbi.o.flags
Only in dvb-kernel/build-2.4: .saa7146_video.o.flags
Only in dvb-kernel/build-2.4: .saa7146_vv_ksyms.o.flags
Only in dvb-kernel/build-2.4: .skystar2.o.flags
Only in dvb-kernel/build-2.4: .sp887x.o.flags
Only in dvb-kernel/build-2.4: .stv0299.o.flags
Only in dvb-kernel/build-2.4: .tda1004x.o.flags
Only in dvb-kernel/build-2.4: .ttpci-eeprom.o.flags
Only in dvb-kernel/build-2.4: .ttusb_dec.o.flags
Only in dvb-kernel/build-2.4: .v4l1-compat.o.flags
Only in dvb-kernel/build-2.4: .v4l2-common.o.flags
Only in dvb-kernel/build-2.4: .version
Only in dvb-kernel/build-2.4: .ves1820.o.flags
Only in dvb-kernel/build-2.4: .ves1x93.o.flags
Only in dvb-kernel/build-2.4: .video-buf.o.flags
Only in dvb-kernel/build-2.4: alps_tdlb7.c
Only in dvb-kernel/build-2.4: alps_tdlb7.d
Only in dvb-kernel/build-2.4: alps_tdlb7.o
Only in dvb-kernel/build-2.4: alps_tdmb7.c
Only in dvb-kernel/build-2.4: alps_tdmb7.d
Only in dvb-kernel/build-2.4: alps_tdmb7.o
Only in dvb-kernel/build-2.4: at76c651.c
Only in dvb-kernel/build-2.4: at76c651.d
Only in dvb-kernel/build-2.4: at76c651.o
Only in dvb-kernel/build-2.4: av7110.c
Only in dvb-kernel/build-2.4: av7110.d
Only in dvb-kernel/build-2.4: av7110.h
Only in dvb-kernel/build-2.4: av7110.o
Only in dvb-kernel/build-2.4: av7110_firm.h
Only in dvb-kernel/build-2.4: av7110_ipack.c
Only in dvb-kernel/build-2.4: av7110_ipack.d
Only in dvb-kernel/build-2.4: av7110_ipack.h
Only in dvb-kernel/build-2.4: av7110_ipack.o
Only in dvb-kernel/build-2.4: av7110_ir.c
Only in dvb-kernel/build-2.4: av7110_ir.d
Only in dvb-kernel/build-2.4: av7110_ir.o
Only in dvb-kernel/build-2.4: bt878.c
Only in dvb-kernel/build-2.4: bt878.d
Only in dvb-kernel/build-2.4: bt878.h
Only in dvb-kernel/build-2.4: bt878.o
Only in dvb-kernel/build-2.4: budget-av.c
Only in dvb-kernel/build-2.4: budget-av.d
Only in dvb-kernel/build-2.4: budget-av.o
Only in dvb-kernel/build-2.4: budget-ci.c
Only in dvb-kernel/build-2.4: budget-ci.d
Only in dvb-kernel/build-2.4: budget-ci.o
Only in dvb-kernel/build-2.4: budget-core.c
Only in dvb-kernel/build-2.4: budget-core.d
Only in dvb-kernel/build-2.4: budget-core.o
Only in dvb-kernel/build-2.4: budget-patch.c
Only in dvb-kernel/build-2.4: budget-patch.d
Only in dvb-kernel/build-2.4: budget-patch.o
Only in dvb-kernel/build-2.4: budget.c
Only in dvb-kernel/build-2.4: budget.d
Only in dvb-kernel/build-2.4: budget.h
Only in dvb-kernel/build-2.4: budget.o
Only in dvb-kernel/build-2.4: cx24110.c
Only in dvb-kernel/build-2.4: cx24110.d
Only in dvb-kernel/build-2.4: cx24110.o
Only in dvb-kernel/build-2.4: dec2000_frontend.c
Only in dvb-kernel/build-2.4: dec2000_frontend.d
Only in dvb-kernel/build-2.4: dec2000_frontend.o
Only in dvb-kernel/build-2.4: demux.h
Only in dvb-kernel/build-2.4: dmxdev.c
Only in dvb-kernel/build-2.4: dmxdev.d
Only in dvb-kernel/build-2.4: dmxdev.h
Only in dvb-kernel/build-2.4: dmxdev.o
Only in dvb-kernel/build-2.4: dsp_dec2000.h
Only in dvb-kernel/build-2.4: dst-bt878.h
Only in dvb-kernel/build-2.4: dst.c
Only in dvb-kernel/build-2.4: dst.d
Only in dvb-kernel/build-2.4: dst.o
Only in dvb-kernel/build-2.4: dvb-bt8xx.c
Only in dvb-kernel/build-2.4: dvb-bt8xx.d
Only in dvb-kernel/build-2.4: dvb-bt8xx.h
Only in dvb-kernel/build-2.4: dvb-bt8xx.o
Only in dvb-kernel/build-2.4: dvb-core.o
Only in dvb-kernel/build-2.4: dvb-ttpci-budget-av.o
Only in dvb-kernel/build-2.4: dvb-ttpci-budget-ci.o
Only in dvb-kernel/build-2.4: dvb-ttpci-budget-patch.o
Only in dvb-kernel/build-2.4: dvb-ttpci-budget.o
Only in dvb-kernel/build-2.4: dvb-ttpci.o
Only in dvb-kernel/build-2.4: dvb-ttusb-budget.c
Only in dvb-kernel/build-2.4: dvb-ttusb-budget.d
Only in dvb-kernel/build-2.4: dvb-ttusb-budget.o
Only in dvb-kernel/build-2.4: dvb-ttusb-dec.o
Only in dvb-kernel/build-2.4: dvb-ttusb-dspbootcode.h
Only in dvb-kernel/build-2.4: dvb_compat.c
Only in dvb-kernel/build-2.4: dvb_compat.d
Only in dvb-kernel/build-2.4: dvb_compat.h
Only in dvb-kernel/build-2.4: dvb_compat.o
Only in dvb-kernel/build-2.4: dvb_demux.c
Only in dvb-kernel/build-2.4: dvb_demux.d
Only in dvb-kernel/build-2.4: dvb_demux.h
Only in dvb-kernel/build-2.4: dvb_demux.o
Only in dvb-kernel/build-2.4: dvb_dummy_fe.c
Only in dvb-kernel/build-2.4: dvb_dummy_fe.d
Only in dvb-kernel/build-2.4: dvb_dummy_fe.o
Only in dvb-kernel/build-2.4: dvb_filter.c
Only in dvb-kernel/build-2.4: dvb_filter.d
Only in dvb-kernel/build-2.4: dvb_filter.h
Only in dvb-kernel/build-2.4: dvb_filter.o
Only in dvb-kernel/build-2.4: dvb_frontend.c
Only in dvb-kernel/build-2.4: dvb_frontend.d
Only in dvb-kernel/build-2.4: dvb_frontend.h
Only in dvb-kernel/build-2.4: dvb_frontend.o
Only in dvb-kernel/build-2.4: dvb_functions.c
Only in dvb-kernel/build-2.4: dvb_functions.d
Only in dvb-kernel/build-2.4: dvb_functions.h
Only in dvb-kernel/build-2.4: dvb_functions.o
Only in dvb-kernel/build-2.4: dvb_i2c.c
Only in dvb-kernel/build-2.4: dvb_i2c.d
Only in dvb-kernel/build-2.4: dvb_i2c.h
Only in dvb-kernel/build-2.4: dvb_i2c.o
Only in dvb-kernel/build-2.4: dvb_ksyms.c
Only in dvb-kernel/build-2.4: dvb_ksyms.d
Only in dvb-kernel/build-2.4: dvb_ksyms.o
Only in dvb-kernel/build-2.4: dvb_net.c
Only in dvb-kernel/build-2.4: dvb_net.d
Only in dvb-kernel/build-2.4: dvb_net.h
Only in dvb-kernel/build-2.4: dvb_net.o
Only in dvb-kernel/build-2.4: dvb_ringbuffer.c
Only in dvb-kernel/build-2.4: dvb_ringbuffer.d
Only in dvb-kernel/build-2.4: dvb_ringbuffer.h
Only in dvb-kernel/build-2.4: dvb_ringbuffer.o
Only in dvb-kernel/build-2.4: dvb_usb_compat.h
Only in dvb-kernel/build-2.4: dvbdev.c
Only in dvb-kernel/build-2.4: dvbdev.d
Only in dvb-kernel/build-2.4: dvbdev.h
Only in dvb-kernel/build-2.4: dvbdev.o
Only in dvb-kernel/build-2.4: fdump
Only in dvb-kernel/build-2.4: fdump.c
Only in dvb-kernel/build-2.4: grundig_29504-401.c
Only in dvb-kernel/build-2.4: grundig_29504-401.d
Only in dvb-kernel/build-2.4: grundig_29504-401.o
Only in dvb-kernel/build-2.4: grundig_29504-491.c
Only in dvb-kernel/build-2.4: grundig_29504-491.d
Only in dvb-kernel/build-2.4: grundig_29504-491.o
Only in dvb-kernel/build-2.4/include/linux: videodev.h
Only in dvb-kernel/build-2.4/include/media: saa7146.h
Only in dvb-kernel/build-2.4/include/media: saa7146_vv.h
Only in dvb-kernel/build-2.4: mt312.c
Only in dvb-kernel/build-2.4: mt312.d
Only in dvb-kernel/build-2.4: mt312.h
Only in dvb-kernel/build-2.4: mt312.o
Only in dvb-kernel/build-2.4: nxt6000.c
Only in dvb-kernel/build-2.4: nxt6000.d
Only in dvb-kernel/build-2.4: nxt6000.h
Only in dvb-kernel/build-2.4: nxt6000.o
Only in dvb-kernel/build-2.4: saa7146.o
Only in dvb-kernel/build-2.4: saa7146_core.c
Only in dvb-kernel/build-2.4: saa7146_core.d
Only in dvb-kernel/build-2.4: saa7146_core.o
Only in dvb-kernel/build-2.4: saa7146_fops.c
Only in dvb-kernel/build-2.4: saa7146_fops.d
Only in dvb-kernel/build-2.4: saa7146_fops.o
Only in dvb-kernel/build-2.4: saa7146_hlp.c
Only in dvb-kernel/build-2.4: saa7146_hlp.d
Only in dvb-kernel/build-2.4: saa7146_hlp.o
Only in dvb-kernel/build-2.4: saa7146_i2c.c
Only in dvb-kernel/build-2.4: saa7146_i2c.d
Only in dvb-kernel/build-2.4: saa7146_i2c.o
Only in dvb-kernel/build-2.4: saa7146_vbi.c
Only in dvb-kernel/build-2.4: saa7146_vbi.d
Only in dvb-kernel/build-2.4: saa7146_vbi.o
Only in dvb-kernel/build-2.4: saa7146_video.c
Only in dvb-kernel/build-2.4: saa7146_video.d
Only in dvb-kernel/build-2.4: saa7146_video.o
Only in dvb-kernel/build-2.4: saa7146_vv.o
Only in dvb-kernel/build-2.4: saa7146_vv_ksyms.c
Only in dvb-kernel/build-2.4: saa7146_vv_ksyms.d
Only in dvb-kernel/build-2.4: saa7146_vv_ksyms.o
Only in dvb-kernel/build-2.4: skystar2.c
Only in dvb-kernel/build-2.4: skystar2.d
Only in dvb-kernel/build-2.4: skystar2.o
Only in dvb-kernel/build-2.4: sp887x.c
Only in dvb-kernel/build-2.4: sp887x.d
Only in dvb-kernel/build-2.4: sp887x.o
Only in dvb-kernel/build-2.4: stv0299.c
Only in dvb-kernel/build-2.4: stv0299.d
Only in dvb-kernel/build-2.4: stv0299.o
Only in dvb-kernel/build-2.4: tda1004x.c
Only in dvb-kernel/build-2.4: tda1004x.d
Only in dvb-kernel/build-2.4: tda1004x.o
Only in dvb-kernel/build-2.4: ttpci-eeprom.c
Only in dvb-kernel/build-2.4: ttpci-eeprom.d
Only in dvb-kernel/build-2.4: ttpci-eeprom.h
Only in dvb-kernel/build-2.4: ttpci-eeprom.o
Only in dvb-kernel/build-2.4: ttusb_dec.c
Only in dvb-kernel/build-2.4: ttusb_dec.d
Only in dvb-kernel/build-2.4: ttusb_dec.h
Only in dvb-kernel/build-2.4: ttusb_dec.o
Only in dvb-kernel/build-2.4: v4l1-compat.d
Only in dvb-kernel/build-2.4: v4l1-compat.o
Only in dvb-kernel/build-2.4: v4l2-common.d
Only in dvb-kernel/build-2.4: v4l2-common.o
Only in dvb-kernel/build-2.4: ves1820.c
Only in dvb-kernel/build-2.4: ves1820.d
Only in dvb-kernel/build-2.4: ves1820.o
Only in dvb-kernel/build-2.4: ves1x93.c
Only in dvb-kernel/build-2.4: ves1x93.d
Only in dvb-kernel/build-2.4: ves1x93.o
Only in dvb-kernel/build-2.4: video-buf.d
Only in dvb-kernel/build-2.4: video-buf.o
diff -pur dvb-kernel.orig/linux/drivers/media/dvb/dvb-core/dvb_demux.c dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_demux.c
--- dvb-kernel.orig/linux/drivers/media/dvb/dvb-core/dvb_demux.c Tue Dec 2 23:24:14 2003
+++ dvb-kernel/linux/drivers/media/dvb/dvb-core/dvb_demux.c Tue Dec 2 23:28:06 2003
@@ -34,6 +34,11 @@
#include "dvb_functions.h"
#define NOBUFS
+/*
+** #define DVB_DEMUX_SECTION_LOSS_LOG to monitor payload loss in the syslog
+*/
+// #define DVB_DEMUX_SECTION_LOSS_LOG
+
LIST_HEAD(dmx_muxs);
@@ -218,13 +223,6 @@ static inline int dvb_dmx_swfilter_secti
}
-
-#if 1
-/*
-** #define DVB_DEMUX_SECTION_LOSS_LOG to monitor payload loss in the syslog
-*/
-// #define DVB_DEMUX_SECTION_LOSS_LOG
-
static void dvb_dmx_swfilter_section_new(struct dvb_demux_feed *feed)
{
struct dmx_section_feed *sec = &feed->feed.sec;
@@ -287,7 +285,7 @@ static int dvb_dmx_swfilter_section_copy
limit = sec->tsfeedp;
if(limit > DMX_MAX_SECFEED_SIZE)
- return -1; /* internal error shoud never happen */
+ return -1; /* internal error should never happen */
/* to be sure always set secbuf */
sec->secbuf = sec->secbuf_base + sec->secbufp;
@@ -331,7 +329,7 @@ static int dvb_dmx_swfilter_section_pack
#ifdef DVB_DEMUX_SECTION_LOSS_LOG
printk("dvb_demux.c discontinuity detected %d bytes lost\n", count);
/* those bytes under sume circumstances will again be reported
- ** in the fullowing dvb_dmx_swfilter_section_new
+ ** in the following dvb_dmx_swfilter_section_new
*/
#endif
dvb_dmx_swfilter_section_new(feed);
@@ -368,133 +366,7 @@ static int dvb_dmx_swfilter_section_pack
}
return 0;
}
-#else
-static int dvb_dmx_swfilter_section_packet(struct dvb_demux_feed *feed, const u8 *buf)
-{
- struct dvb_demux *demux = feed->demux;
- struct dmx_section_feed *sec = &feed->feed.sec;
- int p, count;
- int ccok, rest;
- u8 cc;
-
- if (!(count = payload(buf)))
- return -1;
-
- p = 188-count;
-
- cc = buf[3] & 0x0f;
- ccok = ((feed->cc+1) & 0x0f) == cc ? 1 : 0;
- feed->cc = cc;
-
- if (buf[1] & 0x40) { // PUSI set
- // offset to start of first section is in buf[p]
- if (p+buf[p]>187) // trash if it points beyond packet
- return -1;
-
- if (buf[p] && ccok) { // rest of previous section?
- // did we have enough data in last packet to calc length?
- int tmp = 3 - sec->secbufp;
-
- if (tmp > 0 && tmp != 3) {
- if (p + tmp >= 187)
- return -1;
-
- demux->memcopy (feed, sec->secbuf+sec->secbufp,
- buf+p+1, tmp);
-
- sec->seclen = section_length(sec->secbuf);
-
- if (sec->seclen > 4096)
- return -1;
- }
-
- rest = sec->seclen - sec->secbufp;
-
- if (rest == buf[p] && sec->seclen) {
- demux->memcopy (feed, sec->secbuf + sec->secbufp,
- buf+p+1, buf[p]);
- sec->secbufp += buf[p];
- dvb_dmx_swfilter_section_feed(feed);
- }
- }
-
- p += buf[p] + 1; // skip rest of last section
- count = 188 - p;
-
- while (count > 0) {
-
- sec->crc_val = ~0;
-
- if ((count>2) && // enough data to determine sec length?
- ((sec->seclen = section_length(buf+p)) <= count)) {
- if (sec->seclen>4096)
- return -1;
-
- demux->memcopy (feed, sec->secbuf, buf+p,
- sec->seclen);
- sec->secbufp = sec->seclen;
- p += sec->seclen;
- count = 188 - p;
-
- dvb_dmx_swfilter_section_feed(feed);
-
- // filling bytes until packet end?
- if (count && buf[p]==0xff)
- count=0;
-
- } else { // section continues to following TS packet
- demux->memcopy(feed, sec->secbuf, buf+p, count);
- sec->secbufp+=count;
- count=0;
- }
- }
-
- return 0;
- }
-
- // section continued below
- if (!ccok)
- return -1;
-
- if (!sec->secbufp) // any data in last ts packet?
- return -1;
-
- // did we have enough data in last packet to calc section length?
- if (sec->secbufp < 3) {
- int tmp = 3 - sec->secbufp;
-
- if (tmp>count)
- return -1;
-
- sec->crc_val = ~0;
-
- demux->memcopy (feed, sec->secbuf + sec->secbufp, buf+p, tmp);
-
- sec->seclen = section_length(sec->secbuf);
-
- if (sec->seclen > 4096)
- return -1;
- }
-
- rest = sec->seclen - sec->secbufp;
-
- if (rest < 0)
- return -1;
-
- if (rest <= count) { // section completed in this TS packet
- demux->memcopy (feed, sec->secbuf + sec->secbufp, buf+p, rest);
- sec->secbufp += rest;
- dvb_dmx_swfilter_section_feed(feed);
- } else { // section continues in following ts packet
- demux->memcopy (feed, sec->secbuf + sec->secbufp, buf+p, count);
- sec->secbufp += count;
- }
-
- return 0;
-}
-
-#endif
static inline void dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *feed, const u8 *buf)
{
Only in dvb-kernel/linux/drivers/media/dvb/dvb-core: dvb_demux.c~
Home |
Main Index |
Thread Index