]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
IPTV: m3u parser opmized to skip all unknown '#EXT' lines
authorJaroslav Kysela <perex@perex.cz>
Wed, 14 Oct 2015 18:37:15 +0000 (20:37 +0200)
committerJaroslav Kysela <perex@perex.cz>
Wed, 14 Oct 2015 18:37:15 +0000 (20:37 +0200)
src/input/mpegts/iptv/iptv_auto.c
src/input/mpegts/iptv/iptv_http.c

index c3f1a801bf7810b643f8cefb1c165ec89206f930..45e5eb2a84a8b01c8172ea5ddc1bbfb9190b6828 100644 (file)
@@ -236,14 +236,19 @@ iptv_auto_network_process_m3u(iptv_network_t *in, char *data,
           name = data;
       }
       while (*data && *data != '\n') data++;
-      if (*data) { *data = '\0'; data++; }
+      if (*data) data++;
+      continue;
+    } else if (strncmp(data, "#EXT", 4) == 0) {
+      data += 4;
+      while (*data && *data != '\n') data++;
+      if (*data) data++;
       continue;
     }
     while (*data && *data <= ' ') data++;
     url = data;
     while (*data && *data != '\n') data++;
     if (*data) { *data = '\0'; data++; }
-    if (*url)
+    if (*url && *url > ' ')
       iptv_auto_network_process_m3u_item(in, last_url, remove_args,
                                          url, name, logo, epgid,
                                          chnum, &total, &count);
index 2e9ef308b4aea8497b27c5dff3f2879613d02f07..a95a736ac585781427520b7222c7d47ea1865873 100644 (file)
@@ -32,16 +32,16 @@ iptv_http_m3u(char *data)
   while (*data && *data != '\n') data++;
   if (*data) data++;
   while (*data) {
-    if (strncmp(data, "#EXTINF:", 8) == 0) {
+    if (strncmp(data, "#EXT", 4) == 0) {
       while (*data && *data != '\n') data++;
-      if (*data) { *data = '\0'; data++; }
+      if (*data) data++;
       continue;
     }
     while (*data && *data <= ' ') data++;
     url = data;
     while (*data && *data != '\n') data++;
     if (*data) { *data = '\0'; data++; }
-    if (*url)
+    if (*url && *url > ' ')
       return strdup(url);
   }
   return NULL;