1
linux/drivers/media/dvb/dvb-core
Mark Adams b3967d6c25 [PATCH] dvb: fix bug in demux that caused lost mpeg sections
Fix a bug in the software demux which causes large MPEG sections to be lost
when they follow very small sections.

The problem happens when two sections begin in the same transport packet.  The
dvb_demux code resets its buffer only before the first of these sections.
This means that when the second (or subsequent) section begins, there is up to
182 bytes of buffer space already used.  If the following section is close to
the maximum size, it currently won't fit in the (4096-byte) buffer and is
thrown away.

The fix is simply to enlarge the buffer by the size of one transport packet
and correct one usage of the SECFEED_SIZE definition where what is really
meant is the maximum size of a section.

Signed-off-by: Mark Adams <mark147m@gmail.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Cc: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:56:05 -08:00
..
demux.h [PATCH] dvb: fix bug in demux that caused lost mpeg sections 2005-11-09 07:56:05 -08:00
dmxdev.c [PATCH] dvb: core: dvb_demux: remove more unused cruft 2005-09-09 13:57:37 -07:00
dmxdev.h
dvb_ca_en50221.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
dvb_ca_en50221.h
dvb_demux.c [PATCH] dvb: fix bug in demux that caused lost mpeg sections 2005-11-09 07:56:05 -08:00
dvb_demux.h [PATCH] dvb: core: dvb_demux formatting fixes 2005-09-09 13:57:37 -07:00
dvb_filter.c
dvb_filter.h
dvb_frontend.c [PATCH] dvb: Remove DEBUG_LOCKLOSS stuff 2005-11-09 07:56:03 -08:00
dvb_frontend.h [PATCH] dvb: let other frontends support FE_DISHNETWORK_SEND_LEGACY_CMD 2005-11-09 07:56:03 -08:00
dvb_net.c [PATCH] dvb: core: dvb_demux: remove more unused cruft 2005-09-09 13:57:37 -07:00
dvb_net.h
dvb_ringbuffer.c
dvb_ringbuffer.h
dvbdev.c [PATCH] Driver Core: fix up all callers of class_device_create() 2005-10-28 09:52:52 -07:00
dvbdev.h
Kconfig
Makefile