From 163e1bd18d5f642b1f7807f204ad196660fba90d Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 11 Jul 2014 16:36:10 +0200 Subject: [PATCH] mpegts: tables - flush all - fix unregisteredd deferred table flush --- src/input/mpegts/mpegts_table.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index b4c0c258..793e8938 100644 --- a/src/input/mpegts/mpegts_table.c +++ b/src/input/mpegts/mpegts_table.c @@ -206,6 +206,13 @@ mpegts_table_flush_all ( mpegts_mux_t *mm ) pthread_mutex_lock(&mm->mm_tables_lock); while ((mt = LIST_FIRST(&mm->mm_defer_tables))) { LIST_REMOVE(mt, mt_defer_link); + if (!mt->mt_defer_reg) { + /* registration not fished, but ... */ + /* allow the table free in next table destroy loop */ + mt->mt_defer_reg = 1; + LIST_INSERT_HEAD(&mm->mm_tables, mt, mt_link); + mm->mm_num_tables++; + } mt->mt_defer_cmd = 0; mpegts_table_release(mt); }