From: dollis-developer <32422784+dollis-developer@users.noreply.github.com> Date: Sun, 1 Oct 2017 19:57:13 +0000 (+0100) Subject: Update eit.c X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9714045abcf1e4dc9584fe17112017de21736caf;p=thirdparty%2Ftvheadend.git Update eit.c Use 'spec' variable to handle this specific requirement of grabbing EPG data for services in other transponders in the 'actual' transpoder table IDs. --- diff --git a/src/epggrab/module/eit.c b/src/epggrab/module/eit.c index 53b7b425e..4ffb81d5e 100644 --- a/src/epggrab/module/eit.c +++ b/src/epggrab/module/eit.c @@ -44,6 +44,7 @@ typedef struct eit_private #define EIT_SPEC_UK_FREESAT 1 #define EIT_SPEC_NZ_FREEVIEW 2 +#define EIT_SPEC_UK_CABLE 3 /* Provider configuration */ @@ -850,11 +851,19 @@ _eit_callback mask <<= (24 - (sa % 32)); st->sections[sa/32] &= ~mask; } + + /* UK Cable: EPG data for services in other transponders is transmitted + // in the 'actual' transpoder table IDs */ + if (spec == EIT_SPEC_UK_CABLE && (tableid == 0x50 || tableid == 0x4E)) { + mm = mpegts_network_find_mux(mm->mm_network, onid, tsid, 1); + } + if(!mm) + goto done; /* Get transport stream */ // Note: tableid=0x4f,0x60-0x6f is other TS // so must find the tdmi - if (tableid == 0x4f || tableid >= 0x60 || tableid == 0x50 || tableid == 0x4E) { + if (tableid == 0x4f || tableid >= 0x60) { mm = mpegts_network_find_mux(mm->mm_network, onid, tsid, 1); } else { if ((mm->mm_tsid != tsid || mm->mm_onid != onid) && @@ -1159,7 +1168,7 @@ void eit_init ( void ) EIT_OPS(ops_nz_freeview, 0, EIT_CONV_HUFFMAN, EIT_SPEC_NZ_FREEVIEW); EIT_OPS(ops_baltic, 0x39, 0, 0); EIT_OPS(ops_bulsat, 0x12b, 0, 0); - EIT_OPS(ops_uk_cable, 0x2bc, 0, 0); + EIT_OPS(ops_uk_cable, 0x2bc, 0, EIT_SPEC_UK_CABLE); EIT_CREATE("eit", "EIT: DVB Grabber", 1, &ops); EIT_CREATE("uk_freesat", "UK: Freesat", 5, &ops_uk_freesat);