summaryrefslogtreecommitdiffstats
path: root/stream/dvb_tune.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/dvb_tune.c')
-rw-r--r--stream/dvb_tune.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/stream/dvb_tune.c b/stream/dvb_tune.c
index da4a8f5ad3..d3993ae65d 100644
--- a/stream/dvb_tune.c
+++ b/stream/dvb_tune.c
@@ -714,8 +714,18 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys,
int tune_status = check_status(priv, fd_frontend, timeout);
if (tune_status != 0) {
- MP_ERR(priv, "ERROR locking to channel when tuning with S2API, falling back to DVBv3-tuning.\n");
- goto old_api;
+ MP_ERR(priv, "ERROR locking to channel when tuning with S2API, clearing and falling back to DVBv3-tuning.\n");
+ struct dtv_property p_clear[] = {
+ { .cmd = DTV_CLEAR },
+ };
+ struct dtv_properties cmdseq_clear = {
+ .num = 1,
+ .props = p_clear
+ };
+ if (ioctl(fd_frontend, FE_SET_PROPERTY, &cmdseq_clear) < 0) {
+ MP_ERR(priv, "FE_SET_PROPERTY DTV_CLEAR failed\n");
+ }
+ goto old_api;
} else {
return tune_status;
}