• Henrik Kurelid's avatar
    V4L/DVB (12482): firedtv: add PID filtering for SW zigzag retune · 166987c6
    Henrik Kurelid authored
    The AVC protocol uses the same command for tuning and PID filtering and
    since dvb-core uses a software zigzagging to do automatic retuning this
    could cause all PID filters to be cleared.  PID filter information is
    now included in all DSD commands to the card.
    
    Background:
    
    There is a problem in the firedtv driver that causes recordings to stop
    if the SW zigzag algorithm in dvb-core kicks in with a retune after the
    application has set up the PID filters.  Since tuning and setting PID
    filters uses the same AVC command (DSD) and only the replace subfunction
    is supported by the card, it is not possible to do a retune without
    setting the PID filters.  This means that the PID filtering has to be
    sent in each tune.
    
    This problem applies to C and T cards since S and S2 cards tune using a
    vendor specific command.  The patch corrects the problem by sending the
    PID list in each tune.  I have tested it on my T card with a good
    result.
    
    How to trigger problem:  Zap to a channel and output AV to a file, e.g.
    "tzap -c channels.conf SVT1 -r -o SVT1.ts".  After a short while, pull
    the antenna cable from the card.  The lock on the channel will disappear
    and the TS file will stop increasing in size. Wait a couple of seconds.
    Replug the cable again.  You will get a lock on the channel again, but
    the TS file will never increase in size agains sinze no PIDS are
    filtered.
    
    Tested with kaffeine with DVB-T and DVB-C:  Fixes retuning after antenna
    was plugged out and back in with DVB-T.  Does not fix this with DVB-C,
    but also doesn't regress on DVB-C.
    Signed-off-by: default avatarHenrik Kurelid <henrik@kurelid.se>
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
    166987c6
firedtv-avc.c 36.9 KB