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*);
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 );
};
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;
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;
}
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;
}
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];
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 */
/* 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) {
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;
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;
}
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;
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;