From: Andreas Ă–man Date: Wed, 6 Feb 2013 08:22:06 +0000 (-0500) Subject: ATSC: In VCT, if tsid is 0, assume it's current mux X-Git-Tag: v3.5~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0fd2aaf66fa4a630d5ad3a5311869f389a8caec8;p=thirdparty%2Ftvheadend.git ATSC: In VCT, if tsid is 0, assume it's current mux --- diff --git a/src/dvb/dvb_tables.c b/src/dvb/dvb_tables.c index 1a8fee984..2dbe5474f 100644 --- a/src/dvb/dvb_tables.c +++ b/src/dvb/dvb_tables.c @@ -967,6 +967,7 @@ static int atsc_vct_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, uint8_t tableid, void *opaque) { + th_dvb_mux_instance_t *tdmi0 = tdmi; th_dvb_adapter_t *tda = tdmi->tdmi_adapter; service_t *t; int numch; @@ -1000,15 +1001,18 @@ atsc_vct_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len, tsid = (ptr[22] << 8) | ptr[23]; onid = (ptr[24] << 8) | ptr[25]; - - /* Search all muxes on adapter */ - LIST_FOREACH(tdmi, &tda->tda_muxes, tdmi_adapter_link) - if(tdmi->tdmi_transport_stream_id == tsid && - tdmi->tdmi_network_id == onid); - break; - - if(tdmi == NULL) - continue; + + if(tsid == 0) { + tdmi = tdmi0; + } else { + /* Search all muxes on adapter */ + LIST_FOREACH(tdmi, &tda->tda_muxes, tdmi_adapter_link) { + if(tdmi->tdmi_transport_stream_id == tsid && tdmi->tdmi_network_id == onid) + break; + } + if(tdmi == NULL) + continue; + } service_id = (ptr[24] << 8) | ptr[25]; if((t = dvb_service_find(tdmi, service_id, 0, NULL)) == NULL)