]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: propagate weight to start_mux callback (mpegts_input)
authorJaroslav Kysela <perex@perex.cz>
Mon, 30 Nov 2015 21:40:45 +0000 (22:40 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 30 Nov 2015 21:40:45 +0000 (22:40 +0100)
src/input/mpegts.h
src/input/mpegts/iptv/iptv.c
src/input/mpegts/linuxdvb/linuxdvb_frontend.c
src/input/mpegts/mpegts_input.c
src/input/mpegts/mpegts_mux.c
src/input/mpegts/mpegts_service.c
src/input/mpegts/satip/satip_frontend.c
src/input/mpegts/tsfile/tsfile_input.c
src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c

index 03be0020896569e211562b15fd7891471a435f2d..277a8fc775451d4e972ce38f89cfe73d63056edd 100644 (file)
@@ -710,7 +710,7 @@ struct mpegts_input
   int  (*mi_get_priority)   (mpegts_input_t*, mpegts_mux_t *mm, int flags);
   int  (*mi_get_grace)      (mpegts_input_t*, mpegts_mux_t *mm);
   int  (*mi_warm_mux)       (mpegts_input_t*,mpegts_mux_instance_t*);
-  int  (*mi_start_mux)      (mpegts_input_t*,mpegts_mux_instance_t*);
+  int  (*mi_start_mux)      (mpegts_input_t*,mpegts_mux_instance_t*, int weight);
   void (*mi_stop_mux)       (mpegts_input_t*,mpegts_mux_instance_t*);
   void (*mi_open_service)   (mpegts_input_t*,mpegts_service_t*,int flags, int first);
   void (*mi_close_service)  (mpegts_input_t*,mpegts_service_t*);
@@ -861,7 +861,7 @@ mpegts_service_t *mpegts_mux_find_service(mpegts_mux_t *ms, uint16_t sid);
 void mpegts_mux_instance_delete ( tvh_input_instance_t *tii );
 
 int mpegts_mux_instance_start
-  ( mpegts_mux_instance_t **mmiptr, service_t *t );
+  ( mpegts_mux_instance_t **mmiptr, service_t *t, int weight );
 
 int mpegts_mux_instance_weight ( mpegts_mux_instance_t *mmi );
 
index dc0bf335a1e85c269c680872334c82610c53855a..ed884aecf010ad6cc4757114b42851d6e8704424 100644 (file)
@@ -295,7 +295,7 @@ static htsstr_substitute_t iptv_input_subst[] = {
 };
 
 static int
-iptv_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
+iptv_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, int weight )
 {
   int ret = SM_CODE_TUNING_FAILED;
   iptv_mux_t *im = (iptv_mux_t*)mmi->mmi_mux;
index baf20cac42001fee66864201d3d0e964c25ef132..ce9babf03587af7f8727b225b074ae138f5dda13 100644 (file)
@@ -455,7 +455,7 @@ linuxdvb_frontend_stop_mux
 
 static int
 linuxdvb_frontend_start_mux
-  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
+  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, int weight )
 {
   linuxdvb_frontend_t *lfe = (linuxdvb_frontend_t*)mi, *lfe2;
   int res, f;
index 8ee861b20a0536984e60b193b1fae518ecdaf667..91cbe3cf8f73a14568e433f560d64dd5da5ed7c2 100644 (file)
@@ -384,7 +384,7 @@ mpegts_input_warm_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
 }
 
 static int
-mpegts_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
+mpegts_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, int weight )
 {
   return SM_CODE_TUNING_FAILED;
 }
index e47a35a1b1a92b067a0ae8f03e730926fc9b0cae..f5a9a415abeff85453fb14fcbaaa4580fb1ce97b 100644 (file)
@@ -217,7 +217,7 @@ mpegts_mux_unsubscribe_linked
 
 int
 mpegts_mux_instance_start
-  ( mpegts_mux_instance_t **mmiptr, service_t *t )
+  ( mpegts_mux_instance_t **mmiptr, service_t *t, int weight )
 {
   int r;
   char buf[256], buf2[256];
@@ -248,7 +248,7 @@ mpegts_mux_instance_start
 
   r = mi->mi_warm_mux(mi, mmi);
   if (r) return r;
-  r = mi->mi_start_mux(mi, mmi);
+  r = mi->mi_start_mux(mi, mmi, weight);
   if (r) return r;
 
   /* Start */
index e079a382df23033adb3b6ef7258d7b9a97342d2b..8db789d2e4c5e68ff88f762cd046884a34670e9b 100644 (file)
@@ -331,7 +331,7 @@ mpegts_service_start(service_t *t, int instance, int weight, int flags)
 
   /* Start Mux */
   mmi->mmi_start_weight = weight;
-  r = mpegts_mux_instance_start(&mmi, t);
+  r = mpegts_mux_instance_start(&mmi, t, weight);
 
   /* Start */
   if (!r) {
index 38f32ef580c737e3dda7033308b9aca39b3ba223..a7b6c9bc7f7bfbd55251fe16057333b59626fd22 100644 (file)
@@ -486,7 +486,7 @@ satip_frontend_stop_mux
 
 static int
 satip_frontend_start_mux
-  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
+  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, int weight )
 {
   satip_frontend_t *lfe = (satip_frontend_t*)mi;
   dvb_mux_t *lm = (dvb_mux_t *)mmi->mmi_mux;
@@ -519,11 +519,8 @@ satip_frontend_start_mux
 
   mpegts_pid_init(&tr->sf_pids);
   mpegts_pid_init(&tr->sf_pids_tuned);
-  if (lfe->sf_device->sd_can_weight) {
-    pthread_mutex_lock(&mi->mi_output_lock);
-    tr->sf_weight = mpegts_mux_instance_weight(mmi);
-    pthread_mutex_unlock(&mi->mi_output_lock);
-  }
+  if (lfe->sf_device->sd_can_weight)
+    tr->sf_weight = weight;
 
   pthread_mutex_lock(&lfe->sf_dvr_lock);
   lfe->sf_req       = tr;
index 09c7bf4681fbe0198f630fa90a6e489f974a30f2..6cd2c4c3f914da846e38d20f650ba40b953ca785 100644 (file)
@@ -200,7 +200,7 @@ tsfile_input_stop_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
 }
 
 static int
-tsfile_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *t )
+tsfile_input_start_mux ( mpegts_input_t *mi, mpegts_mux_instance_t *t, int weight )
 {
   struct stat st;
   mpegts_mux_t          *mm  = t->mmi_mux;
index 485e3d0ed81477205c5a071efe0deaa05f6526ea..f7a9a0ca34e2d6d7b4646736b7fc21d8f74ea591 100644 (file)
@@ -423,7 +423,7 @@ static int tvhdhomerun_frontend_tune(tvhdhomerun_frontend_t *hfe, mpegts_mux_ins
 
 static int
 tvhdhomerun_frontend_start_mux
-  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi )
+  ( mpegts_input_t *mi, mpegts_mux_instance_t *mmi, int weight )
 {
   tvhdhomerun_frontend_t *hfe = (tvhdhomerun_frontend_t*)mi;
   int res, r;