From 3f4387b045db9f1d1063deca43a9f7bb4c0ef775 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 14 Oct 2014 21:19:29 +0200 Subject: [PATCH] epggrab: ota - fix the frozen epggrab subscriptions, fixes #2365 --- src/epggrab/otamux.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/epggrab/otamux.c b/src/epggrab/otamux.c index b0a34127..310d87ec 100644 --- a/src/epggrab/otamux.c +++ b/src/epggrab/otamux.c @@ -65,6 +65,8 @@ static void epggrab_ota_timeout_cb ( void *p ); static void epggrab_ota_data_timeout_cb ( void *p ); static void epggrab_ota_kick_cb ( void *p ); +static void epggrab_mux_start ( mpegts_mux_t *mm, void *p ); + static void epggrab_ota_save ( epggrab_ota_mux_t *ota ); static void epggrab_ota_free ( epggrab_ota_head_t *head, epggrab_ota_mux_t *ota ); @@ -506,6 +508,9 @@ next_one: first = om; } else { kick = 0; + /* note: it is possible that the mux_start listener is not called */ + /* for reshared mux subscriptions, so call it (maybe second time) here.. */ + epggrab_mux_start(mm, NULL); } done: @@ -786,6 +791,7 @@ epggrab_ota_free ( epggrab_ota_head_t *head, epggrab_ota_mux_t *ota ) epggrab_ota_svc_link_t *svcl; gtimer_disarm(&ota->om_timer); + gtimer_disarm(&ota->om_data_timer); if (head != NULL) TAILQ_REMOVE(head, ota, om_q_link); RB_REMOVE(&epggrab_ota_all, ota, om_global_link);