]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: mux sorting - sort by uuid and fix the start monoclock comparison
authorJaroslav Kysela <perex@perex.cz>
Tue, 25 Apr 2017 15:36:29 +0000 (17:36 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 25 Apr 2017 15:36:29 +0000 (17:36 +0200)
src/input/mpegts/mpegts_mux.c
src/input/mpegts/mpegts_network_scan.c

index 8b74b3f9d0579d66c622b4bcb84319b64c5a73c6..ff48c91c854461c25b042d3136f6c2d55c73faa8 100644 (file)
@@ -1485,7 +1485,7 @@ mpegts_mux_compare ( mpegts_mux_t *a, mpegts_mux_t *b )
     if (r == 0)
       r = mc1->dmc_fe_freq - mc2->dmc_fe_freq;
   }
-  return r;
+  return r ?: uuid_cmp(&a->mm_id.in_uuid, &b->mm_id.in_uuid);
 }
 
 /******************************************************************************
index 31e5e0bf44823d2c3034b3509afcfd49ea4bd9ed..47f2b7d560671c08d13bacc6c9b6bcf7801b78ba 100644 (file)
@@ -36,9 +36,10 @@ mm_cmp ( mpegts_mux_t *a, mpegts_mux_t *b )
 {
   int r = b->mm_scan_weight - a->mm_scan_weight;
   if (r == 0) {
-    r = MINMAX(-1, 1, b->mm_start_monoclock - a->mm_start_monoclock);
-    if (r == 0)
+    int64_t l = b->mm_start_monoclock - a->mm_start_monoclock;
+    if (l == 0)
       return mpegts_mux_compare(a, b);
+    r = l > 0 ? 1 : -1;
   }
   return r;
 }