]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
service: remove restart from service_request_save(), issue #4882
authorJaroslav Kysela <perex@perex.cz>
Wed, 24 Jan 2018 09:06:22 +0000 (10:06 +0100)
committerJaroslav Kysela <perex@perex.cz>
Wed, 24 Jan 2018 09:06:22 +0000 (10:06 +0100)
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).

src/descrambler/cclient.c
src/epggrab/module/opentv.c
src/input/mpegts/dvb_psi.c
src/input/mpegts/dvb_psi_hbbtv.c
src/input/mpegts/mpegts_service.c
src/parsers/parsers.c
src/service.c
src/service.h

index 1738504c248ba92c3581ffa978c3bd14146ed728..0f7de9e58ee7f83fe8c70bfbd178398e687089f9 100644 (file)
@@ -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,
index a6fec5d3c322eaf3ddd128237eda555c12c5ac41..3c1d0b209390acf4ae8d67c38594325d1e46f595 100644 (file)
@@ -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)) {
index 7a0fb39463426fe20edfae68b57867769a1bf4eb..7367990ff18f3fdac9e094a23a7877c0bdf6dc8a 100644 (file)
@@ -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 |
index 859e8f19a1b87feecf6f171023277392afbcbda1..068ba160e11599e2c0c8f9af91953de8faa099d2 100644 (file)
@@ -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)) {
index a6946ac9160edee7c779da683f1171303b120d0d..e57562783be5ee27edd016753ff78e7ede95dc0d 100644 (file)
@@ -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;
 }
index 3089e9476a7cef21f4007397976005e35fa82b19..9f667dc5b3499958c3153d09cc91278c9f233715 100644 (file)
@@ -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);
   }
 }
index 32a3deadd76d20735db23645376f6a02b0b5039c..d9b4fbc773f00b9ea1b721f54e6106fb8f6450f8 100644 (file)
@@ -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);
index 6bceaf46ce78a234091ae35b5978a7e84c2b77dd..e6c1e6ae3d36c8d531364ca877d0c029e9026a8c 100644 (file)
@@ -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);