From: Jaroslav Kysela Date: Fri, 15 Apr 2016 09:12:31 +0000 (+0200) Subject: IPTV: correct the check for simultaneous input streams, fixes #3723 X-Git-Tag: v4.2.1~650 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2f7133588a4c85a2414b8a8fdf205722ad89ceff;p=thirdparty%2Ftvheadend.git IPTV: correct the check for simultaneous input streams, fixes #3723 --- diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index aa60d6731..a56e51a86 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -150,9 +150,9 @@ const idclass_t iptv_input_class = { }; static int -iptv_input_is_free ( mpegts_input_t *mi, mpegts_mux_t *mm ) +iptv_input_is_free ( mpegts_input_t *mi, mpegts_mux_t *mm, int active ) { - int c = 0; + int c = active; mpegts_mux_instance_t *mmi; iptv_network_t *in = (iptv_network_t *)mm->mm_network; @@ -180,8 +180,8 @@ iptv_input_get_weight ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags ) mpegts_mux_instance_t *mmi; /* Find the "min" weight */ - if (!iptv_input_is_free(mi, mm)) { - w = 1000000; + if (!iptv_input_is_free(mi, mm, 0)) { + w = INT_MAX; /* Service subs */ pthread_mutex_lock(&mi->mi_output_lock); @@ -228,10 +228,10 @@ iptv_input_warm_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi ) return 0; /* Do we need to stop something? */ - if (!iptv_input_is_free(mi, mmi->mmi_mux)) { + if (!iptv_input_is_free(mi, mmi->mmi_mux, 1)) { pthread_mutex_lock(&mi->mi_output_lock); mpegts_mux_instance_t *m, *s = NULL; - int w = 1000000; + int w = INT_MAX; LIST_FOREACH(m, &mi->mi_mux_active, mmi_active_link) { int t = mpegts_mux_instance_weight(m); if (t < w) {