[vlc-commits] dvb: do not parse string options as integer ones (fixes #9643)
Rémi Denis-Courmont
git at videolan.org
Thu Oct 10 21:23:02 CEST 2013
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Oct 10 22:22:23 2013 +0300| [bdaf35264ef25e3a6489cabafe841efcee0063b3] | committer: Rémi Denis-Courmont
dvb: do not parse string options as integer ones (fixes #9643)
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bdaf35264ef25e3a6489cabafe841efcee0063b3
---
modules/access/dvb/access.c | 33 -----------------
modules/access/dvb/linux_dvb.c | 79 +++++-----------------------------------
modules/access/dvb/scan.c | 2 -
3 files changed, 10 insertions(+), 104 deletions(-)
diff --git a/modules/access/dvb/access.c b/modules/access/dvb/access.c
index f29fcf4..df89f37 100644
--- a/modules/access/dvb/access.c
+++ b/modules/access/dvb/access.c
@@ -125,11 +125,6 @@ static int Open( vlc_object_t *p_this )
if( ParseMRL( p_access ) )
{
free( p_sys );
- var_Destroy( p_access, "dvb-modulation" );
- var_Destroy( p_access, "dvb-fec" );
- var_Destroy( p_access, "dvb-code-rate-hp" );
- var_Destroy( p_access, "dvb-code-rate-lp" );
- var_Destroy( p_access, "dvb-guard" );
return VLC_EGENERIC;
}
@@ -236,17 +231,9 @@ static block_t *BlockScan( access_t *p_access )
var_SetInteger( p_access, "dvb-frequency", cfg.i_frequency );
msg_Dbg( p_access, " bandwidth %d", cfg.i_bandwidth );
var_SetInteger( p_access, "dvb-bandwidth", cfg.i_bandwidth );
- if ( cfg.i_fec )
- {
- msg_Dbg( p_access, " FEC %d", cfg.i_fec );
- var_SetInteger( p_access, "dvb-fec", cfg.i_fec );
- }
if ( cfg.c_polarization )
var_SetInteger( p_access, "dvb-voltage", cfg.c_polarization == 'H' ? 18 : 13 );
- if ( cfg.i_modulation )
- var_SetInteger( p_access, "dvb-modulation", cfg.i_modulation );
-
if ( cfg.i_symbolrate )
var_SetInteger( p_access, "dvb-srate", cfg.i_symbolrate );
@@ -467,13 +454,6 @@ static void FilterUnset( access_t *p_access, int i_max )
*****************************************************************************/
static void VarInit( access_t *p_access )
{
- var_Destroy( p_access, "dvb-modulation" );
- var_Destroy( p_access, "dvb-fec" );
- var_Destroy( p_access, "dvb-code-rate-hp" );
- var_Destroy( p_access, "dvb-code-rate-lp" );
- var_Destroy( p_access, "dvb-guard" );
-
- /* */
var_Create( p_access, "dvb-adapter", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-device", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-frequency", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
@@ -486,21 +466,14 @@ static void VarInit( access_t *p_access )
var_Create( p_access, "dvb-voltage", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-high-voltage", VLC_VAR_BOOL | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-tone", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_access, "dvb-fec", VLC_VAR_INTEGER );
var_Create( p_access, "dvb-srate", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-lnb-lof1", VLC_VAR_INTEGER );
var_Create( p_access, "dvb-lnb-lof2", VLC_VAR_INTEGER );
var_Create( p_access, "dvb-lnb-slof", VLC_VAR_INTEGER );
/* */
- var_Create( p_access, "dvb-modulation", VLC_VAR_INTEGER );
-
- /* */
- var_Create( p_access, "dvb-code-rate-hp", VLC_VAR_INTEGER );
- var_Create( p_access, "dvb-code-rate-lp", VLC_VAR_INTEGER );
var_Create( p_access, "dvb-bandwidth", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
var_Create( p_access, "dvb-transmission", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
- var_Create( p_access, "dvb-guard", VLC_VAR_INTEGER );
var_Create( p_access, "dvb-hierarchy", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
}
@@ -553,19 +526,13 @@ static int ParseMRL( access_t *p_access )
else GET_OPTION_BOOL("high-voltage")
else GET_OPTION_INT("tone")
else GET_OPTION_INT("satno")
- else GET_OPTION_INT("fec")
else GET_OPTION_INT("srate")
else GET_OPTION_INT("lnb-lof1")
else GET_OPTION_INT("lnb-lof2")
else GET_OPTION_INT("lnb-slof")
- else GET_OPTION_INT("modulation")
-
- else GET_OPTION_INT("code-rate-hp")
- else GET_OPTION_INT("code-rate-lp")
else GET_OPTION_INT("bandwidth")
else GET_OPTION_INT("transmission")
- else GET_OPTION_INT("guard")
else GET_OPTION_INT("hierarchy")
/* Redundant with voltage but much easier to use */
diff --git a/modules/access/dvb/linux_dvb.c b/modules/access/dvb/linux_dvb.c
index 7c12e89..d995c3a 100644
--- a/modules/access/dvb/linux_dvb.c
+++ b/modules/access/dvb/linux_dvb.c
@@ -407,9 +407,8 @@ static int ScanParametersDvbC( access_t *p_access, scan_parameter_t *p_scan )
? p_frontend->info.frequency_stepsize : 166667;
p_scan->frequency.i_count = (p_scan->frequency.i_max-p_scan->frequency.i_min)/p_scan->frequency.i_step;
- /* if user supplies modulation or frontend can do auto, don't scan them */
- if( var_GetInteger( p_access, "dvb-modulation" ) ||
- p_frontend->info.caps & FE_CAN_QAM_AUTO )
+ /* if frontend can do auto, don't scan them */
+ if( p_frontend->info.caps & FE_CAN_QAM_AUTO )
{
p_scan->b_modulation_set = true;
} else {
@@ -628,41 +627,6 @@ static fe_spectral_inversion_t DecodeInversion( access_t *p_access )
return fe_inversion;
}
-static fe_code_rate_t DecodeFEC( access_t *p_access, const char *varname )
-{
- switch( var_GetInteger(p_access, varname) )
- {
- case 0: return FEC_NONE;
- case 1: return FEC_1_2;
- case 2: return FEC_2_3;
- case 3: return FEC_3_4;
- case 4: return FEC_4_5;
- case 5: return FEC_5_6;
- case 6: return FEC_6_7;
- case 7: return FEC_7_8;
- case 8: return FEC_8_9;
- case 9: return FEC_AUTO;
- default: return FEC_NONE;
- }
-}
-
-static fe_modulation_t DecodeModulation( access_t *p_access,
- fe_modulation_t def )
-{
- switch( var_GetInteger( p_access, "dvb-modulation" ) )
- {
- case -1: return QPSK;
- case 0: return QAM_AUTO;
- case 8: return VSB_8;
- case 16: return QAM_16;
- case 32: return QAM_32;
- case 64: return QAM_64;
- case 128: return QAM_128;
- case 256: return QAM_256;
- default: return def;
- }
-}
-
/*****************************************************************************
* FrontendSetQPSK : controls the FE device
*****************************************************************************/
@@ -868,7 +832,7 @@ static int FrontendSetQPSK( access_t *p_access )
fep.u.qpsk.symbol_rate = var_GetInteger( p_access, "dvb-srate" );
- fep.u.qpsk.fec_inner = DecodeFEC( p_access, "dvb-fec" );
+ fep.u.qpsk.fec_inner = FEC_NONE;
if( DoDiseqc( p_access ) < 0 )
{
@@ -919,9 +883,9 @@ static int FrontendSetQAM( access_t *p_access )
i_val > p_frontend->info.symbol_rate_min )
fep.u.qam.symbol_rate = i_val;
- fep.u.qam.fec_inner = DecodeFEC( p_access, "dvb-fec" );
+ fep.u.qam.fec_inner = FEC_NONE;
- fep.u.qam.modulation = DecodeModulation( p_access, QAM_AUTO );
+ fep.u.qam.modulation = QAM_AUTO;
/* Empty the event queue */
for( ; ; )
@@ -986,28 +950,6 @@ static fe_transmit_mode_t DecodeTransmission( access_t *p_access )
return fe_transmission;
}
-static fe_guard_interval_t DecodeGuardInterval( access_t *p_access )
-{
- fe_guard_interval_t fe_guard = 0;
- int i_guard = var_GetInteger( p_access, "dvb-guard" );
-
- msg_Dbg( p_access, "using guard=%d", i_guard );
-
- switch( i_guard )
- {
- case 0: fe_guard = GUARD_INTERVAL_AUTO; break;
- case 4: fe_guard = GUARD_INTERVAL_1_4; break;
- case 8: fe_guard = GUARD_INTERVAL_1_8; break;
- case 16: fe_guard = GUARD_INTERVAL_1_16; break;
- case 32: fe_guard = GUARD_INTERVAL_1_32; break;
- default:
- msg_Dbg( p_access, "terrestrial dvb has guard interval not set, using auto");
- fe_guard = GUARD_INTERVAL_AUTO;
- break;
- }
- return fe_guard;
-}
-
static fe_hierarchy_t DecodeHierarchy( access_t *p_access )
{
fe_hierarchy_t fe_hierarchy = 0;
@@ -1042,11 +984,11 @@ static int FrontendSetOFDM( access_t * p_access )
fep.inversion = DecodeInversion( p_access );
fep.u.ofdm.bandwidth = DecodeBandwidth( p_access );
- fep.u.ofdm.code_rate_HP = DecodeFEC( p_access, "dvb-code-rate-hp" );
- fep.u.ofdm.code_rate_LP = DecodeFEC( p_access, "dvb-code-rate-lp" );
- fep.u.ofdm.constellation = DecodeModulation( p_access, QAM_AUTO );
+ fep.u.ofdm.code_rate_HP = FEC_NONE;
+ fep.u.ofdm.code_rate_LP = FEC_NONE;
+ fep.u.ofdm.constellation = QAM_AUTO;
fep.u.ofdm.transmission_mode = DecodeTransmission( p_access );
- fep.u.ofdm.guard_interval = DecodeGuardInterval( p_access );
+ fep.u.ofdm.guard_interval = GUARD_INTERVAL_AUTO;
fep.u.ofdm.hierarchy_information = DecodeHierarchy( p_access );
/* Empty the event queue */
@@ -1079,8 +1021,7 @@ static int FrontendSetATSC( access_t *p_access )
/* Prepare the fep structure */
fep.frequency = var_GetInteger( p_access, "dvb-frequency" );
-
- fep.u.vsb.modulation = DecodeModulation( p_access, VSB_8 );
+ fep.u.vsb.modulation = VSB_8;
/* Empty the event queue */
for( ; ; )
diff --git a/modules/access/dvb/scan.c b/modules/access/dvb/scan.c
index 0a26d97..0122654 100644
--- a/modules/access/dvb/scan.c
+++ b/modules/access/dvb/scan.c
@@ -598,8 +598,6 @@ static int ScanDvbCNext( scan_t *p_scan, scan_configuration_t *p_cfg, double *pf
p_cfg->i_modulation = p_scan->parameter.i_modulation;
if( !p_cfg->i_symbolrate )
p_cfg->i_symbolrate = var_GetInteger( p_scan->p_obj, "dvb-srate" );
- if( !p_cfg->i_modulation )
- p_cfg->i_modulation = var_GetInteger( p_scan->p_obj, "dvb-modulation" );
if( p_scan->parameter.b_exhaustive )
return ScanDvbNextExhaustive( p_scan, p_cfg, pf_pos );
More information about the vlc-commits
mailing list