From 9270518314612d9529bfed3ff2746804c8b6b747 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Wed, 22 Apr 2015 21:19:29 +0200 Subject: [PATCH] EIT: process all channels, fixes #2764, fixes #2743 --- src/epggrab/module/eit.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/epggrab/module/eit.c b/src/epggrab/module/eit.c index 37167628..e0052757 100644 --- a/src/epggrab/module/eit.c +++ b/src/epggrab/module/eit.c @@ -395,9 +395,10 @@ static int _eit_desc_crid * EIT Event * ***********************************************************************/ -static int _eit_process_event +static int _eit_process_event_one ( epggrab_module_t *mod, int tableid, - mpegts_service_t *svc, const uint8_t *ptr, int len, + mpegts_service_t *svc, channel_t *ch, + const uint8_t *ptr, int len, int local, int *resched, int *save ) { int save2 = 0; @@ -409,7 +410,6 @@ static int _eit_process_event epg_episode_t *ee; epg_serieslink_t *es; eit_event_t ev; - channel_t *ch = LIST_FIRST(&svc->s_channels)->csm_chn; if ( len < 12 ) return -1; @@ -552,6 +552,23 @@ static int _eit_process_event return ret; } +static int _eit_process_event + ( epggrab_module_t *mod, int tableid, + mpegts_service_t *svc, const uint8_t *ptr, int len, + int local, int *resched, int *save ) +{ + channel_service_mapping_t *csm; + int ret = 0; + + if ( len < 12 ) return -1; + + LIST_FOREACH(csm, &svc->s_channels, csm_svc_link) + ret = _eit_process_event_one(mod, tableid, svc, csm->csm_chn, + ptr, len, local, resched, save); + return ret; +} + + static int _eit_callback (mpegts_table_t *mt, const uint8_t *ptr, int len, int tableid)