From 2fae1d8f206ce18814e51ef89e6f9829b26f1d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 19 Nov 2021 11:29:46 +0200 Subject: [PATCH] Don't bother parsing as a playlist or detecting if it's a master/media playlist if it doesn't start with `#EXTM3U` --- src/parser.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/parser.rs b/src/parser.rs index c877e4b..71b825e 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -42,6 +42,8 @@ use std::string; /// } /// ``` pub fn parse_playlist(input: &[u8]) -> IResult<&[u8], Playlist> { + m3u_tag(input)?; + match is_master_playlist(input) { true => map(parse_master_playlist, Playlist::MasterPlaylist)(input), false => map(parse_media_playlist, Playlist::MediaPlaylist)(input), @@ -135,6 +137,7 @@ pub fn is_master_playlist(input: &[u8]) -> bool { /// - Some(true, tagstring): Line contains a master playlist tag /// - Some(false, tagstring): Line contains a media playlist tag fn contains_master_tag(input: &[u8]) -> Option<(bool, String)> { + let (input, _) = m3u_tag(input).ok()?; let mut is_master_opt = None; let mut current_input: &[u8] = input;