From 63bd6f42c8ef12752b5311aa822528adc023ae1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Sun, 8 Nov 2009 21:51:16 +0000 Subject: [PATCH] Even more robust transport transport_stream id checks --- src/dvb/dvb_multiplex.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/dvb/dvb_multiplex.c b/src/dvb/dvb_multiplex.c index c8f3cd13..564cbd26 100644 --- a/src/dvb/dvb_multiplex.c +++ b/src/dvb/dvb_multiplex.c @@ -168,18 +168,26 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc, if(tdmi != NULL) { /* Update stuff ... */ + int save = 0; - if(!tdmi_compare_conf(tda->tda_type, &tdmi->tdmi_conf, dmc)) - return NULL; // Nothings changed + if(tdmi_compare_conf(tda->tda_type, &tdmi->tdmi_conf, dmc)) { + memcpy(&tdmi->tdmi_conf, dmc, sizeof(struct dvb_mux_conf)); + save = 1; + } - memcpy(&tdmi->tdmi_conf, dmc, sizeof(struct dvb_mux_conf)); + if(tdmi->tdmi_transport_stream_id != tsid) { + tdmi->tdmi_transport_stream_id = tsid; + save = 1; + } - dvb_mux_save(tdmi); + if(save) { + dvb_mux_save(tdmi); + dvb_mux_nicename(buf, sizeof(buf), tdmi); + tvhlog(LOG_DEBUG, "dvb", + "Configuration for mux \"%s\" updated by %s", buf, source); + dvb_mux_notify(tdmi); + } - dvb_mux_nicename(buf, sizeof(buf), tdmi); - tvhlog(LOG_DEBUG, "dvb", - "Configuration for mux \"%s\" updated by %s", buf, source); - dvb_mux_notify(tdmi); return NULL; }