]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: fix scanning issue and lfe display name
authorAdam Sutton <dev@adamsutton.me.uk>
Sat, 1 Jun 2013 13:32:40 +0000 (14:32 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Sat, 1 Jun 2013 13:32:40 +0000 (14:32 +0100)
Still have a problem with dup services being created when scanning
with multiple adapters.

src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_input.c
src/input/mpegts/mpegts_mux.c

index 3744bf639816d4a4979d624566b7d902e16f216d..06d43a69c0058e750020a9b3dcdecabcc40ceb3c 100644 (file)
@@ -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
index 7747df7a996df5dbaedae7cab82814ae5b7f7c2e..91013d11e7c40cd9e4e9c9ae7e1ff26794e1e876 100644 (file)
@@ -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)
index 9a2a32a13fcc21fdd900f60c5ab14ca3c49afe79..05a91d0ba09530154efbe2c7be9e2b2e73b12d0f 100644 (file)
@@ -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);