]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts scan: optimize/fix the scan done routine
authorJaroslav Kysela <perex@perex.cz>
Thu, 17 Mar 2016 21:24:58 +0000 (22:24 +0100)
committerJaroslav Kysela <perex@perex.cz>
Thu, 17 Mar 2016 21:27:46 +0000 (22:27 +0100)
src/input/mpegts/mpegts_network_scan.c

index ff522a5c4d734810b39c15baa55c1c609ae0fee3..445e54b4e4853b036f4ced7eae834536240710b7 100644 (file)
@@ -102,9 +102,15 @@ mpegts_network_scan_mux_done0
   ( mpegts_mux_t *mm, mpegts_mux_scan_result_t result, int weight )
 {
   mpegts_network_t *mn = mm->mm_network;
+  mpegts_mux_scan_state_t state = mm->mm_scan_state;
 
+  /* prevent double del: */
+  /*   mpegts_mux_stop -> mpegts_network_scan_mux_cancel */
+  mm->mm_scan_state = MM_SCAN_STATE_IDLE;
   mpegts_mux_unsubscribe_by_name(mm, "scan");
-  if (mm->mm_scan_state == MM_SCAN_STATE_PEND) {
+  mm->mm_scan_state = state;
+
+  if (state == MM_SCAN_STATE_PEND) {
     if (weight || mn->mn_idlescan) {
       if (!weight)
         mm->mm_scan_weight = SUBSCRIPTION_PRIO_SCAN_IDLE;