diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2026-01-12 11:41:23 +0100 |
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2026-01-12 11:41:23 +0100 |
| commit | 21a23aeff958a1d37f6f44797382f18cbe2a448e (patch) | |
| tree | cf3d49519070c8e81e9d8363036c4e7db7591edc /src/DabMultiplexer.cpp | |
| parent | 071c13d4df3f3586073faff9fb0b78d930f42a7a (diff) | |
| download | dabmux-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.cpp | 27 |
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)); } |
