]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts input: pass weight to mi_is_enabled callback
authorJaroslav Kysela <perex@perex.cz>
Fri, 18 Mar 2016 15:59:41 +0000 (16:59 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 18 Mar 2016 15:59:41 +0000 (16:59 +0100)
src/input/mpegts.h
src/input/mpegts/linuxdvb/linuxdvb_adapter.c
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_input.c
src/input/mpegts/mpegts_mux_dvb.c
src/input/mpegts/mpegts_service.c
src/input/mpegts/satip/satip_frontend.c
src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c

index 79ff40ffa953980b410bda42aab79163d13526d4..ff515ad21258778855a2d459c95492080419a961 100644 (file)
@@ -703,7 +703,7 @@ struct mpegts_input
   /*
    * Functions
    */
-  int  (*mi_is_enabled)     (mpegts_input_t*, mpegts_mux_t *mm, int flags);
+  int  (*mi_is_enabled)     (mpegts_input_t*, mpegts_mux_t *mm, int flags, int weight);
   void (*mi_enabled_updated)(mpegts_input_t*);
   void (*mi_display_name)   (mpegts_input_t*, char *buf, size_t len);
   int  (*mi_get_weight)     (mpegts_input_t*, mpegts_mux_t *mm, int flags);
@@ -776,7 +776,7 @@ void mpegts_input_status_timer ( void *p );
 
 int mpegts_input_grace ( mpegts_input_t * mi, mpegts_mux_t * mm );
 
-int mpegts_input_is_enabled ( mpegts_input_t * mi, mpegts_mux_t *mm, int flags );
+int mpegts_input_is_enabled ( mpegts_input_t * mi, mpegts_mux_t *mm, int flags, int weight );
 
 void mpegts_input_set_enabled ( mpegts_input_t *mi, int enabled );
 
index 8a4808a50cc47647dc179846139bac44a12cfd06..e55297b59044673f374d08d077bd4446db509f4a 100644 (file)
@@ -133,7 +133,7 @@ linuxdvb_adapter_is_enabled ( linuxdvb_adapter_t *la )
 {
   linuxdvb_frontend_t *lfe;
   LIST_FOREACH(lfe, &la->la_frontends, lfe_link) {
-    if (lfe->mi_is_enabled((mpegts_input_t*)lfe, NULL, 0))
+    if (lfe->mi_is_enabled((mpegts_input_t*)lfe, NULL, 0, -1))
       return 1;
   }
   return 0;
index b9c266f40857013eac0510fa3d86160532bd1c80..eebc25d1ff8957c536fe346f1e059313eb60d94d 100644 (file)
@@ -462,7 +462,8 @@ linuxdvb_frontend_get_grace ( mpegts_input_t *mi, mpegts_mux_t *mm )
 }
 
 static int
-linuxdvb_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
+linuxdvb_frontend_is_enabled
+  ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight )
 {
   linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi, *lfe2;
   linuxdvb_adapter_t *la;
@@ -470,7 +471,7 @@ linuxdvb_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
   char ubuf[UUID_HEX_SIZE];
 
   if (lfe->lfe_fe_path == NULL) return 0;
-  if (!mpegts_input_is_enabled(mi, mm, flags)) return 0;
+  if (!mpegts_input_is_enabled(mi, mm, flags, weight)) return 0;
   if (access(lfe->lfe_fe_path, R_OK | W_OK)) return 0;
   if (lfe->lfe_in_setup) return 0;
   if (lfe->lfe_type != DVB_TYPE_S) return 1;
index 8e5bc21aacfa2554794fc6cec6336439c2f11ee1..a247bca66f265dce4a44ff56a7c370e62768da40 100644 (file)
@@ -341,7 +341,8 @@ const idclass_t mpegts_input_class =
  * *************************************************************************/
 
 int
-mpegts_input_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
+mpegts_input_is_enabled
+  ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight )
 {
   if ((flags & SUBSCRIPTION_EPG) != 0 && !mi->mi_ota_epg)
     return 0;
index 2c3d86053c778afa35600d6f9b1bd15cfbe8725c..9c452a85530e6473f3258cbfe1c64ca95aeef295 100644 (file)
@@ -944,7 +944,7 @@ dvb_mux_create_instances ( mpegts_mux_t *mm )
   mpegts_network_link_t *mnl;
   LIST_FOREACH(mnl, &mm->mm_network->mn_inputs, mnl_mn_link) {
     mpegts_input_t *mi = mnl->mnl_input;
-    if (mi->mi_is_enabled(mi, mm, 0))
+    if (mi->mi_is_enabled(mi, mm, 0, -1))
       mi->mi_create_mux_instance(mi, mm);
   }
 }
index db7fd4aa958bd464fee6a61c7f6973d732fa1f86..369c11ec3ba441f8d9fc277976a57d88fedfccdc 100644 (file)
@@ -306,7 +306,7 @@ mpegts_service_enlist
     if (ti && (tvh_input_t *)mi != ti)
       continue;
 
-    if (!mi->mi_is_enabled(mi, mmi->mmi_mux, flags)) continue;
+    if (!mi->mi_is_enabled(mi, mmi->mmi_mux, flags, weight)) continue;
 
     /* Set weight to -1 (forced) for already active mux */
     if (mmi->mmi_mux->mm_active == mmi) {
index 462145d8d0c08c3f45bc57b5b479cafcd210e10c..e464985dc2f8700134afe2f0e11ea56ea91d43d4 100644 (file)
@@ -483,7 +483,8 @@ satip_frontend_match_satcfg ( satip_frontend_t *lfe2, mpegts_mux_t *mm2 )
 }
 
 static int
-satip_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
+satip_frontend_is_enabled
+  ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight )
 {
   satip_frontend_t *lfe = (satip_frontend_t*)mi;
   satip_frontend_t *lfe2;
@@ -491,7 +492,7 @@ satip_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
 
   lock_assert(&global_lock);
 
-  if (!mpegts_input_is_enabled(mi, mm, flags)) return 0;
+  if (!mpegts_input_is_enabled(mi, mm, flags, weight)) return 0;
   if (lfe->sf_device->sd_dbus_allow <= 0) return 0;
   if (lfe->sf_type != DVB_TYPE_S) return 1;
   /* try to reuse any input for limited networks if allowed */
index 4dfa459ca1afdc30fbb023060c67a2aeb33aa765..f8b10afd926be786cee9ffbea865e3e1fb6ab4ed 100644 (file)
@@ -42,9 +42,10 @@ tvhdhomerun_frontend_get_grace ( mpegts_input_t *mi, mpegts_mux_t *mm )
 }
 
 static int
-tvhdhomerun_frontend_is_enabled ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags )
+tvhdhomerun_frontend_is_enabled
+  ( mpegts_input_t *mi, mpegts_mux_t *mm, int flags, int weight )
 {
-  return mpegts_input_is_enabled(mi, mm, flags);
+  return mpegts_input_is_enabled(mi, mm, flags, weight);
 }
 
 static void *