Issue #1376 - add option to manually disable full mux rx.
It appears this mode can cause problems on some systems, particulary related to USB tuners. Can cause high CPU load.
This commit is contained in:
parent
7367f713c1
commit
3cd6336314
4 changed files with 36 additions and 1 deletions
|
@ -212,6 +212,7 @@ typedef struct th_dvb_adapter {
|
|||
uint32_t tda_diseqc_version;
|
||||
uint32_t tda_diseqc_repeats;
|
||||
uint32_t tda_disable_pmt_monitor;
|
||||
uint32_t tda_disable_full_mux_rx;
|
||||
char *tda_displayname;
|
||||
|
||||
char *tda_fe_path;
|
||||
|
@ -363,6 +364,8 @@ void dvb_adapter_set_diseqc_repeats(th_dvb_adapter_t *tda,
|
|||
|
||||
void dvb_adapter_set_disable_pmt_monitor(th_dvb_adapter_t *tda, int on);
|
||||
|
||||
void dvb_adapter_set_disable_full_mux_rx(th_dvb_adapter_t *tda, int on);
|
||||
|
||||
void dvb_adapter_clone(th_dvb_adapter_t *dst, th_dvb_adapter_t *src);
|
||||
|
||||
void dvb_adapter_clean(th_dvb_adapter_t *tda);
|
||||
|
|
|
@ -94,6 +94,7 @@ tda_save(th_dvb_adapter_t *tda)
|
|||
htsmsg_add_u32(m, "extrapriority", tda->tda_extrapriority);
|
||||
htsmsg_add_u32(m, "skip_initialscan", tda->tda_skip_initialscan);
|
||||
htsmsg_add_u32(m, "disable_pmt_monitor", tda->tda_disable_pmt_monitor);
|
||||
htsmsg_add_u32(m, "disable_full_mux_rx", tda->tda_disable_full_mux_rx);
|
||||
hts_settings_save(m, "dvbadapters/%s", tda->tda_identifier);
|
||||
htsmsg_destroy(m);
|
||||
}
|
||||
|
@ -364,6 +365,25 @@ dvb_adapter_set_disable_pmt_monitor(th_dvb_adapter_t *tda, int on)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void
|
||||
dvb_adapter_set_disable_full_mux_rx(th_dvb_adapter_t *tda, int on)
|
||||
{
|
||||
if(tda->tda_disable_full_mux_rx == on)
|
||||
return;
|
||||
|
||||
lock_assert(&global_lock);
|
||||
|
||||
tvhlog(LOG_NOTICE, "dvb", "Adapter \"%s\" disabled full MUX receive set to: %s",
|
||||
tda->tda_displayname, on ? "On" : "Off");
|
||||
|
||||
tda->tda_disable_full_mux_rx = on;
|
||||
tda_save(tda);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -388,6 +408,9 @@ check_full_stream(th_dvb_adapter_t *tda)
|
|||
struct dmx_pes_filter_params dmx_param;
|
||||
int r;
|
||||
|
||||
if(tda->tda_disable_full_mux_rx)
|
||||
return 0;
|
||||
|
||||
if(tda->tda_hostconnection == HOSTCONNECTION_USB12)
|
||||
return 0; // Don't even bother, device <-> host interface is too slow
|
||||
|
||||
|
@ -658,6 +681,7 @@ dvb_adapter_init(uint32_t adapter_mask, const char *rawfile)
|
|||
htsmsg_get_u32(c, "extrapriority", &tda->tda_extrapriority);
|
||||
htsmsg_get_u32(c, "skip_initialscan", &tda->tda_skip_initialscan);
|
||||
htsmsg_get_u32(c, "disable_pmt_monitor", &tda->tda_disable_pmt_monitor);
|
||||
htsmsg_get_u32(c, "disable_full_mux_rx", &tda->tda_disable_full_mux_rx);
|
||||
}
|
||||
htsmsg_destroy(l);
|
||||
}
|
||||
|
|
|
@ -157,6 +157,7 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
|
|||
htsmsg_add_u32(r, "sidtochan", tda->tda_sidtochan);
|
||||
htsmsg_add_u32(r, "nitoid", tda->tda_nitoid);
|
||||
htsmsg_add_u32(r, "disable_pmt_monitor", tda->tda_disable_pmt_monitor);
|
||||
htsmsg_add_u32(r, "disable_full_mux_rx", tda->tda_disable_full_mux_rx);
|
||||
htsmsg_add_str(r, "diseqcversion",
|
||||
((const char *[]){"DiSEqC 1.0 / 2.0",
|
||||
"DiSEqC 1.1 / 2.1"})
|
||||
|
@ -199,6 +200,9 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
|
|||
s = http_arg_get(&hc->hc_req_args, "disable_pmt_monitor");
|
||||
dvb_adapter_set_disable_pmt_monitor(tda, !!s);
|
||||
|
||||
s = http_arg_get(&hc->hc_req_args, "disable_full_mux_rx");
|
||||
dvb_adapter_set_disable_full_mux_rx(tda, !!s);
|
||||
|
||||
if((s = http_arg_get(&hc->hc_req_args, "nitoid")) != NULL)
|
||||
dvb_adapter_set_nitoid(tda, atoi(s));
|
||||
|
||||
|
|
|
@ -1089,7 +1089,7 @@ tvheadend.dvb_adapter_general = function(adapterData, satConfStore) {
|
|||
}, [ 'name', 'automux', 'skip_initialscan', 'idlescan', 'diseqcversion',
|
||||
'diseqcrepeats', 'qmon', 'skip_checksubscr',
|
||||
'poweroff', 'sidtochan', 'nitoid', 'extrapriority',
|
||||
,'disable_pmt_monitor', 'idleclose' ]);
|
||||
,'disable_pmt_monitor', 'disable_full_mux_rx', 'idleclose' ]);
|
||||
|
||||
function saveConfForm() {
|
||||
confform.getForm().submit({
|
||||
|
@ -1135,6 +1135,10 @@ tvheadend.dvb_adapter_general = function(adapterData, satConfStore) {
|
|||
fieldLabel : 'Monitor signal quality',
|
||||
name : 'qmon'
|
||||
}),
|
||||
new Ext.form.Checkbox({
|
||||
fieldLabel : 'Disable full MUX reception',
|
||||
name : 'disable_full_mux_rx'
|
||||
}),
|
||||
new Ext.form.Checkbox({
|
||||
fieldLabel : 'Disable PMT monitoring',
|
||||
name : 'disable_pmt_monitor'
|
||||
|
|
Loading…
Add table
Reference in a new issue