summaryrefslogtreecommitdiffstats
path: root/stream/dvb_tune.c
diff options
context:
space:
mode:
authorOliver Freyermuth <o.freyermuth@googlemail.com>2017-10-08 05:01:55 +0200
committerOliver Freyermuth <o.freyermuth@googlemail.com>2017-10-09 20:06:29 +0200
commite46338c66a6ded23c364d79d5beb2432980cba19 (patch)
tree9f490378f591bf12cbf2e8b29b0a1fd37646ed43 /stream/dvb_tune.c
parent20381a5f5a933744503a0889dca5dba68222aa73 (diff)
downloadmpv-e46338c66a6ded23c364d79d5beb2432980cba19.tar.bz2
mpv-e46338c66a6ded23c364d79d5beb2432980cba19.tar.xz
dvb: Fixes for ATSC tuning.
ATSC is a mix of terrestrial and cable, and depending on modulation is actually using DVBC_ANNEX_B. Thus, we need to override the delivery system depending on the modulation, channel by channel. Signed-off-by: Oliver Freyermuth <o.freyermuth@googlemail.com>
Diffstat (limited to 'stream/dvb_tune.c')
-rw-r--r--stream/dvb_tune.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/stream/dvb_tune.c b/stream/dvb_tune.c
index bc7b099c89..7c24af104e 100644
--- a/stream/dvb_tune.c
+++ b/stream/dvb_tune.c
@@ -152,11 +152,9 @@ old_api:
if ((FE_CAN_8VSB | FE_CAN_16VSB) & fe_info.caps) {
DELSYS_SET(ret_mask, SYS_ATSC);
}
-#if 0 /* Not used now. */
if ((FE_CAN_QAM_64 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO) & fe_info.caps) {
DELSYS_SET(ret_mask, SYS_DVBC_ANNEX_B);
}
-#endif
break;
#endif
default:
@@ -598,6 +596,7 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys,
break;
#ifdef DVB_ATSC
case SYS_ATSC:
+ case SYS_DVBC_ANNEX_B:
MP_VERBOSE(priv, "tuning %s to %d, modulation=%d\n",
get_dvb_delsys(delsys), freq, modulation);
break;
@@ -700,6 +699,7 @@ static int tune_it(dvb_priv_t *priv, int fd_frontend, unsigned int delsys,
break;
#ifdef DVB_ATSC
case SYS_ATSC:
+ case SYS_DVBC_ANNEX_B:
{
struct dtv_property p[] = {
{ .cmd = DTV_DELIVERY_SYSTEM, .u.data = delsys },
@@ -768,6 +768,7 @@ old_api:
break;
#ifdef DVB_ATSC
case SYS_ATSC:
+ case SYS_DVBC_ANNEX_B:
feparams.u.vsb.modulation = modulation;
break;
#endif