summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
Diffstat (limited to 'demux')
-rw-r--r--demux/demux_playlist.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/demux/demux_playlist.c b/demux/demux_playlist.c
index 874992c3fa..7479db149f 100644
--- a/demux/demux_playlist.c
+++ b/demux/demux_playlist.c
@@ -106,14 +106,21 @@ static int parse_m3u(struct pl_parser *p)
if (p->check_level == DEMUX_CHECK_UNSAFE) {
char *ext = mp_splitext(p->real_stream->url, NULL);
bstr data = stream_peek(p->real_stream, PROBE_SIZE);
- if (ext && !strcmp(ext, "m3u") && data.len > 10 && maybe_text(data))
- goto ok;
+ if (ext && data.len > 10 && maybe_text(data)) {
+ const char *exts[] = {"m3u", "m3u8", NULL};
+ for (int n = 0; exts[n]; n++) {
+ if (strcasecmp(ext, exts[n]) == 0)
+ goto ok;
+ }
+ }
}
return -1;
}
+
ok:
if (p->probing)
return 0;
+
char *title = NULL;
while (line.len || !pl_eof(p)) {
if (bstr_eatstart0(&line, "#EXTINF:")) {