From a4b2cf309933d49a75c99ae58e12335262b940a0 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sun, 29 Nov 2015 21:01:41 +0100 Subject: [PATCH] MPEGTS Input: add 'Free weight' parameter to override imediatelly scan/EPG/other subscriptions with very low weights --- src/input/mpegts.h | 1 + src/input/mpegts/mpegts_input.c | 8 ++++++++ src/input/mpegts/mpegts_service.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/input/mpegts.h b/src/input/mpegts.h index b854c3253..03be00208 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -652,6 +652,7 @@ struct mpegts_input int mi_initscan; int mi_idlescan; + uint32_t mi_free_weight; char *mi_linked; diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 7cf8937e5..8ee861b20 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -277,6 +277,14 @@ const idclass_t mpegts_input_class = .def.i = 1, .opts = PO_ADVANCED, }, + { + .type = PT_U32, + .id = "free_weight", + .name = N_("Free weight"), + .off = offsetof(mpegts_input_t, mi_free_weight), + .def.i = 1, + .opts = PO_ADVANCED, + }, { .type = PT_STR, .id = "networks", diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index f3a20d5e8..e079a382d 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -297,6 +297,8 @@ mpegts_service_enlist(service_t *t, tvh_input_t *ti, } else { w = mi->mi_get_weight(mi, mmi->mmi_mux, flags); p = mi->mi_get_priority(mi, mmi->mmi_mux, flags); + if (w > 0 && mi->mi_free_weight && w < mi->mi_free_weight) + w = 0; } service_instance_add(sil, t, mi->mi_instance, mi->mi_name, p, w); -- 2.47.3