From a5d44a7dae4e9f688daf1ce2cd7e6c6287fdab37 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 26 Jun 2012 13:09:28 +0100 Subject: [PATCH 1/2] Minor mod to wd and hts settings to allow abs paths to be passed to hts_settings_load(). --- src/settings.c | 12 ++++++++---- support/dataroot/wd.c | 12 +++++++++++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/settings.c b/src/settings.c index ca3c7270..c44e09e5 100644 --- a/src/settings.c +++ b/src/settings.c @@ -206,20 +206,24 @@ hts_settings_load_one(const char *filename) static int hts_settings_buildpath(char *dst, size_t dstsize, const char *fmt, va_list ap) { + char tmp[256]; char *n = dst; if(settingspath == NULL) return -1; - - snprintf(dst, dstsize, "%s/", settingspath); - - vsnprintf(dst + strlen(dst), dstsize - strlen(dst), fmt, ap); + + vsnprintf(tmp, sizeof(tmp), fmt, ap); + if (*tmp != '/') + snprintf(dst, dstsize, "%s/%s", settingspath, tmp); + else + strncpy(dst, tmp, dstsize); while(*n) { if(*n == ':' || *n == '?' || *n == '*' || *n > 127 || *n < 32) *n = '_'; n++; } + printf("hts_settings_buildpath(): %s => %s\n", fmt, dst); return 0; } diff --git a/support/dataroot/wd.c b/support/dataroot/wd.c index 9b653eb2..64369580 100644 --- a/support/dataroot/wd.c +++ b/support/dataroot/wd.c @@ -1,4 +1,14 @@ +#include +#include +#include + const char *tvheadend_dataroot(void) { - return "./"; + static char cwd[256] = { 0 }; + if (!*cwd) { + assert(getcwd(cwd, 254)); + strcat(cwd, "/"); + } + printf("cwd = %s\n", cwd); + return cwd; } From bee513604773c5e92635132dca9c2b036ee3900e Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Mon, 25 Jun 2012 14:20:03 +0100 Subject: [PATCH 2/2] Make it possible to get at underlying dvb filter table definition. --- src/dvb/dvb.h | 3 ++- src/dvb/dvb_tables.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index 2cb5b943..f0660a93 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -384,7 +384,8 @@ tdt_add(th_dvb_mux_instance_t *tdmi, struct dmx_sct_filter_params *fparams, #define TDT_CRC 0x1 #define TDT_QUICKREQ 0x2 -#define TDT_CA 0x4 +#define TDT_CA 0x4 +#define TDT_TDT 0x8 /** * Satellite configuration diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index b46d097c..a440d17f 100644 --- a/src/dvb/dvb_tables.c +++ b/src/dvb/dvb_tables.c @@ -168,6 +168,8 @@ dvb_proc_table(th_dvb_mux_instance_t *tdmi, th_dvb_table_t *tdt, uint8_t *sec, if(tdt->tdt_flags & TDT_CA) ret = tdt->tdt_callback((th_dvb_mux_instance_t *)tdt, sec, len + 3, tableid, tdt->tdt_opaque); + else if(tdt->tdt_flags & TDT_TDT) + ret = tdt->tdt_callback(tdmi, ptr, len, tableid, tdt); else ret = tdt->tdt_callback(tdmi, ptr, len, tableid, tdt->tdt_opaque);