Tweak to the full mux configuration, all USB is now filtered mode by default.
This commit is contained in:
parent
ddad1d21dc
commit
03f7bc187b
4 changed files with 42 additions and 18 deletions
|
@ -212,7 +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;
|
||||
int32_t tda_full_mux_rx;
|
||||
char *tda_displayname;
|
||||
|
||||
char *tda_fe_path;
|
||||
|
@ -364,7 +364,7 @@ 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_set_full_mux_rx(th_dvb_adapter_t *tda, int r);
|
||||
|
||||
void dvb_adapter_clone(th_dvb_adapter_t *dst, th_dvb_adapter_t *src);
|
||||
|
||||
|
|
|
@ -94,7 +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);
|
||||
htsmsg_add_s32(m, "full_mux_rx", tda->tda_full_mux_rx);
|
||||
hts_settings_save(m, "dvbadapters/%s", tda->tda_identifier);
|
||||
htsmsg_destroy(m);
|
||||
}
|
||||
|
@ -369,17 +369,23 @@ 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)
|
||||
dvb_adapter_set_full_mux_rx(th_dvb_adapter_t *tda, int on)
|
||||
{
|
||||
if(tda->tda_disable_full_mux_rx == on)
|
||||
const char* label[] = { "Auto", "Off", "On" };
|
||||
|
||||
if (on < -1) on = -1;
|
||||
if (on > 1) on = 1;
|
||||
|
||||
if(tda->tda_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");
|
||||
tvhlog(LOG_NOTICE, "dvb",
|
||||
"Adapter \"%s\" disabled full MUX receive set to: %s",
|
||||
tda->tda_displayname, label[on+1]);
|
||||
|
||||
tda->tda_disable_full_mux_rx = on;
|
||||
tda->tda_full_mux_rx = on;
|
||||
tda_save(tda);
|
||||
}
|
||||
|
||||
|
@ -408,12 +414,15 @@ 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_full_mux_rx != -1)
|
||||
return tda->tda_full_mux_rx;
|
||||
|
||||
if(tda->tda_hostconnection == HOSTCONNECTION_USB12)
|
||||
return 0; // Don't even bother, device <-> host interface is too slow
|
||||
|
||||
if(tda->tda_hostconnection == HOSTCONNECTION_USB480)
|
||||
return 0; // USB in general appears to have CPU loading issues?
|
||||
|
||||
int fd = tvh_open(tda->tda_demux_path, O_RDWR, 0);
|
||||
if(fd == -1)
|
||||
return 0;
|
||||
|
@ -462,6 +471,7 @@ tda_add(int adapter_num)
|
|||
tda->tda_fe_path = strdup(fname);
|
||||
tda->tda_fe_fd = -1;
|
||||
tda->tda_dvr_pipe[0] = -1;
|
||||
tda->tda_full_mux_rx = -1;
|
||||
|
||||
tda->tda_fe_info = malloc(sizeof(struct dvb_frontend_info));
|
||||
|
||||
|
@ -542,6 +552,8 @@ tda_add_from_file(const char *filename)
|
|||
tda->tda_idlescan = 0;
|
||||
|
||||
tda->tda_sat = 0;
|
||||
|
||||
tda->tda_full_mux_rx = 1;
|
||||
|
||||
/* Come up with an initial displayname, user can change it and it will
|
||||
be overridden by any stored settings later on */
|
||||
|
@ -632,6 +644,7 @@ dvb_adapter_init(uint32_t adapter_mask, const char *rawfile)
|
|||
htsmsg_field_t *f;
|
||||
const char *name, *s;
|
||||
int i, type;
|
||||
uint32_t u32;
|
||||
th_dvb_adapter_t *tda;
|
||||
|
||||
TAILQ_INIT(&dvb_adapters);
|
||||
|
@ -685,7 +698,9 @@ 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);
|
||||
if (htsmsg_get_s32(c, "full_mux_rx", &tda->tda_full_mux_rx))
|
||||
if (!htsmsg_get_u32(c, "disable_full_mux_rx", &u32) && u32)
|
||||
tda->tda_full_mux_rx = 0;
|
||||
}
|
||||
htsmsg_destroy(l);
|
||||
}
|
||||
|
|
|
@ -157,7 +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_u32(r, "full_mux_rx", tda->tda_full_mux_rx+1);
|
||||
htsmsg_add_str(r, "diseqcversion",
|
||||
((const char *[]){"DiSEqC 1.0 / 2.0",
|
||||
"DiSEqC 1.1 / 2.1"})
|
||||
|
@ -200,8 +200,8 @@ 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);
|
||||
s = http_arg_get(&hc->hc_req_args, "full_mux_rx");
|
||||
dvb_adapter_set_full_mux_rx(tda, atoi(s)-1);
|
||||
|
||||
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', 'disable_full_mux_rx', 'idleclose' ]);
|
||||
,'disable_pmt_monitor', 'full_mux_rx', 'idleclose' ]);
|
||||
|
||||
function saveConfForm() {
|
||||
confform.getForm().submit({
|
||||
|
@ -1135,9 +1135,18 @@ 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.ComboBox({
|
||||
fieldLabel : 'Full mux reception',
|
||||
name : 'full_mux_rx',
|
||||
hiddenName: 'full_mux_rx',
|
||||
displayField: 'num',
|
||||
valueField: 'str',
|
||||
editable : false,
|
||||
allowBlank : false,
|
||||
mode : 'remote',
|
||||
triggerAction : 'all',
|
||||
fields: [ 'num', 'str' ],
|
||||
store : [ [0, 'Auto'], [1, 'Off'], [2, 'On'] ]
|
||||
}),
|
||||
new Ext.form.Checkbox({
|
||||
fieldLabel : 'Disable PMT monitoring',
|
||||
|
|
Loading…
Add table
Reference in a new issue