bouquets: add --nobat debug option

This commit is contained in:
Jaroslav Kysela 2014-11-21 15:10:49 +01:00
parent 6bcecff056
commit 3ba5bb9d0b
2 changed files with 17 additions and 6 deletions

View file

@ -81,6 +81,8 @@ typedef struct dvb_bat {
SKEL_DECLARE(mpegts_table_state_skel, struct mpegts_table_state); SKEL_DECLARE(mpegts_table_state_skel, struct mpegts_table_state);
int dvb_bouquets_parse = 1;
static int static int
psi_parse_pmt(mpegts_mux_t *mux, mpegts_service_t *t, const uint8_t *ptr, int len); psi_parse_pmt(mpegts_mux_t *mux, mpegts_service_t *t, const uint8_t *ptr, int len);
@ -386,6 +388,7 @@ dvb_bat_find_service( dvb_bat_id_t *bi, mpegts_service_t *s,
{ {
dvb_bat_svc_t *bs; dvb_bat_svc_t *bs;
assert(bi);
TAILQ_FOREACH(bs, &bi->services, link) TAILQ_FOREACH(bs, &bi->services, link)
if (bs->svc == s) if (bs->svc == s)
break; break;
@ -525,6 +528,9 @@ dvb_freesat_regions
dvb_freesat_region_t *fr; dvb_freesat_region_t *fr;
int r; int r;
if (!bi)
return;
while (len > 5) { while (len > 5) {
id = (ptr[0] << 8) | ptr[1]; id = (ptr[0] << 8) | ptr[1];
/* language: ptr[2-4]: 'eng' */ /* language: ptr[2-4]: 'eng' */
@ -728,8 +734,6 @@ dvb_bskyb_local_channels
if (len < 2) if (len < 2)
return; return;
assert(bi);
regionid = (ptr[1] != 0xff) ? ptr[1] : 0xffff; regionid = (ptr[1] != 0xff) ? ptr[1] : 0xffff;
#if 0 #if 0
@ -1319,7 +1323,8 @@ dvb_nit_callback
} }
/* BAT ID lookup */ /* BAT ID lookup */
if (tableid == 0x4A || tableid == DVB_FASTSCAN_NIT_BASE) { if (dvb_bouquets_parse &&
(tableid == 0x4A || tableid == DVB_FASTSCAN_NIT_BASE)) {
if ((b = mt->mt_bat) == NULL) { if ((b = mt->mt_bat) == NULL) {
b = calloc(1, sizeof(*b)); b = calloc(1, sizeof(*b));
mt->mt_bat = b; mt->mt_bat = b;
@ -1490,7 +1495,7 @@ lcn:
break; break;
case DVB_DESC_FREESAT_LCN: case DVB_DESC_FREESAT_LCN:
#if ENABLE_MPEGTS_DVB #if ENABLE_MPEGTS_DVB
if (tableid == 0x4A && priv == PRIV_FSAT) { if (bi && tableid == 0x4A && priv == PRIV_FSAT) {
dvb_freesat_local_channels(bi, mt->mt_name, dptr, dlen); dvb_freesat_local_channels(bi, mt->mt_name, dptr, dlen);
bi->freesat = 1; bi->freesat = 1;
} }
@ -1498,7 +1503,7 @@ lcn:
break; break;
case DVB_DESC_BSKYB_LCN: case DVB_DESC_BSKYB_LCN:
#if ENABLE_MPEGTS_DVB #if ENABLE_MPEGTS_DVB
if (tableid == 0x4A && priv == 2) { if (bi && tableid == 0x4A && priv == 2) {
dvb_bskyb_local_channels(bi, mt->mt_name, dptr, dlen, mux); dvb_bskyb_local_channels(bi, mt->mt_name, dptr, dlen, mux);
bi->bskyb = 1; bi->bskyb = 1;
} }

View file

@ -439,6 +439,7 @@ main(int argc, char **argv)
const char *log_debug = NULL, *log_trace = NULL; const char *log_debug = NULL, *log_trace = NULL;
char buf[512]; char buf[512];
FILE *pidfile = NULL; FILE *pidfile = NULL;
extern int dvb_bouquets_parse;
main_tid = pthread_self(); main_tid = pthread_self();
@ -473,7 +474,8 @@ main(int argc, char **argv)
opt_xspf = 0, opt_xspf = 0,
opt_dbus = 0, opt_dbus = 0,
opt_dbus_session = 0, opt_dbus_session = 0,
opt_nobackup = 0; opt_nobackup = 0,
opt_nobat = 0;
const char *opt_config = NULL, const char *opt_config = NULL,
*opt_user = NULL, *opt_user = NULL,
*opt_group = NULL, *opt_group = NULL,
@ -552,6 +554,8 @@ main(int argc, char **argv)
{ 'D', "dump", "Enable coredumps for daemon", OPT_BOOL, &opt_dump }, { 'D', "dump", "Enable coredumps for daemon", OPT_BOOL, &opt_dump },
{ 0, "noacl", "Disable all access control checks", { 0, "noacl", "Disable all access control checks",
OPT_BOOL, &opt_noacl }, OPT_BOOL, &opt_noacl },
{ 0, "nobat", "Disable DVB bouquets",
OPT_BOOL, &opt_nobat },
{ 'j', "join", "Subscribe to a service permanently", { 'j', "join", "Subscribe to a service permanently",
OPT_STR, &opt_subscribe }, OPT_STR, &opt_subscribe },
@ -606,6 +610,8 @@ main(int argc, char **argv)
} }
/* Additional cmdline processing */ /* Additional cmdline processing */
if (opt_nobat)
dvb_bouquets_parse = 0;
#if ENABLE_LINUXDVB #if ENABLE_LINUXDVB
if (!opt_dvb_adapters) { if (!opt_dvb_adapters) {
adapter_mask = ~0; adapter_mask = ~0;