[media] dvb-usb: fix streaming failure on channel change
authorMichael Krufky <mkrufky@kernellabs.com>
Thu, 8 Sep 2011 03:30:31 +0000 (00:30 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 9 Sep 2011 18:11:55 +0000 (15:11 -0300)
This fixes a bug introduced by a previous changeset entitled,
[media] dvb-usb: refactor MFE code for individual streaming config per frontend

As reported by Antti Palosaari, This error is shown by VLC when channel changed:

[0x7f1bbc000cd0] dvb access error: DMXSetFilter: failed with -1 (Invalid argument)
[0x7f1bbc000cd0] dvb access error: DMXSetFilter failed
[0x7f1bbc32f910] main stream error: cannot pre fill buffer

After my own investigations, I've determined that this error case occurs when
the application stops streaming but leaves the frontend and dvr devices open.
A typical example of this usage would be a channel change operation while
watching live television. The error occurs when the application attempts to
stream after tuning to the new channel.

To prevent this error, don't set adap->active_fe to -1 unless the application
closes the device.

Cc: Antti Palosaari <crope@iki.fi>
Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/dvb-usb/dvb-usb-dvb.c

index 3f11159..460b5ae 100644 (file)
@@ -77,9 +77,6 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
                }
 
        }
-       if ((adap->feedcount == onoff) && (!onoff))
-               adap->active_fe = -1;
-
        return 0;
 }