diff --git a/src/input/mpegts/dvb_psi.c b/src/input/mpegts/dvb_psi.c index 606ec082..c6a98c6c 100644 --- a/src/input/mpegts/dvb_psi.c +++ b/src/input/mpegts/dvb_psi.c @@ -698,7 +698,9 @@ dvb_cat_callback ptr += dlen; len -= dlen; } - return 0; + + /* Finish */ + return dvb_table_end(mt, st, sect); } /* diff --git a/src/input/mpegts/mpegts_mux.c b/src/input/mpegts/mpegts_mux.c index 400866dd..17c02cce 100644 --- a/src/input/mpegts/mpegts_mux.c +++ b/src/input/mpegts/mpegts_mux.c @@ -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; diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index 4475771c..d01e0139 100644 --- a/src/input/mpegts/mpegts_table.c +++ b/src/input/mpegts/mpegts_table.c @@ -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; }