]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
EIT: process all channels, fixes #2764, fixes #2743
authorJaroslav Kysela <perex@perex.cz>
Wed, 22 Apr 2015 19:19:29 +0000 (21:19 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 22 Apr 2015 19:19:29 +0000 (21:19 +0200)
src/epggrab/module/eit.c

index 371676282491b0ef466de5514868f105167a2385..e0052757e0d24a047b0a6e73c123523e36d9e0aa 100644 (file)
@@ -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)