#define EIT_CONV_HUFFMAN 1
-#define EIT_HACK_INTEREST4E (1<<0)
-#define EIT_HACK_EXTRAMUXLOOKUP (1<<1)
-#define EIT_HACK_SVCNETLOOKUP (1<<2)
+#define EIT_HACK_EIT (1<<0)
+#define EIT_HACK_INTEREST4E (1<<1)
+#define EIT_HACK_EXTRAMUXLOOKUP (1<<2)
+#define EIT_HACK_SVCNETLOOKUP (1<<3)
/* Queued data structure */
typedef struct eit_data
( epggrab_ota_map_t *_map, mpegts_mux_t *dm )
{
epggrab_ota_mux_t *om;
- epggrab_ota_map_t *map;
- epggrab_module_ota_t *m;
+ epggrab_ota_map_t *map, *map2;
+ epggrab_module_ota_t *m, *m2;
epggrab_ota_mux_eit_plist_t *plist;
eit_private_t *priv, *priv2;
int pid, opts;
opts = MT_RECORD;
}
+ if (priv->hacks & EIT_HACK_EIT) {
+ m2 = (epggrab_module_ota_t *)epggrab_module_find_by_id("eit");
+ if (m2 && m2->enabled) {
+ LIST_FOREACH(map2, &om->om_modules, om_link)
+ if (map2->om_module == m2)
+ break;
+ if (map2) {
+ mpegts_table_add(dm, 0, 0, _eit_callback, map2, map->om_module->id, LS_TBL_EIT,
+ MT_CRC | MT_RECORD, DVB_EIT_PID, MPS_WEIGHT_EIT);
+ tvhdebug(m->subsys, "%s: installed table handler (pid %d)", m2->id, DVB_EIT_PID);
+ }
+ }
+ }
+
mpegts_table_add(dm, 0, 0, _eit_callback, map, map->om_module->id, LS_TBL_EIT,
MT_CRC | opts, pid, MPS_WEIGHT_EIT);
- // TODO: might want to limit recording to EITpf only
- tvhdebug(m->subsys, "%s: installed table handlers", m->id);
+ tvhdebug(m->subsys, "%s: installed table handler (pid %d)", m->id, pid);
}
static int _eit_activate(void *m, int e)
map = htsmsg_get_map(conf, "hacks");
if (map) {
HTSMSG_FOREACH(f, map) {
- if (strcmp(htsmsg_field_name(f), "interest-4e") == 0)
+ if (strcmp(htsmsg_field_name(f), "eit") == 0)
+ priv->hacks |= EIT_HACK_EIT;
+ else if (strcmp(htsmsg_field_name(f), "interest-4e") == 0)
priv->hacks |= EIT_HACK_INTEREST4E;
else if (strcmp(htsmsg_field_name(f), "extra-mux-lookup") == 0)
priv->hacks |= EIT_HACK_EXTRAMUXLOOKUP;