From: Jaroslav Kysela Date: Mon, 30 Nov 2015 21:40:45 +0000 (+0100) Subject: mpegts: propagate weight to start_mux callback (mpegts_input) X-Git-Tag: v4.2.1~1431 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e7c69621f677f3f2d863e4abe694ef8ef2630563;p=thirdparty%2Ftvheadend.git mpegts: propagate weight to start_mux callback (mpegts_input) --- diff --git a/src/input/mpegts.h b/src/input/mpegts.h index 03be00208..277a8fc77 100644 --- a/src/input/mpegts.h +++ b/src/input/mpegts.h @@ -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 ); diff --git a/src/input/mpegts/iptv/iptv.c b/src/input/mpegts/iptv/iptv.c index dc0bf335a..ed884aecf 100644 --- a/src/input/mpegts/iptv/iptv.c +++ b/src/input/mpegts/iptv/iptv.c @@ -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; diff --git a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c index baf20cac4..ce9babf03 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_frontend.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_frontend.c @@ -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; diff --git a/src/input/mpegts/mpegts_input.c b/src/input/mpegts/mpegts_input.c index 8ee861b20..91cbe3cf8 100644 --- a/src/input/mpegts/mpegts_input.c +++ b/src/input/mpegts/mpegts_input.c @@ -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; } diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index e47a35a1b..f5a9a415a 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -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 */ diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index e079a382d..8db789d2e 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -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) { diff --git a/src/input/mpegts/satip/satip_frontend.c b/src/input/mpegts/satip/satip_frontend.c index 38f32ef58..a7b6c9bc7 100644 --- a/src/input/mpegts/satip/satip_frontend.c +++ b/src/input/mpegts/satip/satip_frontend.c @@ -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; diff --git a/src/input/mpegts/tsfile/tsfile_input.c b/src/input/mpegts/tsfile/tsfile_input.c index 09c7bf468..6cd2c4c3f 100644 --- a/src/input/mpegts/tsfile/tsfile_input.c +++ b/src/input/mpegts/tsfile/tsfile_input.c @@ -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; diff --git a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c index 485e3d0ed..f7a9a0ca3 100644 --- a/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c +++ b/src/input/mpegts/tvhdhomerun/tvhdhomerun_frontend.c @@ -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;