diff --git a/src/dvb/dvb.h b/src/dvb/dvb.h index fa62c874..c04d3d6a 100644 --- a/src/dvb/dvb.h +++ b/src/dvb/dvb.h @@ -188,7 +188,7 @@ void dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *name); void dvb_transport_load(th_dvb_mux_instance_t *tdmi); th_transport_t *dvb_transport_find(th_dvb_mux_instance_t *tdmi, - uint16_t sid, int pmt_pid, int *created); + uint16_t sid, int pmt_pid); /** diff --git a/src/dvb/dvb_adapter.c b/src/dvb/dvb_adapter.c index ea45e4bf..ce73eb70 100644 --- a/src/dvb/dvb_adapter.c +++ b/src/dvb/dvb_adapter.c @@ -347,8 +347,7 @@ dvb_adapter_clone(th_dvb_adapter_t *dst, th_dvb_adapter_t *src) LIST_FOREACH(t_src, &tdmi_src->tdmi_transports, tht_mux_link) { t_dst = dvb_transport_find(tdmi_dst, t_src->tht_dvb_service_id, - t_src->tht_pmt_pid, - NULL); + t_src->tht_pmt_pid); t_dst->tht_pcr_pid = t_src->tht_pcr_pid; t_dst->tht_disabled = t_src->tht_disabled; diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index 83232b75..c0f99f3d 100644 --- a/src/dvb/dvb_tables.c +++ b/src/dvb/dvb_tables.c @@ -467,7 +467,7 @@ dvb_eit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, if(tdmi == NULL) return; - t = dvb_transport_find(tdmi, serviceid, 0, NULL); + t = dvb_transport_find(tdmi, serviceid, 0); if(t == NULL) return; @@ -629,7 +629,7 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, snprintf(chname0, sizeof(chname0), "noname-sid-0x%x", service_id); } - t = dvb_transport_find(tdmi, service_id, 0, NULL); + t = dvb_transport_find(tdmi, service_id, 0); if(t == NULL) break; @@ -674,7 +674,7 @@ dvb_pat_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, { uint16_t service, pmt, tid; th_transport_t *t; - int created; + if(len < 5) return; @@ -693,10 +693,8 @@ dvb_pat_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, pmt = (ptr[2] & 0x1f) << 8 | ptr[3]; if(service != 0) { - t = dvb_transport_find(tdmi, service, pmt, &created); - if(created) { /* Add PMT to our table scanner */ - dvb_table_add_transport(tdmi, t, pmt); - } + t = dvb_transport_find(tdmi, service, pmt); + dvb_table_add_transport(tdmi, t, pmt); } ptr += 4; len -= 4; diff --git a/src/dvb/dvb_transport.c b/src/dvb/dvb_transport.c index 51bd961d..5c66828d 100644 --- a/src/dvb/dvb_transport.c +++ b/src/dvb/dvb_transport.c @@ -178,7 +178,7 @@ dvb_transport_load(th_dvb_mux_instance_t *tdmi) if(htsmsg_get_u32(c, "pmt", &pmt)) continue; - t = dvb_transport_find(tdmi, sid, pmt, NULL); + t = dvb_transport_find(tdmi, sid, pmt); htsmsg_get_u32(c, "stype", &t->tht_servicetype); if(htsmsg_get_u32(c, "scrambled", &u32)) @@ -297,17 +297,13 @@ dvb_transport_networkname(th_transport_t *t) * If it cannot be found we create it if 'pmt_pid' is also set */ th_transport_t * -dvb_transport_find(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid, - int *created) +dvb_transport_find(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid) { th_transport_t *t; char tmp[200]; lock_assert(&global_lock); - if(created != NULL) - *created = 0; - LIST_FOREACH(t, &tdmi->tdmi_transports, tht_mux_link) { if(t->tht_dvb_service_id == sid) return t; @@ -316,9 +312,6 @@ dvb_transport_find(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid, if(pmt_pid == 0) return NULL; - if(created != NULL) - *created = 1; - snprintf(tmp, sizeof(tmp), "%s_%04x", tdmi->tdmi_identifier, sid); t = transport_create(tmp, TRANSPORT_DVB, THT_MPEG_TS);