]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
mpegts: ensure init scan completes properly
authorAdam Sutton <dev@adamsutton.me.uk>
Sun, 29 Dec 2013 23:38:31 +0000 (23:38 +0000)
committerAdam Sutton <dev@adamsutton.me.uk>
Sun, 29 Dec 2013 23:38:31 +0000 (23:38 +0000)
I was not properly checking completion on table completion and CAT processing
was not marking that table as complete (ever).

src/input/mpegts/dvb_psi.c
src/input/mpegts/mpegts_mux.c
src/input/mpegts/mpegts_table.c

index 606ec082c31759db830f48bbf82420b9d3271d46..c6a98c6c1d3c40bc5fe7fbda2fd4c61ea70be3b2 100644 (file)
@@ -698,7 +698,9 @@ dvb_cat_callback
     ptr += dlen;
     len -= dlen;
   }
-  return 0;
+
+  /* Finish */
+  return dvb_table_end(mt, st, sect);
 }
 
 /*
index 400866dd58bb7ce663a3e745a550c0e6b280b475..17c02ccebd93b8424a3bf6b8d8c9a2a89dde210a 100644 (file)
@@ -658,6 +658,7 @@ mpegts_mux_initial_scan_timeout ( void *aux )
 
   /* Pending tables (another 20s - bit arbitrary) */
   } else if (q) {
+    tvhinfo("mepgts", "%s - initial scan needs more time", buf);
     gtimer_arm(&mm->mm_initial_scan_timeout,
                mpegts_mux_initial_scan_timeout, mm, 20);
     return;
index 4475771c14759b2052450a0ab1961d07aa0338ea..d01e013961091b5ca9d23ff8ad23d67f2e2c6a43 100644 (file)
@@ -30,7 +30,8 @@ mpegts_table_fastswitch ( mpegts_mux_t *mm )
     return;
 
   LIST_FOREACH(mt, &mm->mm_tables, mt_link) {
-    if((mt->mt_flags & MT_QUICKREQ) && mt->mt_count == 0)
+    if (!(mt->mt_flags & MT_QUICKREQ)) continue;
+    if(!mt->mt_complete)
       return;
   }