• Mark Adams's avatar
    [PATCH] dvb: fix bug in demux that caused lost mpeg sections · b3967d6c
    Mark Adams authored
    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: default avatarMark Adams <mark147m@gmail.com>
    Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
    Cc: Johannes Stezenbach <js@linuxtv.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    b3967d6c
dvb_demux.c 28.4 KB