From: Jaroslav Kysela Date: Wed, 24 Jan 2018 09:06:22 +0000 (+0100) Subject: service: remove restart from service_request_save(), issue #4882 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3ff1f4dac0043da69e6e375c288c2c2fa374d539;p=thirdparty%2Ftvheadend.git service: remove restart from service_request_save(), issue #4882 Because the last user of this 'restart' flag was removed, simply the function. The last user caused that streaming was reconfigured each 60 minutes (it's caused with the addition of 60min PAT checks). --- diff --git a/src/descrambler/cclient.c b/src/descrambler/cclient.c index 1738504c2..0f7de9e58 100644 --- a/src/descrambler/cclient.c +++ b/src/descrambler/cclient.c @@ -415,7 +415,7 @@ forbid: t->s_dvb_prefcapid = ct->cs_capid; tvhdebug(cc->cc_subsys, "%s: Saving prefered PID %d for %s", cc->cc_name, t->s_dvb_prefcapid, ct->td_nicename); - service_request_save((service_t*)t, 0); + service_request_save((service_t*)t); } tvhdebug(cc->cc_subsys, diff --git a/src/epggrab/module/opentv.c b/src/epggrab/module/opentv.c index a6fec5d3c..3c1d0b209 100644 --- a/src/epggrab/module/opentv.c +++ b/src/epggrab/module/opentv.c @@ -532,7 +532,7 @@ opentv_desc_channels svc->s_dvb_opentv_chnum = cnum; svc->s_dvb_opentv_id = unk; mpegts_network_bouquet_trigger(mm->mm_network, 0); - service_request_save((service_t *)svc, 0); + service_request_save((service_t *)svc); } skip_chnum: if (svc && LIST_FIRST(&svc->s_channels)) { diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 7a0fb3946..7367990ff 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -999,7 +999,7 @@ dvb_pat_callback pid, MPS_WEIGHT_PMT_SCAN); if (save) - service_request_save((service_t*)s, 1); + service_request_save((service_t*)s); } } @@ -2660,7 +2660,7 @@ psi_parse_pmt update&PMT_UPDATE_CAID_PID ? ", CAID PID changed":"", update&PMT_REORDERED ? ", PIDs reordered":""); - service_request_save((service_t*)t, 0); + service_request_save((service_t*)t); // Only restart if something that our clients worry about did change if(update & ~(PMT_UPDATE_NEW_CA_STREAM | diff --git a/src/input/mpegts/dvb_psi_hbbtv.c b/src/input/mpegts/dvb_psi_hbbtv.c index 859e8f19a..068ba160e 100644 --- a/src/input/mpegts/dvb_psi_hbbtv.c +++ b/src/input/mpegts/dvb_psi_hbbtv.c @@ -167,7 +167,7 @@ ts_recv_hbbtv_cb(mpegts_psi_table_t *mt, const uint8_t *buf, int len) snprintf(location, sizeof(location), "%d", sect); htsmsg_set_msg(t->s_hbbtv, location, apps); apps = NULL; - service_request_save(t, 0); + service_request_save(t); } if (streaming_pad_probe_type(&t->s_streaming_pad, SMT_PACKET)) { diff --git a/src/input/mpegts/mpegts_service.c b/src/input/mpegts/mpegts_service.c index a6946ac91..e57562783 100644 --- a/src/input/mpegts/mpegts_service.c +++ b/src/input/mpegts/mpegts_service.c @@ -857,7 +857,7 @@ mpegts_service_create0 /* Save the create time */ if (s->s_dvb_created == dispatch_clock) - service_request_save((service_t *)s, 0); + service_request_save((service_t *)s); return s; } diff --git a/src/parsers/parsers.c b/src/parsers/parsers.c index 3089e9476..9f667dc5b 100644 --- a/src/parsers/parsers.c +++ b/src/parsers/parsers.c @@ -1065,7 +1065,7 @@ parser_set_stream_vparam(elementary_stream_t *st, int width, int height, st->es_width = width; st->es_height = height; st->es_frame_duration = duration; - service_request_save(st->es_service, 0); + service_request_save(st->es_service); atomic_set(&st->es_service->s_pending_restart, 1); } } diff --git a/src/service.c b/src/service.c index 32a3deadd..d9b4fbc77 100644 --- a/src/service.c +++ b/src/service.c @@ -1030,7 +1030,7 @@ service_set_enabled(service_t *t, int enabled, int _auto) t->s_enabled = !!enabled; t->s_auto = _auto; service_class_notify_enabled(t, NULL); - service_request_save(t, 0); + service_request_save(t); idnode_notify_changed(&t->s_id); } } @@ -1617,20 +1617,18 @@ static struct service_queue pending_save_queue; * */ void -service_request_save(service_t *t, int restart) +service_request_save(service_t *t) { - if (t->s_type != STYPE_STD && !restart) + if (t->s_type != STYPE_STD) return; pthread_mutex_lock(&pending_save_mutex); if(!t->s_ps_onqueue) { - t->s_ps_onqueue = 1 + !!restart; + t->s_ps_onqueue = 1; TAILQ_INSERT_TAIL(&pending_save_queue, t, s_ps_link); service_ref(t); tvh_cond_signal(&pending_save_cond, 0); - } else if (restart) { - t->s_ps_onqueue = 2; // upgrade to restart too } pthread_mutex_unlock(&pending_save_mutex); @@ -1674,7 +1672,6 @@ static void * service_saver(void *aux) { service_t *t; - int restart; pthread_mutex_lock(&pending_save_mutex); @@ -1685,7 +1682,6 @@ service_saver(void *aux) continue; } assert(t->s_ps_onqueue != 0); - restart = t->s_ps_onqueue == 2; TAILQ_REMOVE(&pending_save_queue, t, s_ps_link); t->s_ps_onqueue = 0; @@ -1695,8 +1691,6 @@ service_saver(void *aux) if(t->s_status != SERVICE_ZOMBIE && t->s_config_save) idnode_changed(&t->s_id); - if(t->s_status == SERVICE_RUNNING && restart) - service_restart(t); service_unref(t); pthread_mutex_unlock(&global_lock); diff --git a/src/service.h b/src/service.h index 6bceaf46c..e6c1e6ae3 100644 --- a/src/service.h +++ b/src/service.h @@ -630,7 +630,7 @@ void service_stream_destroy(service_t *t, elementary_stream_t *st); void service_stream_type_destroy(service_t *t, streaming_component_type_t type); -void service_request_save(service_t *t, int restart); +void service_request_save(service_t *t); void service_source_info_free(source_info_t *si);