From f67f9eb98e2cec0e22164c026b34cd82442b2139 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Tue, 16 Apr 2013 21:25:56 +0100 Subject: [PATCH] tdt: some changes to SDT processing to pick up unknown services (cherry picked from commit b672a9da50915d7be6e35ffedf75669067803187) Conflicts: src/dvb/dvb_tables.c --- src/dvb/dvb_tables.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index 8834b3b3..a54943d9 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) {