aboutsummaryrefslogtreecommitdiffstats
path: root/src/DabMultiplexer.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2026-01-12 11:41:23 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2026-01-12 11:41:23 +0100
commit21a23aeff958a1d37f6f44797382f18cbe2a448e (patch)
treecf3d49519070c8e81e9d8363036c4e7db7591edc /src/DabMultiplexer.cpp
parent071c13d4df3f3586073faff9fb0b78d930f42a7a (diff)
downloaddabmux-21a23aeff958a1d37f6f44797382f18cbe2a448e.tar.gz
dabmux-21a23aeff958a1d37f6f44797382f18cbe2a448e.tar.bz2
dabmux-21a23aeff958a1d37f6f44797382f18cbe2a448e.zip
Fix 0/7 insertion; Add classic-rate-tuning FIC scheduler
Diffstat (limited to 'src/DabMultiplexer.cpp')
-rw-r--r--src/DabMultiplexer.cpp27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp
index 48c55c5..1d580ec 100644
--- a/src/DabMultiplexer.cpp
+++ b/src/DabMultiplexer.cpp
@@ -171,12 +171,25 @@ void DabMultiplexer::prepare(bool require_tai_clock)
m_scheduler_type = ensemble->fic_scheduler;
auto time_func = [&]() { return m_time.get_milliseconds_seconds(); };
- if (m_scheduler_type == FIC::FIGSchedulerType::Priority) {
- etiLog.level(info) << "Using priority-based FIG scheduler";
- m_fig_carousel_priority.reset(new FIC::FIGCarouselPriority(ensemble, time_func));
- } else {
- etiLog.level(info) << "Using classic FIG scheduler";
- m_fig_carousel_classic.reset(new FIC::FIGCarousel(ensemble, time_func));
+ switch (m_scheduler_type) {
+ case FIC::FIGSchedulerType::Classic:
+ {
+ etiLog.level(info) << "Using classic FIG scheduler";
+ m_fig_carousel_classic.emplace(ensemble, time_func, false);
+ break;
+ }
+ case FIC::FIGSchedulerType::ClassicRateTuning:
+ {
+ etiLog.level(info) << "Using classic FIG scheduler with per-FIG rate tuning";
+ m_fig_carousel_classic.emplace(ensemble, time_func, true);
+ break;
+ }
+ case FIC::FIGSchedulerType::Priority:
+ {
+ etiLog.level(info) << "Using priority-based FIG scheduler";
+ m_fig_carousel_priority.emplace(ensemble, time_func);
+ break;
+ }
}
rcs.enrol(this);
@@ -280,7 +293,7 @@ void DabMultiplexer::prepare(bool require_tai_clock)
}
if (m_fig_carousel_classic)
- m_fig_carousel_classic->set_rate_correction(m_config.pt.get<double>("general.fic_repetition_correction", 1.0));
+ m_fig_carousel_classic->set_rate_correction(m_config.pt.get<double>("general.fic-repetition-correction", 1.0));
}