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