Ensure ONID is updated at some point, this still may not work, but worth a shot.

This commit is contained in:
Adam Sutton 2012-10-15 10:35:11 +01:00
parent 7b6ed15eb9
commit 71d6adfed0
3 changed files with 23 additions and 1 deletions

View file

@ -364,6 +364,8 @@ void dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *name);
void dvb_mux_set_tsid(th_dvb_mux_instance_t *tdmi, uint16_t tsid);
void dvb_mux_set_onid(th_dvb_mux_instance_t *tdmi, uint16_t onid);
void dvb_mux_set_enable(th_dvb_mux_instance_t *tdmi, int enabled);
void dvb_mux_set_satconf(th_dvb_mux_instance_t *tdmi, const char *scid,

View file

@ -865,6 +865,24 @@ dvb_mux_set_tsid(th_dvb_mux_instance_t *tdmi, uint16_t tsid)
notify_by_msg("dvbMux", m);
}
/**
*
*/
void
dvb_mux_set_onid(th_dvb_mux_instance_t *tdmi, uint16_t onid)
{
htsmsg_t *m;
tdmi->tdmi_network_id = onid;
dvb_mux_save(tdmi);
m = htsmsg_create_map();
htsmsg_add_str(m, "id", tdmi->tdmi_identifier);
htsmsg_add_u32(m, "onid", tdmi->tdmi_network_id);
notify_by_msg("dvbMux", m);
}
/**
*

View file

@ -463,8 +463,10 @@ 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];
if (tableid == 0x42) {
if(tdmi->tdmi_transport_stream_id != tsid || tdmi->tdmi_network_id != onid)
if(tdmi->tdmi_transport_stream_id != tsid)
return -1;
if(!tdmi->tdmi_network_id)
dvb_mux_set_onid(tdmi, onid);
} else {
LIST_FOREACH(tdmi, &tda->tda_muxes, tdmi_adapter_link)
if(tdmi->tdmi_transport_stream_id == tsid &&