From: Adam Sutton Date: Sat, 1 Jun 2013 13:32:40 +0000 (+0100) Subject: mpegts: fix scanning issue and lfe display name X-Git-Tag: v3.9^2~170 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fbd34be4720856e18aeb5188f137e2db6966d620;p=thirdparty%2Ftvheadend.git mpegts: fix scanning issue and lfe display name Still have a problem with dup services being created when scanning with multiple adapters. --- diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index 3744bf639..06d43a69c 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -143,8 +143,7 @@ linuxdvb_frontend_is_enabled ( mpegts_input_t *mi ) static void linuxdvb_frontend_display_name ( mpegts_input_t* mi, char *buf, size_t len ) { - linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi; - strncpy(buf, lfe->lh_displayname ?: "unknown", len); + strncpy(buf, linuxdvb_frontend_class_get_title(&mi->mi_id), len); } #if 0 diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 7747df7a9..91013d11e 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -198,10 +198,18 @@ mpegts_input_is_free ( mpegts_input_t *mi ) int mpegts_input_current_weight ( mpegts_input_t *mi ) { + const mpegts_mux_instance_t *mmi; const service_t *s; const th_subscription_t *ths; int w = 0; + LIST_FOREACH(mmi, &mi->mi_mux_active, mmi_active_link) { + if (mmi->mmi_mux->mm_initial_scan_status == MM_SCAN_CURRENT) { + w = 1; + break; + } + } + pthread_mutex_lock(&mi->mi_delivery_mutex); LIST_FOREACH(s, &mi->mi_transports, s_active_link) { LIST_FOREACH(ths, &s->s_subscriptions, ths_service_link) diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 9a2a32a13..05a91d0ba 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -156,7 +156,6 @@ mpegts_mux_start ( mpegts_mux_t *mm, const char *reason, int weight ) /* Try and remove a lesser instance */ if (!mmi) { -#if 0 LIST_FOREACH(mmi, &mm->mm_instances, mmi_mux_link) { /* Bad - skip */ @@ -167,7 +166,6 @@ mpegts_mux_start ( mpegts_mux_t *mm, const char *reason, int weight ) if (weight > mmi->mmi_input->mi_current_weight(mmi->mmi_input)) break; } -#endif if (mmi) tvhtrace("mpegts", "%s - found mmi %p to boot", buf, mmi);