From 18249695bed199c3003a945358e5f2564954b2dc Mon Sep 17 00:00:00 2001 From: Daniel Kristjansson Date: Mon, 27 Feb 2012 16:02:26 -0500 Subject: [PATCH] Fixes #10153. Guess at DVB-S vs DVB-S2 when not explicitly set. The problem was discovered by Lawrence Rust. It has been decided not to fix the DVB API regression upstream, so this code attempts to guess which system is being used using the modulation scheme as a hint. --- mythtv/libs/libmythtv/dtvmultiplex.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mythtv/libs/libmythtv/dtvmultiplex.cpp b/mythtv/libs/libmythtv/dtvmultiplex.cpp index 35b4666b1f2..69336ed868c 100644 --- a/mythtv/libs/libmythtv/dtvmultiplex.cpp +++ b/mythtv/libs/libmythtv/dtvmultiplex.cpp @@ -262,6 +262,22 @@ bool DTVMultiplex::ParseDVB_S2( return false; } + // For #10153, guess at modulation system based on modulation + if (DTVModulationSystem::kModulationSystem_UNDEFINED == mod_sys) + { + mod_sys = (DTVModulation::kModulationQPSK == modulation) ? + DTVModulationSystem::kModulationSystem_DVBS : + DTVModulationSystem::kModulationSystem_DVBS2; + } + + if ((DTVModulationSystem::kModulationSystem_DVBS != mod_sys) && + (DTVModulationSystem::kModulationSystem_DVBS2 != mod_sys)) + { + LOG(VB_GENERAL, LOG_ERR, LOC + "Unsupported S2 modulation system " + + QString("parameter '%1', aborting.").arg(_mod_sys)); + return false; + } + if (!_rolloff.isEmpty()) ok &= rolloff.Parse(_rolloff);