aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-09-13 16:36:44 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-09-13 16:36:44 +0200
commitcd6956880b8a7300d7d73c1afb973ca73683644d (patch)
treeeddfe26d844200e81af8f5cac13b58ecf73f25e7
parent6f350b92da39e9a2445e798d99c222ac85b77a11 (diff)
downloaddabmux-cd6956880b8a7300d7d73c1afb973ca73683644d.tar.gz
dabmux-cd6956880b8a7300d7d73c1afb973ca73683644d.tar.bz2
dabmux-cd6956880b8a7300d7d73c1afb973ca73683644d.zip
Change FIG allocation
-rw-r--r--src/fig/FIGCarousel.cpp45
1 files changed, 29 insertions, 16 deletions
diff --git a/src/fig/FIGCarousel.cpp b/src/fig/FIGCarousel.cpp
index 78420b8..c9daddf 100644
--- a/src/fig/FIGCarousel.cpp
+++ b/src/fig/FIGCarousel.cpp
@@ -74,24 +74,37 @@ FIGCarousel::FIGCarousel(boost::shared_ptr<dabEnsemble> ensemble) :
m_fig0_18(&m_rti),
m_fig0_19(&m_rti)
{
- load_and_allocate(m_fig0_1, FIBAllocation::FIB_ANY);
- load_and_allocate(m_fig0_2, FIBAllocation::FIB_ANY);
-
+ /* Complete MCI except FIG0/8 should be in FIB0.
+ * EN 300 401 Clause 6.1
+ *
+ * It seems that this has become a weak requirement
+ * with time, because current receivers can cope with
+ * FIGs in any FIB. During elaboration of the standard,
+ * receiver manufacturers were concerned about the complexity,
+ * and pushed for support for receivers that only could
+ * decode FIB0.
+ *
+ * If repetition rate cannot be maintained with this allocation,
+ * we should drop the requirement and allocate all FIGs except 0/0
+ * to FIB_ANY
+ */
load_and_allocate(m_fig0_0, FIBAllocation::FIB0);
+ load_and_allocate(m_fig0_1, FIBAllocation::FIB0);
+ load_and_allocate(m_fig0_2, FIBAllocation::FIB0);
load_and_allocate(m_fig0_3, FIBAllocation::FIB0);
- load_and_allocate(m_fig0_17, FIBAllocation::FIB0);
-
- load_and_allocate(m_fig0_8, FIBAllocation::FIB1);
- load_and_allocate(m_fig1_0, FIBAllocation::FIB1);
- load_and_allocate(m_fig0_13, FIBAllocation::FIB1);
- load_and_allocate(m_fig0_10, FIBAllocation::FIB1);
- load_and_allocate(m_fig0_9, FIBAllocation::FIB1);
-
- load_and_allocate(m_fig1_1, FIBAllocation::FIB2);
- load_and_allocate(m_fig1_4, FIBAllocation::FIB2);
- load_and_allocate(m_fig1_5, FIBAllocation::FIB2);
- load_and_allocate(m_fig0_18, FIBAllocation::FIB2);
- load_and_allocate(m_fig0_19, FIBAllocation::FIB2);
+
+ load_and_allocate(m_fig0_17, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_8, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig1_0, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_13, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_10, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_9, FIBAllocation::FIB_ANY);
+
+ load_and_allocate(m_fig1_1, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig1_4, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig1_5, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_18, FIBAllocation::FIB_ANY);
+ load_and_allocate(m_fig0_19, FIBAllocation::FIB_ANY);
}
void FIGCarousel::load_and_allocate(IFIG& fig, FIBAllocation fib)