diff options
author | Michael Krufky <mkrufky@kernellabs.com> | 2011-09-08 05:30:31 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-09-09 20:11:55 +0200 |
commit | 4b5d01e9f66446be0c2beebfab0463210bed315d (patch) | |
tree | 2b11f4331c972c6d6a1e6b0c873e7d2e476fb0cb /drivers/media/dvb/dvb-usb | |
parent | [media] saa7164: Add support for another HVR2200 hardware revision (diff) | |
download | linux-4b5d01e9f66446be0c2beebfab0463210bed315d.tar.xz linux-4b5d01e9f66446be0c2beebfab0463210bed315d.zip |
[media] dvb-usb: fix streaming failure on channel change
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>
Diffstat (limited to 'drivers/media/dvb/dvb-usb')
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-dvb.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c index 3f1115925ce6..460b5ae1a45d 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-dvb.c @@ -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; } |