From: Jaroslav Kysela Date: Wed, 14 Oct 2015 18:37:15 +0000 (+0200) Subject: IPTV: m3u parser opmized to skip all unknown '#EXT' lines X-Git-Tag: v4.2.1~1910 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ccc13bbbf173335ee69bfeeff344fee9d721e3e3;p=thirdparty%2Ftvheadend.git IPTV: m3u parser opmized to skip all unknown '#EXT' lines --- diff --git a/src/input/mpegts/iptv/iptv_auto.c b/src/input/mpegts/iptv/iptv_auto.c index c3f1a801b..45e5eb2a8 100644 --- a/src/input/mpegts/iptv/iptv_auto.c +++ b/src/input/mpegts/iptv/iptv_auto.c @@ -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); diff --git a/src/input/mpegts/iptv/iptv_http.c b/src/input/mpegts/iptv/iptv_http.c index 2e9ef308b..a95a736ac 100644 --- a/src/input/mpegts/iptv/iptv_http.c +++ b/src/input/mpegts/iptv/iptv_http.c @@ -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;