From: Adam Sutton Date: Tue, 16 Apr 2013 20:25:56 +0000 (+0100) Subject: tdt: some changes to SDT processing to pick up unknown services X-Git-Tag: 3.4patch1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f67f9eb98e2cec0e22164c026b34cd82442b2139;p=thirdparty%2Ftvheadend.git tdt: some changes to SDT processing to pick up unknown services (cherry picked from commit b672a9da50915d7be6e35ffedf75669067803187) Conflicts: src/dvb/dvb_tables.c --- diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index 8834b3b36..a54943d9b 100644 --- a/src/dvb/dvb_tables.c +++ b/src/dvb/dvb_tables.c @@ -344,6 +344,8 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, tsid = ptr[0] << 8 | ptr[1]; onid = ptr[5] << 8 | ptr[6]; + + /* Find Transport Stream */ if (tableid == 0x42) { dvb_mux_set_tsid(tdmi, tsid, 0); dvb_mux_set_onid(tdmi, onid, 0); @@ -356,8 +358,6 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, break; if (!tdmi) return -1; } - TRACE("sdt", "onid %04X tsid %04X", onid, tsid); - //hexdump("sdt", ptr, len); // version = ptr[2] >> 1 & 0x1f; // section_number = ptr[3]; @@ -435,8 +435,14 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, } } - if (!(t = dvb_service_find(tdmi, service_id, 0, NULL))) - continue; + if (!(t = dvb_service_find3(NULL, tdmi, NULL, 0, 0, service_id, 0, 0))) { + if (!servicetype_is_tv(stype) && + !servicetype_is_radio(stype)) + continue; + + if (!(t = dvb_service_find(tdmi, service_id, 0, NULL))) + continue; + } if(t->s_servicetype != stype || t->s_scrambled != free_ca_mode) {