]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service: log the instance source
authorJaroslav Kysela <perex@perex.cz>
Tue, 28 Oct 2014 09:26:30 +0000 (10:26 +0100)
committerJaroslav Kysela <perex@perex.cz>
Tue, 28 Oct 2014 09:26:30 +0000 (10:26 +0100)
src/input/mpegts/mpegts_service.c
src/service.c
src/service.h

index ac24ad355e421214580b74d25acaa90b39b57e3a..f460eb9ec1b2998f989ece060d81dff2884bf50f 100644 (file)
@@ -225,6 +225,7 @@ mpegts_service_enlist(service_t *t, struct service_instance_list *sil, int flags
 {
   int p = 0, w;
   mpegts_service_t      *s = (mpegts_service_t*)t;
+  mpegts_input_t        *mi;
   mpegts_mux_t          *m = s->s_dvb_mux;
   mpegts_mux_instance_t *mmi;
 
@@ -238,18 +239,20 @@ mpegts_service_enlist(service_t *t, struct service_instance_list *sil, int flags
     if (mmi->mmi_tune_failed)
       continue;
 
-    if (!mmi->mmi_input->mi_is_enabled(mmi->mmi_input, mmi->mmi_mux, "service")) continue;
+    mi = mmi->mmi_input;
+
+    if (!mi->mi_is_enabled(mi, mmi->mmi_mux, "service")) continue;
 
     /* Set weight to -1 (forced) for already active mux */
     if (mmi->mmi_mux->mm_active == mmi) {
       w = -1;
       p = -1;
     } else {
-      w = mmi->mmi_input->mi_get_weight(mmi->mmi_input, flags);
-      p = mmi->mmi_input->mi_get_priority(mmi->mmi_input, mmi->mmi_mux, flags);
+      w = mi->mi_get_weight(mi, flags);
+      p = mi->mi_get_priority(mi, mmi->mmi_mux, flags);
     }
 
-    service_instance_add(sil, t, mmi->mmi_input->mi_instance, p, w);
+    service_instance_add(sil, t, mi->mi_instance, mi->mi_name, p, w);
   }
 }
 
index 0783cc785e5f89e6ea79e50cde8ae0f6b060a422..a3fbe8f690af6e7758d6f801278477547096e4ac 100644 (file)
@@ -685,8 +685,9 @@ service_find_instance
   TAILQ_FOREACH(si, sil, si_link) {
     const char *name = ch ? channel_get_name(ch) : NULL;
     if (!name && s) name = s->s_nicename;
-    tvhdebug("service", "%s si %p weight %d prio %d error %d",
-             name, si, si->si_weight, si->si_prio, si->si_error);
+    tvhdebug("service", "%s si %p %s weight %d prio %d error %d",
+             name, si, si->si_source, si->si_weight, si->si_prio,
+             si->si_error);
   }
 
   /* Already running? */
@@ -1470,8 +1471,8 @@ si_cmp(const service_instance_t *a, const service_instance_t *b)
  */
 service_instance_t *
 service_instance_add(service_instance_list_t *sil,
-                     struct service *s, int instance, int prio,
-                     int weight)
+                     struct service *s, int instance,
+                     const char *source, int prio, int weight)
 {
   service_instance_t *si;
 
@@ -1493,6 +1494,7 @@ service_instance_add(service_instance_list_t *sil,
   }
   si->si_weight = weight;
   si->si_prio   = prio;
+  strncpy(si->si_source, source ?: "<unknown>", sizeof(si->si_source));
   TAILQ_INSERT_SORTED(sil, si, si_link, si_cmp);
   return si;
 }
index fc926ef7bcf341203d9f5e48fe27bcfec10cf98e..3097cb305cc2305b43c2d5167a250de18f33e52c 100644 (file)
@@ -160,6 +160,8 @@ typedef struct service_instance {
 
   int si_mark;           // For mark & sweep
 
+  char si_source[128];
+
 } service_instance_t;
 
 
@@ -169,6 +171,7 @@ typedef struct service_instance {
 service_instance_t *service_instance_add(service_instance_list_t *sil,
                                          struct service *s,
                                          int instance,
+                                         const char *source,
                                          int prio,
                                          int weight);